AI
-
Spark : ConfigAI 2022. 8. 1. 11:19
SparkConf import org.apache.spark.SparkContext import org.apache.spark.SparkConf val conf = new SparkConf().setAppName("Test").setMaster("yarn") conf.set("spark.executor.memory", "1g").set("spark.executor.cores", "1") val sc = new SparkContext(conf) 설정 옵션 설정 기본값 비고 spark.driver.memory 2g Driver가 사용할 메모리 spark.executor.memory 5g Executor가 사용할 메모리 spark.executor.cores 1 Application에 사용할 코어 개수 spar..
-
Spark : Dataset / DataFrameAI 2022. 7. 29. 16:27
SparkSession 세션 초기화 import org.apache.spark.sql.SparkSession val ss = SparkSession.builder() .appName("Spark App Name") .config("spark.some.config.option", "some-value") .getOrCreate() spark-shell을 이용할 경우 REPL쉘이 스파크 세션 객체를 초기화 해준다. Hive Metasore Connect 사파크 세션은 단독으로 사용할 수 있지만, Hive Metasore와 연결하여 사용할 수도 있다. 이때는 세션 생성시에 "hive.metastore.uris" 값을 설정하면 된다. val ss = SparkSession.builder() .appName("S..
-
Spark : RDDAI 2022. 7. 27. 16:48
RDD 외부 데이터를 읽어서 처리하거나, 자체적으로 컬렉션 데이터를 생성하여 처리 데이터 처리는 파티션 단위로 분리하여 작업을 처리 연산 Transformation : 필터링 같은 작업으로 RDD → RDD Action : RDD로 작업을 처리하여 결과를 드라이버에 반환하거나, FS에 쓰는 연산 스파크는 지연 처리를 지원하여 Transformation을 호출할 때는 작업을 처리하지 않고, Action을 호출하는 시점에 작업을 처리하여 작업의 효율성을 제공 RDD는 액션이 실행될 때마다 새로운 연산을 처리. 작업의 처리 결과를 재사용하고 싶으면 persist() 메소드를 사용하여 결과를 메모리에 유지 RDD는 스파크 컨텍스트 객체를 이용하여 생성할 수 있음. SparkContext Init SparkCon..
-
Spark : 구조AI 2022. 7. 26. 15:54
드라이버 ( 작업 관리 ) + 클러스터 매니저 ( 노드 관리 ) 스파크 애플리케이션의 구조 마스터-슬레이브 구조로 실행되며, 애플리케이션은 드라이버(작업 관리)와 익스큐터(작업 동작)로 구성 드라이버 : 스파크 컨텍스트 객체 생성, 클러스터 매니저와 통신하며 클러스터 자원 관리 지원, 애플리케이션 라이프 사이클 관리 스파크 애플리케이션 드라이버와 Executor로 실행되는 스파크 실행 프로그램으로 클러스터 매니저를 통해 리소스를 할당 받음. 드라이버 스파크 애플리케이션을 실행하는 프로세스 main 함수를 실행하고, 스파트 컨텍스트 객체 생성 라이프 사이클을 관리하고, 사용자로 부터 입력을 받아서 애플리케이션에 전달 디플로이 모드를 클라이언트 모드(클러스터 외부에서 드라이버 실행)와 클러스터 모드(클러스터..
-
Spark : BasicAI 2022. 7. 26. 14:51
정의 인메모리 기반의 대용량 데이터 고속 처리 엔진 범용 분산 클러스터 컴퓨팅 프레임워크 특징 인메모리 기반이기 때문에 빠른 처리가 가능하다 MapReduce은 작업의 중간 결과를 디스크에 쓰기 때문에 IO로 인한 작업 속도에 제약이 생기지만, 스파크는 이러한 중간 결과를 메모리에 저장하기 때문에 반복 잡어에서 높은 처리 효율을 보인다. Java, Scala, Python, R, SQL과 같이 다양한 언어를 지원하여 사용의 편이성 제공 언어마다 처리 속도의 차이가 있음. SQL, Streaming, ML, 그래프 연산 등 다양한 컴포넌트 제공 Spark Streaming을 이용한 스트림 처리 Spark SQL을 이용한 SQL 처리 MLib를 이용한 머신러닝 처리 GraphX를 이용한 그래프 처리 추가적인..
-
MLOps 입력값 드리프트AI 2022. 7. 13. 15:46
데이터 드리프트의 원인 - 표본 선택의 편향 : 학습 표본이 모집단을 대표하지 않는 경우. 가중치 조절을 통해 편향성을 완화할 수 있지만 문제가 되는 특성을 알 수 없거나 특성을 알더라도 가중치 조절에 사용할 수 없는 경우가 많음. - 끊임없이 변화하는 환경 : 원천 모집단에서 수집한 학습 데이터가 대상 모집단을 대표하지 않는 경우. 계절별 예측 테스크의 경우 봄에 수집된 데이터가 여름 예측에서는 잘 동작하지 않을 수 있다. 입력값 드리프트 감지 기법 일변량 통계 테스트 ( Univariate Statistical Test ) 각 특성과 관련한 원천 데이터 분포에서 얻은 데이터와 대상 데이터 분포에서 얻은 데이터에 대해 통계적 검정을 수행 접근법 연속형 특성 : 콜모고로프-스미르노프 검정(Kolmogor..
-
Sequence To SequenceAI 2021. 1. 3. 01:54
seq2seq 입력된 스퀀스로부터 다른 도메인의 시퀀스를 출력하기 위해 등장한 모델 seq2seq 제안 모델에서는 speech recognition과 machine translation을 대표적인 예시로 들었다. seq2seq의 아키텍처는 크게 인코더와 디코더 두 모듈로 나눌 수 있다. 이러한 구조 때문에 "Encoder-Decoder Model"라고도 불림 인코더 : 입력 문장의 모든 단어들을 순차적으로 입력받아 모든 단어 정보들을 압축해서 하나의 고정된 차원 벡터로 만드는 역할을 한다. 이때 이 벡터를 Context Vector라고 부른다. 디코더 : Context Vector를 받아서 적절한 Sequence 정보를 생성하는 역할을 한다. 인코더와 디코더는 모두 LSTM으로 이루어져있으며, Conte..
-
Word EmbeddingAI 2020. 12. 29. 18:48
Word Embedding 자연어를 컴퓨터가 이해하고, 이를 효율적으로 처리하게 하기 위해 적절한 형태(벡터)로 변환할 필요가 있다. 워드 임베딩은 단어를 적절한 차원의 벡터로 표현하는 방법을 의미한다. 워드 임베딩의 발전은 자연어 처리 분야의 발전에 있어 큰 기여를 하였다고 평가된다. 그 만큼 자연어 처리 분야에 있어 중요하다. 표현 희소 표현 (Sparse Representation) 단어를 표현하는 벡터 값의 대부분이 0으로 표현되는 방법을 희소 표현이라 한다. 대표적인 예시로는 One-Hot Encoding, BoW(Bag of Words), TF-IDF 등이 있다. 문제점 단어의 개수가 늘어나면 벡터의 차원이 한없이 커지게 된다. 만약 10,000개의 단어를 표현하고자 한다면 벡터의 차원은 10..