SlideShare una empresa de Scribd logo
1 de 59
Spark Machine Learning
Deep Dive
(feat. Deep Learning)
스사모(Spark Korea User Group)
김훈동
Who am I ?
• 김훈동 Chief Partner ( hoondongkim@emart.com )
• 신세계 그룹 온라인 포털 SSG.COM 빅데이타팀 리더
• Hadoop, Spark, Machine Learning, Azure ML 분야
Microsoft MVP(Most Valuable Professional)
• Major in BigData RealTime Analytics & NoSQL
• http://hoondongkim.blogspot.kr
I will say …
• Spark Cluster 운영 경험 및 노하우 공유
• Spark로 하는 Machine Learning 에 대하여
• 장점과 단점
• Machine Learning & Deep Learning 분야에서의
Spark의 위상
• Spark 를 보완하는 다양한 도구 및 기술들
• Spark 개발자가 Deep Learning 시대에 임하는 자세
제가 속한 조직에 대하여…
We Made …
So What?
He said “그래서 어쩌라고?”
하지만, 하는 일이 달라지고 있음!
– 과거 현재 미래
• 과거를 분석 한다. (BigData Eco System Infra)
• 트래킹 로그를 남긴다.
• 빅데이타 수집 저장 분석을 위한 인프라를 만든다.
• 빅데이타 배치로 과거 시계열 분석을 하고 시각화를 한다.
• 현재에 반응 한다. (RealTime Layer / Spark Streaming / ELK)
• 실시간으로 데이터 스트림을 분석한다.
• FDS, 보안관제, 모니터링 등 즉각적으로 현재 상황에 대처하여 현재를 능동적으로 대비한다.
• 미래를 예측 한다. (Mining / Machine Learning / Deep Learning)
• 고객이 관심 갖고 있고 곧 살 것 같은 것을 추천한다.
• 미래에 집행할 광고 및 제휴 채널 예산을 보다 ROI 높게 배분한다.
• 발주를 예측한다.
• 최적의 트럭 경로를 예측한다.
• 가격을 올릴지 말지 얼마나 세일할지 최적의 가격을 예측한다.
• 미래를 대비 한다. (Machine Learning / Deep Learning)
• Chatbot
• 자연어 활용, 이미지 활용 -> 검색 및 추천 고도화
• 기타
3~4년 전
2~3년 전
요즘
BigData 가 강한 분야
BigData 가 강한 분야
BigData + Deep Learning Approach
History & Prologue 1
History & Prologue 2
History & Prologue 3
Google
개발자가 AI시대를 임하는 자세!
혹은
Math 와 통계,산업공학,인지과학 그리고 PH.D 가 난무하는 이 바닥에
가진 거라 곤 Develop Sprit 밖에 없는 개발자 Base의 Data Scientist가
존재감을 지키는 방법에 대하여!
고찰…
나는 빅데이타 개발자야!
vs
나도 데이터 과학자야!
Are you Data Scientist?
통계를 공부해야 하나?
수학을 다시 공부해야 하나?
이 분야는 내 분야가 아닌가?
다짐을 하게 된 계기…
개발자 입장에서 Deep Learning 이란?
• 제프 딘 역할
• 우리가 더 잘하는 건….
• 대용량 데이터 처리
• 데이터 전처리 , 후처리
• 알고리즘 구현(코딩 레벨 구현)
• Deep Learning 은 Low Level 코딩 구현이 더 많음.
• Deep Learning 특히 CNN, RNN, RNN변형 , RL 등은 수학이 그리 복잡하지 않음.
• 이전의 Machine Learning
• Markov-Chain Monte Carlo
• Gibbs Sampler
• Variation Inference
• Deep Belief Network
• 현재의 Deep Learning
• CNN
• RNN
• LSTM …
Mathematical formula
Engineering Art
Spark 의 Position!
- Spark 개발자가 BigData Scale ML Job을 처리하는 시나리오!
Spark 의 Position!
- Spark 개발자가 BigData Scale ML Job을 처리하는 시나리오!
Spark ML 에 알고리즘이 없는 경우의 최
후의 보루! 직접 구현???
Spark 특징
• Scala
• Java
• Python
• R
Zeppelin on Spark
Spark Machine Learning (Mllib)
언어별 장점 섞어 쓰기
• Scala + Java
• PySpark + Python
• SparkR + RevoScaleR(MS R) + CRAN-R
Spark ML 에 알고리즘이 없는 경우의 최
후의 보루! 직접 구현???
복잡한 알고리즘의 구현은 Java 가 좀 쉽긴 함. (example github source 도 많고…)
병렬성을 고려한 처리는 Java 로 구현하는것에 한계.
병렬성을 위한 Main routine 은 Scala 로…
언어별 장점 섞어 쓰기
언어별 장점 섞어 쓰기
SAS vs Hive vs Spark
SAS vs Hive vs Spark
SAS vs Hive vs Spark
SAS vs Hive vs Spark
SAS vs Hive vs Spark
숲을 봐 보자(SAS vs Hive vs Spark)
숲을 봐 보자
• Prediction IO Example
• 실무에서 ML Model 의 implementation 은 생각만큼 단순하지 않다.
• Prediction IO 정도가 Full Range 를 숲 관점으로 접근 한다.
R on Spark 에 대하여
• SparkR
• Sparklyr
• RevoScaleR(MS R)
RevoScaleR on Spark 성능비교
1 Machine on MS-SQL Server 7 Machine on Spark Cluster
Y축 : Elapsed Time 낮을 수록 성능 좋음.
8Core – 65GB Memory. 7 Machine.
Python Machine Learning on Spark
Spark Machine Learning 보완 도구들
Spark & Deep Learning
• Deep Water 의 예
Spark & Deep Learning
• BigDL 예
Spark Deep Learning Deep Dive
• Keras + Tensorflow + Spark : elephas
Spark Deep Learning Deep Dive
Spark 의 Position!
- Spark 개발자가 BigData Scale ML/DL Job을 처리하는 시나리오!
R, SAS , SPSS
Matlab
R, Python
BI, OLAP
Spark
Spark ML
Spark Streaming
Spark GraphX
Hadoop
NoSQL
Python, R
Spark R
Revolution R
Tensorflow
Keras
CNTK 등등
H2O, Weka
Deeplearning4j
Spark ML 실무 Pain Point 시나리오 #1
• 메모리 & CPU 리소스 부족 문제(성능 측면과 리소스 측면 아키텍처가 달라짐.)
• ML 에서는 CPU 병목이 더 빈번
• Yarn mode vs Mesos Mode vs Stand Alone
• Hadoop 노드가 전체 eco system 의 1/5 ? 1/3? 그럼 mesos 를 쫙 펼쳐놓고 사용하는게
유리. 물론 머신이 충분히 많아서 리소스가 아무 문제가 안되면 이런 논리는 해당사항 없
음.
• Mesos 는 Off heap 을 다이나믹 하게 잘 사용. CPU와 Memory, Executor 의 갯수까지 매
우 유연하게 할당해줌. 하나의 Job 안에서도 매우 Elastic 함.( yarn 보다 이 부분은 장점이
더 많음. Fine Grain 모드일때). 물론 Yarn 도 Dynamic Allocation 세팅 이 불가능하진 않음.
실제 돌려보면 둘간의 양상이 좀 다름. Mesos 가 훨씬 Dynamic 함. But 성능이 그리 빠
르진 않음.  Dynamic 할당에 Overhead 가 좀 있는 듯. 이 부분이 Spark 2.x 에서는 좀
개선됨. Mesos 의 Dynamic Allocation 메커니즘이 바뀌었음.) -> 추가로 이 시나리오가
run 할려면 mesos 는 spark.scheduler.mode = FAIR 옵션을 주어야 하고, Yarn 은 Yarn 스
케줄러 세팅에 Fair 스케줄러를 정교하게 추가 세팅할 필요가 있다.
Spark ML 실무 Pain Point 시나리오 #2
Spark ML 실무 Pain Point 시나리오 #3
• 리소스를 쥐어 짜면서 사용하는 Production 상황. (ML job 이 많을수록 리소스
부족 현상 증가)
• 모든 Job 을 최대 퍼포먼스 Full 할당으로 Serial 구성??? 바람직 하지 않음. 어떤
경우는 CPU 를 어떤 경우는 Memory 를 많이 쓰기 때문에…. 복수 Job 이 잘게
쪼개져 병렬 수행되는 경우( 마치 가상화가 OnPremise 보다 효율이 좋은것처럼)
더 낳은 결과를 가져올 수 있음. 하루 종일 10분배치 시간 배치 일배치가 끊임없
이 돌고 있고, 경우에 따라 Long Running Adhoc 배치가 도는 경우 정교한 세팅
은 관리가 매우 손이 많이 가고, 인재로 인한 장애 확률을 높임. 최대한 dynamic
allocation 의 힘을 빌리는게 유리. (job 은 최대한 잘게 쪼개지는 fine graind
mode.) 부분적으로 매우 중요한 잡에 대하여 coarse graind mode. 로 dedicate
자원 할당. 혹은 별도 hw zone 으로 나누는 것도 방법임. (예, Spark Streaming 의
경우… 리소스에 매우 민감)
Spark ML 실무 Pain Point 시나리오 #4
• Disk 부족 문제
• Machine Learning 을 하는 경우 알고리즘에 따라, 작은 크기의 Input
데이터라 할지라도, 계산에 동원된 전체 Node 의 모든 Disk 를 Full 로
사용하고도 모자라는 경우가 있다.
• [해결책]
• Hyper-Parameter 값 설정 Trade Off
• Hybrid Cloud 리소스 활용
• Mesos Cluster 활용 ( Yarn Cluster 개수는 Hadoop Node 개수에 dependency가
있으나, Mesos Cluster 는 보유 전 장비에 펼칠 수 있다. 예, NoSQL Cluster 도 동
원 가능 )
Spark ML 실무 Pain Point 시나리오 #5
• IO 병목 문제
• 일반적인 Computer Science 상식과 달리 Spark 에서는 IO 병목이 흔하
지 않음.
• 가끔 다량의 데이터에 대한 File Operation 이 많을 때 IO 병목이 있을
수 있으나, 가장 쉽고 빠른 해결책은 Network Card 를 업그레이드 하
는 방법.
• 1G 카드를 10G 로 교체. 혹은 노드당 10G 2개 혹은 4개 로 복수 네트
워크 카드 장착.
• Spark 의 경우 이 경우 15~20% 정도의 속도 개선이 생김.(속도 개선이
미미한 모델도 있음)
• Network 속도 자체는 수십배 좋아졌지만, 20% 이상 성능 개선이 되는
경우는 거의 없다. 대부분 리소스 병목은 CPU, Memory , IO 등이 복합
적이기 때문.
Spark ML 실무 Pain Point 시나리오 #6
• BigData Scale Data Load 불가능 시나리오
• 이때는 Map/Reduce 가 더 낫다.
• 생산성을 위한 Choice
• Hadoop Streaming
• Pig, Hive 등
• Clojure 기반의 Cascalog, Scala 기반의 Scalding
• 위 Map/Reduce Wrapping 기술로 Data 를 선집계, 이후 집계 데이터
로 Spark ML 실행.
• 알고리즘 자체가 BigData Scale 의 Input 을 요구하는 경우
• Popular 알고리즘은 Mahout이 대안 (최신 버전 말고 구 버전이 더 유용)
• Weka, DeepLearning4J , H2O , Sparkling Water 등 다른 Tool 의 Support 연동
안 검토
Spark ML 실무 Pain Point 시나리오 #7
• 너무 느릴때
• 각종 Model 의 Hyper Parameter 를 적절히 변경해 주어야 함.
• Driver Memory, Executor Memory 를 적절히 지정해 주어야 함.
• Data 를 BroadCast.
• 최초에 한번 Heavy Computing 이 필요하더라도, 아래 기법 잘 활용해야 함.
Broadcast 를 잘 써야 함….
Spark ML 실무 Pain Point 시나리오 #8
• 너무 잘게 파일이 많을 때에는 어마어마하게 셔플 IO Over Head 발생
• File Write 측면에서는 Map 과 RDD.saveAsTextFile(HDS_PATH) 가 유리
• Spark ML / Spark SQL Data Load 측면에서는
RDD.coalesce(1).saveAsTextFile(HDS_PATH) 가 유리
• File 이 어마어마 하게 클때는 coalesce(1) 없이 Write 이후 roading 시점
혹은, writing 직후 Map/Reduce 로 Merge 가 더 유리.
Spark ML 실무 Pain Point 시나리오 #9
• 알고리즘 종류 빈약
• 모델 및 feature selection 과정에는 다양한 알고리즘과 다양한 시도를 빠르게
많이 시도해 볼 필요가 있음.
• Spark ML 이 제공하는 알고리즘들은 대부분 가장 Popular 하고, 비교적 최신
알고리즘인 대표 알고리즘이 1개 씩만 존재.
• 동일 주제에 유사한 복수 알고리즘 테스트가 힘듦.
• 알고리즘 Selection 은 Python 이나 R 등 Support 알고리즘이 더 풍부한 플랫폼이 더
유리.
• 알고리즘이 확정되면, 해당 알고리즘이 Spark ML 에 존재하는 검토
• 존재하는 경우 Spark ML 로 Production 화 개발.
• 예, R 로 2박 3일 걸리는 모델을 Spark ML 로 시간 배치 화 개발.
• 예, 모델에 대한 알고리즘 개발 시점에는 셈플 데이터 이용. Production 시점
에는 전수 데이터 이용.
Spark ML 실무 Pain Point 시나리오 #10
• 알고리즘은 존재하는데 메소드가 너무 빈약
• 막상 알고리즘은 존재하는데, 고급 기법이나 파라미터, 각종 부가 메소
드가 존재하지 않는 경우가 많음.
• Word2Vec 의 예
• FP-Growth 의 예
Spark ML 실무 Pain Point 시나리오 #11
• 알고리즘이 존재하지 않는 경우. (ML 의 경우)
• 알고리즘이 존재하지 않는 경우. (Deep Learning 의 경우)
기타.
• Deep Learning 툴 소개
• http://ankivil.com/choosing-a-deep-learning-software/
• 딥러닝 프레임워크 속도 비교
• https://tensorflow.blog/2017/02/13/chainer-mxnet-cntk-tf-
benchmarking/
• Keras
• 버전 2 준비 되고 있음.
• CNTK 도 Keras 백엔드가 될 듯.
• Keras 가 Tensorflow 코드 베이스로 흡수??
Spark machine learning & deep learning

Más contenido relacionado

La actualidad más candente

Spark & Zeppelin을 활용한 머신러닝 실전 적용기
Spark & Zeppelin을 활용한 머신러닝 실전 적용기Spark & Zeppelin을 활용한 머신러닝 실전 적용기
Spark & Zeppelin을 활용한 머신러닝 실전 적용기Taejun Kim
 
Zeppelin(Spark)으로 데이터 분석하기
Zeppelin(Spark)으로 데이터 분석하기Zeppelin(Spark)으로 데이터 분석하기
Zeppelin(Spark)으로 데이터 분석하기SangWoo Kim
 
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기AWSKRUG - AWS한국사용자모임
 
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제NAVER D2
 
Apache Spark 입문에서 머신러닝까지
Apache Spark 입문에서 머신러닝까지Apache Spark 입문에서 머신러닝까지
Apache Spark 입문에서 머신러닝까지Donam Kim
 
Apache Zeppelin으로 데이터 분석하기
Apache Zeppelin으로 데이터 분석하기Apache Zeppelin으로 데이터 분석하기
Apache Zeppelin으로 데이터 분석하기SangWoo Kim
 
Spark은 왜 이렇게 유명해지고 있을까?
Spark은 왜 이렇게  유명해지고 있을까?Spark은 왜 이렇게  유명해지고 있을까?
Spark은 왜 이렇게 유명해지고 있을까?KSLUG
 
Cloudera & Zookeeper
Cloudera & ZookeeperCloudera & Zookeeper
Cloudera & ZookeeperJunyoung Park
 
Apache spark 소개 및 실습
Apache spark 소개 및 실습Apache spark 소개 및 실습
Apache spark 소개 및 실습동현 강
 
Spark로 알아보는 빅데이터 처리
Spark로 알아보는 빅데이터 처리Spark로 알아보는 빅데이터 처리
Spark로 알아보는 빅데이터 처리Jeong-gyu Kim
 
Zeppelin notebook 만들기
Zeppelin notebook 만들기Zeppelin notebook 만들기
Zeppelin notebook 만들기Soo-Kyung Choi
 
Spark와 Hadoop, 완벽한 조합 (한국어)
Spark와 Hadoop, 완벽한 조합 (한국어)Spark와 Hadoop, 완벽한 조합 (한국어)
Spark와 Hadoop, 완벽한 조합 (한국어)Teddy Choi
 
왜 Spark 와 infinispan 왜 같이 쓰지
왜 Spark 와 infinispan 왜 같이 쓰지 왜 Spark 와 infinispan 왜 같이 쓰지
왜 Spark 와 infinispan 왜 같이 쓰지 Un Gi Jung
 
2.apache spark 실습
2.apache spark 실습2.apache spark 실습
2.apache spark 실습동현 강
 
PySpark 배우기 Ch 06. ML 패키지 소개하기
PySpark 배우기 Ch 06. ML 패키지 소개하기PySpark 배우기 Ch 06. ML 패키지 소개하기
PySpark 배우기 Ch 06. ML 패키지 소개하기찬희 이
 
Spark 소개 2부
Spark 소개 2부Spark 소개 2부
Spark 소개 2부Jinho Yoo
 
Introduction to Apache Tajo
Introduction to Apache TajoIntroduction to Apache Tajo
Introduction to Apache TajoGruter
 
Zeppelin(제플린) 서울시립대학교 데이터 마이닝연구실 활용사례
Zeppelin(제플린) 서울시립대학교 데이터 마이닝연구실 활용사례Zeppelin(제플린) 서울시립대학교 데이터 마이닝연구실 활용사례
Zeppelin(제플린) 서울시립대학교 데이터 마이닝연구실 활용사례Taejun Kim
 

La actualidad más candente (20)

Spark & Zeppelin을 활용한 머신러닝 실전 적용기
Spark & Zeppelin을 활용한 머신러닝 실전 적용기Spark & Zeppelin을 활용한 머신러닝 실전 적용기
Spark & Zeppelin을 활용한 머신러닝 실전 적용기
 
Zeppelin(Spark)으로 데이터 분석하기
Zeppelin(Spark)으로 데이터 분석하기Zeppelin(Spark)으로 데이터 분석하기
Zeppelin(Spark)으로 데이터 분석하기
 
(Apacje Spark)아파치 스파크 개요, 소개, 스파크란?
(Apacje Spark)아파치 스파크 개요, 소개, 스파크란?(Apacje Spark)아파치 스파크 개요, 소개, 스파크란?
(Apacje Spark)아파치 스파크 개요, 소개, 스파크란?
 
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
 
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
[D2 COMMUNITY] Spark User Group - 스파크를 통한 딥러닝 이론과 실제
 
Apache Spark 입문에서 머신러닝까지
Apache Spark 입문에서 머신러닝까지Apache Spark 입문에서 머신러닝까지
Apache Spark 입문에서 머신러닝까지
 
Apache Zeppelin으로 데이터 분석하기
Apache Zeppelin으로 데이터 분석하기Apache Zeppelin으로 데이터 분석하기
Apache Zeppelin으로 데이터 분석하기
 
Spark은 왜 이렇게 유명해지고 있을까?
Spark은 왜 이렇게  유명해지고 있을까?Spark은 왜 이렇게  유명해지고 있을까?
Spark은 왜 이렇게 유명해지고 있을까?
 
Cloudera & Zookeeper
Cloudera & ZookeeperCloudera & Zookeeper
Cloudera & Zookeeper
 
Apache spark 소개 및 실습
Apache spark 소개 및 실습Apache spark 소개 및 실습
Apache spark 소개 및 실습
 
Spark sql
Spark sqlSpark sql
Spark sql
 
Spark로 알아보는 빅데이터 처리
Spark로 알아보는 빅데이터 처리Spark로 알아보는 빅데이터 처리
Spark로 알아보는 빅데이터 처리
 
Zeppelin notebook 만들기
Zeppelin notebook 만들기Zeppelin notebook 만들기
Zeppelin notebook 만들기
 
Spark와 Hadoop, 완벽한 조합 (한국어)
Spark와 Hadoop, 완벽한 조합 (한국어)Spark와 Hadoop, 완벽한 조합 (한국어)
Spark와 Hadoop, 완벽한 조합 (한국어)
 
왜 Spark 와 infinispan 왜 같이 쓰지
왜 Spark 와 infinispan 왜 같이 쓰지 왜 Spark 와 infinispan 왜 같이 쓰지
왜 Spark 와 infinispan 왜 같이 쓰지
 
2.apache spark 실습
2.apache spark 실습2.apache spark 실습
2.apache spark 실습
 
PySpark 배우기 Ch 06. ML 패키지 소개하기
PySpark 배우기 Ch 06. ML 패키지 소개하기PySpark 배우기 Ch 06. ML 패키지 소개하기
PySpark 배우기 Ch 06. ML 패키지 소개하기
 
Spark 소개 2부
Spark 소개 2부Spark 소개 2부
Spark 소개 2부
 
Introduction to Apache Tajo
Introduction to Apache TajoIntroduction to Apache Tajo
Introduction to Apache Tajo
 
Zeppelin(제플린) 서울시립대학교 데이터 마이닝연구실 활용사례
Zeppelin(제플린) 서울시립대학교 데이터 마이닝연구실 활용사례Zeppelin(제플린) 서울시립대학교 데이터 마이닝연구실 활용사례
Zeppelin(제플린) 서울시립대학교 데이터 마이닝연구실 활용사례
 

Destacado

MMLSpark: Lessons from Building a SparkML-Compatible Machine Learning Library...
MMLSpark: Lessons from Building a SparkML-Compatible Machine Learning Library...MMLSpark: Lessons from Building a SparkML-Compatible Machine Learning Library...
MMLSpark: Lessons from Building a SparkML-Compatible Machine Learning Library...Spark Summit
 
Deep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & Spark
Deep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & SparkDeep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & Spark
Deep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & Sparkhoondong kim
 
Apache Kafka Streams + Machine Learning / Deep Learning
Apache Kafka Streams + Machine Learning / Deep LearningApache Kafka Streams + Machine Learning / Deep Learning
Apache Kafka Streams + Machine Learning / Deep LearningKai Wähner
 
Deep Learning with Apache Spark and GPUs with Pierce Spitler
Deep Learning with Apache Spark and GPUs with Pierce SpitlerDeep Learning with Apache Spark and GPUs with Pierce Spitler
Deep Learning with Apache Spark and GPUs with Pierce SpitlerDatabricks
 
Jeremy Nixon, Machine Learning Engineer, Spark Technology Center at MLconf AT...
Jeremy Nixon, Machine Learning Engineer, Spark Technology Center at MLconf AT...Jeremy Nixon, Machine Learning Engineer, Spark Technology Center at MLconf AT...
Jeremy Nixon, Machine Learning Engineer, Spark Technology Center at MLconf AT...MLconf
 
Build a deep learning pipeline on apache spark for ads optimization
Build a deep learning pipeline on apache spark for ads optimizationBuild a deep learning pipeline on apache spark for ads optimization
Build a deep learning pipeline on apache spark for ads optimizationCraig Chao
 
Streaming platform Kafka in SK planet
Streaming platform Kafka in SK planetStreaming platform Kafka in SK planet
Streaming platform Kafka in SK planetByeongsu Kang
 
20170210 sapporotechbar7
20170210 sapporotechbar720170210 sapporotechbar7
20170210 sapporotechbar7Ryuji Tamagawa
 
Deep Learning Streaming Platform with Kafka Streams, TensorFlow, DeepLearning...
Deep Learning Streaming Platform with Kafka Streams, TensorFlow, DeepLearning...Deep Learning Streaming Platform with Kafka Streams, TensorFlow, DeepLearning...
Deep Learning Streaming Platform with Kafka Streams, TensorFlow, DeepLearning...Kai Wähner
 

Destacado (9)

MMLSpark: Lessons from Building a SparkML-Compatible Machine Learning Library...
MMLSpark: Lessons from Building a SparkML-Compatible Machine Learning Library...MMLSpark: Lessons from Building a SparkML-Compatible Machine Learning Library...
MMLSpark: Lessons from Building a SparkML-Compatible Machine Learning Library...
 
Deep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & Spark
Deep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & SparkDeep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & Spark
Deep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & Spark
 
Apache Kafka Streams + Machine Learning / Deep Learning
Apache Kafka Streams + Machine Learning / Deep LearningApache Kafka Streams + Machine Learning / Deep Learning
Apache Kafka Streams + Machine Learning / Deep Learning
 
Deep Learning with Apache Spark and GPUs with Pierce Spitler
Deep Learning with Apache Spark and GPUs with Pierce SpitlerDeep Learning with Apache Spark and GPUs with Pierce Spitler
Deep Learning with Apache Spark and GPUs with Pierce Spitler
 
Jeremy Nixon, Machine Learning Engineer, Spark Technology Center at MLconf AT...
Jeremy Nixon, Machine Learning Engineer, Spark Technology Center at MLconf AT...Jeremy Nixon, Machine Learning Engineer, Spark Technology Center at MLconf AT...
Jeremy Nixon, Machine Learning Engineer, Spark Technology Center at MLconf AT...
 
Build a deep learning pipeline on apache spark for ads optimization
Build a deep learning pipeline on apache spark for ads optimizationBuild a deep learning pipeline on apache spark for ads optimization
Build a deep learning pipeline on apache spark for ads optimization
 
Streaming platform Kafka in SK planet
Streaming platform Kafka in SK planetStreaming platform Kafka in SK planet
Streaming platform Kafka in SK planet
 
20170210 sapporotechbar7
20170210 sapporotechbar720170210 sapporotechbar7
20170210 sapporotechbar7
 
Deep Learning Streaming Platform with Kafka Streams, TensorFlow, DeepLearning...
Deep Learning Streaming Platform with Kafka Streams, TensorFlow, DeepLearning...Deep Learning Streaming Platform with Kafka Streams, TensorFlow, DeepLearning...
Deep Learning Streaming Platform with Kafka Streams, TensorFlow, DeepLearning...
 

Similar a Spark machine learning & deep learning

100% Serverless big data scale production Deep Learning System
100% Serverless big data scale production Deep Learning System100% Serverless big data scale production Deep Learning System
100% Serverless big data scale production Deep Learning Systemhoondong kim
 
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기Wonha Ryu
 
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들Woong Seok Kang
 
[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처
[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처
[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처hoondong kim
 
Python & Spark
Python & SparkPython & Spark
Python & Sparkitproman35
 
[246] foursquare데이터라이프사이클 설현준
[246] foursquare데이터라이프사이클 설현준[246] foursquare데이터라이프사이클 설현준
[246] foursquare데이터라이프사이클 설현준NAVER D2
 
[215]네이버콘텐츠통계서비스소개 김기영
[215]네이버콘텐츠통계서비스소개 김기영[215]네이버콘텐츠통계서비스소개 김기영
[215]네이버콘텐츠통계서비스소개 김기영NAVER D2
 
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...hoondong kim
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019devCAT Studio, NEXON
 
[스마트스터디]MongoDB 의 역습
[스마트스터디]MongoDB 의 역습[스마트스터디]MongoDB 의 역습
[스마트스터디]MongoDB 의 역습smartstudy_official
 
2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)
2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)
2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)khuhacker
 
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWSMatthew (정재화)
 
E-commerce BigData Scale AI Journey
E-commerce BigData Scale AI JourneyE-commerce BigData Scale AI Journey
E-commerce BigData Scale AI Journeyhoondong kim
 
DataWorks Summit 2018
DataWorks Summit 2018DataWorks Summit 2018
DataWorks Summit 2018Daesung Park
 
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)Jaikwang Lee
 
2013 빅데이터 및 API 기술 현황과 전망- 윤석찬
2013 빅데이터 및 API 기술 현황과 전망- 윤석찬2013 빅데이터 및 API 기술 현황과 전망- 윤석찬
2013 빅데이터 및 API 기술 현황과 전망- 윤석찬Channy Yun
 
Optane DC Persistent Memory(DCPMM) 성능 테스트
Optane DC Persistent Memory(DCPMM) 성능 테스트Optane DC Persistent Memory(DCPMM) 성능 테스트
Optane DC Persistent Memory(DCPMM) 성능 테스트SANG WON PARK
 
[264] large scale deep-learning_on_spark
[264] large scale deep-learning_on_spark[264] large scale deep-learning_on_spark
[264] large scale deep-learning_on_sparkNAVER D2
 
스타트업사례로 본 로그 데이터분석 : Tajo on AWS
스타트업사례로 본 로그 데이터분석 : Tajo on AWS스타트업사례로 본 로그 데이터분석 : Tajo on AWS
스타트업사례로 본 로그 데이터분석 : Tajo on AWSGruter
 

Similar a Spark machine learning & deep learning (20)

100% Serverless big data scale production Deep Learning System
100% Serverless big data scale production Deep Learning System100% Serverless big data scale production Deep Learning System
100% Serverless big data scale production Deep Learning System
 
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
 
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
AWSKRUG DS - 데이터 엔지니어가 실무에서 맞닥뜨리는 문제들
 
[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처
[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처
[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처
 
Python & Spark
Python & SparkPython & Spark
Python & Spark
 
[246] foursquare데이터라이프사이클 설현준
[246] foursquare데이터라이프사이클 설현준[246] foursquare데이터라이프사이클 설현준
[246] foursquare데이터라이프사이클 설현준
 
[215]네이버콘텐츠통계서비스소개 김기영
[215]네이버콘텐츠통계서비스소개 김기영[215]네이버콘텐츠통계서비스소개 김기영
[215]네이버콘텐츠통계서비스소개 김기영
 
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
 
[스마트스터디]MongoDB 의 역습
[스마트스터디]MongoDB 의 역습[스마트스터디]MongoDB 의 역습
[스마트스터디]MongoDB 의 역습
 
2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)
2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)
2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)
 
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
스타트업 사례로 본 로그 데이터 분석 : Tajo on AWS
 
E-commerce BigData Scale AI Journey
E-commerce BigData Scale AI JourneyE-commerce BigData Scale AI Journey
E-commerce BigData Scale AI Journey
 
DataWorks Summit 2018
DataWorks Summit 2018DataWorks Summit 2018
DataWorks Summit 2018
 
AWS EMR + Spark ML
AWS EMR + Spark MLAWS EMR + Spark ML
AWS EMR + Spark ML
 
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
 
2013 빅데이터 및 API 기술 현황과 전망- 윤석찬
2013 빅데이터 및 API 기술 현황과 전망- 윤석찬2013 빅데이터 및 API 기술 현황과 전망- 윤석찬
2013 빅데이터 및 API 기술 현황과 전망- 윤석찬
 
Optane DC Persistent Memory(DCPMM) 성능 테스트
Optane DC Persistent Memory(DCPMM) 성능 테스트Optane DC Persistent Memory(DCPMM) 성능 테스트
Optane DC Persistent Memory(DCPMM) 성능 테스트
 
[264] large scale deep-learning_on_spark
[264] large scale deep-learning_on_spark[264] large scale deep-learning_on_spark
[264] large scale deep-learning_on_spark
 
스타트업사례로 본 로그 데이터분석 : Tajo on AWS
스타트업사례로 본 로그 데이터분석 : Tajo on AWS스타트업사례로 본 로그 데이터분석 : Tajo on AWS
스타트업사례로 본 로그 데이터분석 : Tajo on AWS
 

Spark machine learning & deep learning

  • 1. Spark Machine Learning Deep Dive (feat. Deep Learning) 스사모(Spark Korea User Group) 김훈동
  • 2. Who am I ? • 김훈동 Chief Partner ( hoondongkim@emart.com ) • 신세계 그룹 온라인 포털 SSG.COM 빅데이타팀 리더 • Hadoop, Spark, Machine Learning, Azure ML 분야 Microsoft MVP(Most Valuable Professional) • Major in BigData RealTime Analytics & NoSQL • http://hoondongkim.blogspot.kr
  • 3. I will say … • Spark Cluster 운영 경험 및 노하우 공유 • Spark로 하는 Machine Learning 에 대하여 • 장점과 단점 • Machine Learning & Deep Learning 분야에서의 Spark의 위상 • Spark 를 보완하는 다양한 도구 및 기술들 • Spark 개발자가 Deep Learning 시대에 임하는 자세
  • 4. 제가 속한 조직에 대하여…
  • 6. So What? He said “그래서 어쩌라고?”
  • 7. 하지만, 하는 일이 달라지고 있음! – 과거 현재 미래 • 과거를 분석 한다. (BigData Eco System Infra) • 트래킹 로그를 남긴다. • 빅데이타 수집 저장 분석을 위한 인프라를 만든다. • 빅데이타 배치로 과거 시계열 분석을 하고 시각화를 한다. • 현재에 반응 한다. (RealTime Layer / Spark Streaming / ELK) • 실시간으로 데이터 스트림을 분석한다. • FDS, 보안관제, 모니터링 등 즉각적으로 현재 상황에 대처하여 현재를 능동적으로 대비한다. • 미래를 예측 한다. (Mining / Machine Learning / Deep Learning) • 고객이 관심 갖고 있고 곧 살 것 같은 것을 추천한다. • 미래에 집행할 광고 및 제휴 채널 예산을 보다 ROI 높게 배분한다. • 발주를 예측한다. • 최적의 트럭 경로를 예측한다. • 가격을 올릴지 말지 얼마나 세일할지 최적의 가격을 예측한다. • 미래를 대비 한다. (Machine Learning / Deep Learning) • Chatbot • 자연어 활용, 이미지 활용 -> 검색 및 추천 고도화 • 기타 3~4년 전 2~3년 전 요즘
  • 10. BigData + Deep Learning Approach
  • 15. 개발자가 AI시대를 임하는 자세! 혹은 Math 와 통계,산업공학,인지과학 그리고 PH.D 가 난무하는 이 바닥에 가진 거라 곤 Develop Sprit 밖에 없는 개발자 Base의 Data Scientist가 존재감을 지키는 방법에 대하여! 고찰…
  • 16. 나는 빅데이타 개발자야! vs 나도 데이터 과학자야! Are you Data Scientist? 통계를 공부해야 하나? 수학을 다시 공부해야 하나? 이 분야는 내 분야가 아닌가?
  • 17. 다짐을 하게 된 계기…
  • 18. 개발자 입장에서 Deep Learning 이란? • 제프 딘 역할 • 우리가 더 잘하는 건…. • 대용량 데이터 처리 • 데이터 전처리 , 후처리 • 알고리즘 구현(코딩 레벨 구현) • Deep Learning 은 Low Level 코딩 구현이 더 많음. • Deep Learning 특히 CNN, RNN, RNN변형 , RL 등은 수학이 그리 복잡하지 않음. • 이전의 Machine Learning • Markov-Chain Monte Carlo • Gibbs Sampler • Variation Inference • Deep Belief Network • 현재의 Deep Learning • CNN • RNN • LSTM … Mathematical formula Engineering Art
  • 19. Spark 의 Position! - Spark 개발자가 BigData Scale ML Job을 처리하는 시나리오!
  • 20. Spark 의 Position! - Spark 개발자가 BigData Scale ML Job을 처리하는 시나리오!
  • 21. Spark ML 에 알고리즘이 없는 경우의 최 후의 보루! 직접 구현???
  • 22.
  • 23. Spark 특징 • Scala • Java • Python • R
  • 26. 언어별 장점 섞어 쓰기 • Scala + Java • PySpark + Python • SparkR + RevoScaleR(MS R) + CRAN-R
  • 27. Spark ML 에 알고리즘이 없는 경우의 최 후의 보루! 직접 구현??? 복잡한 알고리즘의 구현은 Java 가 좀 쉽긴 함. (example github source 도 많고…) 병렬성을 고려한 처리는 Java 로 구현하는것에 한계. 병렬성을 위한 Main routine 은 Scala 로…
  • 30. SAS vs Hive vs Spark
  • 31. SAS vs Hive vs Spark
  • 32. SAS vs Hive vs Spark
  • 33. SAS vs Hive vs Spark
  • 34. SAS vs Hive vs Spark
  • 35. 숲을 봐 보자(SAS vs Hive vs Spark)
  • 36. 숲을 봐 보자 • Prediction IO Example • 실무에서 ML Model 의 implementation 은 생각만큼 단순하지 않다. • Prediction IO 정도가 Full Range 를 숲 관점으로 접근 한다.
  • 37. R on Spark 에 대하여 • SparkR • Sparklyr • RevoScaleR(MS R)
  • 38. RevoScaleR on Spark 성능비교 1 Machine on MS-SQL Server 7 Machine on Spark Cluster Y축 : Elapsed Time 낮을 수록 성능 좋음. 8Core – 65GB Memory. 7 Machine.
  • 40. Spark Machine Learning 보완 도구들
  • 41. Spark & Deep Learning • Deep Water 의 예
  • 42. Spark & Deep Learning • BigDL 예
  • 43. Spark Deep Learning Deep Dive • Keras + Tensorflow + Spark : elephas
  • 44. Spark Deep Learning Deep Dive
  • 45. Spark 의 Position! - Spark 개발자가 BigData Scale ML/DL Job을 처리하는 시나리오! R, SAS , SPSS Matlab R, Python BI, OLAP Spark Spark ML Spark Streaming Spark GraphX Hadoop NoSQL Python, R Spark R Revolution R Tensorflow Keras CNTK 등등 H2O, Weka Deeplearning4j
  • 46. Spark ML 실무 Pain Point 시나리오 #1 • 메모리 & CPU 리소스 부족 문제(성능 측면과 리소스 측면 아키텍처가 달라짐.) • ML 에서는 CPU 병목이 더 빈번 • Yarn mode vs Mesos Mode vs Stand Alone • Hadoop 노드가 전체 eco system 의 1/5 ? 1/3? 그럼 mesos 를 쫙 펼쳐놓고 사용하는게 유리. 물론 머신이 충분히 많아서 리소스가 아무 문제가 안되면 이런 논리는 해당사항 없 음. • Mesos 는 Off heap 을 다이나믹 하게 잘 사용. CPU와 Memory, Executor 의 갯수까지 매 우 유연하게 할당해줌. 하나의 Job 안에서도 매우 Elastic 함.( yarn 보다 이 부분은 장점이 더 많음. Fine Grain 모드일때). 물론 Yarn 도 Dynamic Allocation 세팅 이 불가능하진 않음. 실제 돌려보면 둘간의 양상이 좀 다름. Mesos 가 훨씬 Dynamic 함. But 성능이 그리 빠 르진 않음.  Dynamic 할당에 Overhead 가 좀 있는 듯. 이 부분이 Spark 2.x 에서는 좀 개선됨. Mesos 의 Dynamic Allocation 메커니즘이 바뀌었음.) -> 추가로 이 시나리오가 run 할려면 mesos 는 spark.scheduler.mode = FAIR 옵션을 주어야 하고, Yarn 은 Yarn 스 케줄러 세팅에 Fair 스케줄러를 정교하게 추가 세팅할 필요가 있다.
  • 47. Spark ML 실무 Pain Point 시나리오 #2
  • 48. Spark ML 실무 Pain Point 시나리오 #3 • 리소스를 쥐어 짜면서 사용하는 Production 상황. (ML job 이 많을수록 리소스 부족 현상 증가) • 모든 Job 을 최대 퍼포먼스 Full 할당으로 Serial 구성??? 바람직 하지 않음. 어떤 경우는 CPU 를 어떤 경우는 Memory 를 많이 쓰기 때문에…. 복수 Job 이 잘게 쪼개져 병렬 수행되는 경우( 마치 가상화가 OnPremise 보다 효율이 좋은것처럼) 더 낳은 결과를 가져올 수 있음. 하루 종일 10분배치 시간 배치 일배치가 끊임없 이 돌고 있고, 경우에 따라 Long Running Adhoc 배치가 도는 경우 정교한 세팅 은 관리가 매우 손이 많이 가고, 인재로 인한 장애 확률을 높임. 최대한 dynamic allocation 의 힘을 빌리는게 유리. (job 은 최대한 잘게 쪼개지는 fine graind mode.) 부분적으로 매우 중요한 잡에 대하여 coarse graind mode. 로 dedicate 자원 할당. 혹은 별도 hw zone 으로 나누는 것도 방법임. (예, Spark Streaming 의 경우… 리소스에 매우 민감)
  • 49. Spark ML 실무 Pain Point 시나리오 #4 • Disk 부족 문제 • Machine Learning 을 하는 경우 알고리즘에 따라, 작은 크기의 Input 데이터라 할지라도, 계산에 동원된 전체 Node 의 모든 Disk 를 Full 로 사용하고도 모자라는 경우가 있다. • [해결책] • Hyper-Parameter 값 설정 Trade Off • Hybrid Cloud 리소스 활용 • Mesos Cluster 활용 ( Yarn Cluster 개수는 Hadoop Node 개수에 dependency가 있으나, Mesos Cluster 는 보유 전 장비에 펼칠 수 있다. 예, NoSQL Cluster 도 동 원 가능 )
  • 50. Spark ML 실무 Pain Point 시나리오 #5 • IO 병목 문제 • 일반적인 Computer Science 상식과 달리 Spark 에서는 IO 병목이 흔하 지 않음. • 가끔 다량의 데이터에 대한 File Operation 이 많을 때 IO 병목이 있을 수 있으나, 가장 쉽고 빠른 해결책은 Network Card 를 업그레이드 하 는 방법. • 1G 카드를 10G 로 교체. 혹은 노드당 10G 2개 혹은 4개 로 복수 네트 워크 카드 장착. • Spark 의 경우 이 경우 15~20% 정도의 속도 개선이 생김.(속도 개선이 미미한 모델도 있음) • Network 속도 자체는 수십배 좋아졌지만, 20% 이상 성능 개선이 되는 경우는 거의 없다. 대부분 리소스 병목은 CPU, Memory , IO 등이 복합 적이기 때문.
  • 51. Spark ML 실무 Pain Point 시나리오 #6 • BigData Scale Data Load 불가능 시나리오 • 이때는 Map/Reduce 가 더 낫다. • 생산성을 위한 Choice • Hadoop Streaming • Pig, Hive 등 • Clojure 기반의 Cascalog, Scala 기반의 Scalding • 위 Map/Reduce Wrapping 기술로 Data 를 선집계, 이후 집계 데이터 로 Spark ML 실행. • 알고리즘 자체가 BigData Scale 의 Input 을 요구하는 경우 • Popular 알고리즘은 Mahout이 대안 (최신 버전 말고 구 버전이 더 유용) • Weka, DeepLearning4J , H2O , Sparkling Water 등 다른 Tool 의 Support 연동 안 검토
  • 52. Spark ML 실무 Pain Point 시나리오 #7 • 너무 느릴때 • 각종 Model 의 Hyper Parameter 를 적절히 변경해 주어야 함. • Driver Memory, Executor Memory 를 적절히 지정해 주어야 함. • Data 를 BroadCast. • 최초에 한번 Heavy Computing 이 필요하더라도, 아래 기법 잘 활용해야 함.
  • 53. Broadcast 를 잘 써야 함….
  • 54. Spark ML 실무 Pain Point 시나리오 #8 • 너무 잘게 파일이 많을 때에는 어마어마하게 셔플 IO Over Head 발생 • File Write 측면에서는 Map 과 RDD.saveAsTextFile(HDS_PATH) 가 유리 • Spark ML / Spark SQL Data Load 측면에서는 RDD.coalesce(1).saveAsTextFile(HDS_PATH) 가 유리 • File 이 어마어마 하게 클때는 coalesce(1) 없이 Write 이후 roading 시점 혹은, writing 직후 Map/Reduce 로 Merge 가 더 유리.
  • 55. Spark ML 실무 Pain Point 시나리오 #9 • 알고리즘 종류 빈약 • 모델 및 feature selection 과정에는 다양한 알고리즘과 다양한 시도를 빠르게 많이 시도해 볼 필요가 있음. • Spark ML 이 제공하는 알고리즘들은 대부분 가장 Popular 하고, 비교적 최신 알고리즘인 대표 알고리즘이 1개 씩만 존재. • 동일 주제에 유사한 복수 알고리즘 테스트가 힘듦. • 알고리즘 Selection 은 Python 이나 R 등 Support 알고리즘이 더 풍부한 플랫폼이 더 유리. • 알고리즘이 확정되면, 해당 알고리즘이 Spark ML 에 존재하는 검토 • 존재하는 경우 Spark ML 로 Production 화 개발. • 예, R 로 2박 3일 걸리는 모델을 Spark ML 로 시간 배치 화 개발. • 예, 모델에 대한 알고리즘 개발 시점에는 셈플 데이터 이용. Production 시점 에는 전수 데이터 이용.
  • 56. Spark ML 실무 Pain Point 시나리오 #10 • 알고리즘은 존재하는데 메소드가 너무 빈약 • 막상 알고리즘은 존재하는데, 고급 기법이나 파라미터, 각종 부가 메소 드가 존재하지 않는 경우가 많음. • Word2Vec 의 예 • FP-Growth 의 예
  • 57. Spark ML 실무 Pain Point 시나리오 #11 • 알고리즘이 존재하지 않는 경우. (ML 의 경우) • 알고리즘이 존재하지 않는 경우. (Deep Learning 의 경우)
  • 58. 기타. • Deep Learning 툴 소개 • http://ankivil.com/choosing-a-deep-learning-software/ • 딥러닝 프레임워크 속도 비교 • https://tensorflow.blog/2017/02/13/chainer-mxnet-cntk-tf- benchmarking/ • Keras • 버전 2 준비 되고 있음. • CNTK 도 Keras 백엔드가 될 듯. • Keras 가 Tensorflow 코드 베이스로 흡수??

Notas del editor

  1. 제가 한 경험에 대하여 말해보려고 합니다.
  2. SSG 과거 현재 미래
  3. 이중 spark 라는 단어는 Spark Job, Spark R , Spark Streaming , Machine Learning & Deep Learning 쪽에 Spark ML 이렇게 3곳에 등장하고 있다 오늘은 이중에 Spark ML ,그리고 Deep Learning 에서의 활용 에 대하여 살펴볼 예정이며, 다음과 같은 여러 에코 시스템 중에 어떻게 중추적인 역할을 하고 있는지 Spark의 포지셔닝에 대하여 살펴보도록 하겠습니다.
  4. Disk 병목은 Hyper-Parameter 값 설정으로 극복해야 한다. Trade Off. - IO 병목은 흔하진 않다. 가끔은 IO 병목이 생기는 경우가 있는데, (굉장히 많은 양의 데이터를 다룰때) Network 카드를 10G로 바꾸면, 혹은 10G 카드를 2개 ~ 4개 꼳아 주면??? 15~20% 정도의 속도 개선이 생긴다. Network 속도 자체는 수십배 좋아졌지만, 20% 이상 성능 개선이 되는 경우는 거의 없다. 대부분 리소스 병목은 CPU, Memory , IO 등이 복합적이기 때문.
  5. Disk 병목은 Hyper-Parameter 값 설정으로 극복해야 한다. Trade Off. - IO 병목은 흔하진 않다. 가끔은 IO 병목이 생기는 경우가 있는데, (굉장히 많은 양의 데이터를 다룰때) Network 카드를 10G로 바꾸면, 혹은 10G 카드를 2개 ~ 4개 꼳아 주면??? 15~20% 정도의 속도 개선이 생긴다. Network 속도 자체는 수십배 좋아졌지만, 20% 이상 성능 개선이 되는 경우는 거의 없다. 대부분 리소스 병목은 CPU, Memory , IO 등이 복합적이기 때문.
  6. - IO 병목은 흔하진 않다. 가끔은 IO 병목이 생기는 경우가 있는데, (굉장히 많은 양의 데이터를 다룰때) Network 카드를 10G로 바꾸면, 혹은 10G 카드를 2개 ~ 4개 꼳아 주면??? 15~20% 정도의 속도 개선이 생긴다. Network 속도 자체는 수십배 좋아졌지만, 20% 이상 성능 개선이 되는 경우는 거의 없다. 대부분 리소스 병목은 CPU, Memory , IO 등이 복합적이기 때문.
  7. Tensorflow 가 인기인 이유 GPU + 멀티노드 의 용이함. ( 기존 강자 Theano , Torch 를 따돌리는 계기가 됨. ) Lua 보다는 Python ( Torch 의 경우 대비… ) Tensorflow Serving Scikit flow (현재 Tensorflow 에 합쳐짐. TF.Learn 패키지. Scikit Learn 스타일 Tensorflow Wrapper API)