SlideShare uma empresa Scribd logo
1 de 36
Baixar para ler offline
Spark Day 2017
Deep Learning Text NLP
with Spark Collaboration
스사모(Spark Korea User Group)
SSG.COM BigData Team
김훈동
Who am I ?
• 김훈동
• 스사모(Korea Spark User Group)
• 신세계 그룹 온라인 포털 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 …
• Buzzword( AI, ML, DL … )
• 챗봇 & Text NLP …
• Deep Learning NLP
• 다양한 알고리즘.
• 성능
• 구현 Code 및 결과 Review
• Pain Point
• Spark Collaboration for Deep Learning
• 결론
Buzzword AI에 대하여…
Buzzword Machine Learning에 대하여…
• 블랙박스 접근 vs 룰기반
Buzzword Deep Learning 에 대하여…
Buzzword 챗봇에 대하여
Closed Domain Chatbot vs Open Domain Chatbot
Retrieval Based Model vs Generative Model
Easy Hard
한정된 도메인.
특정 분야.
Pre-defined Response
때로는 Rule Base
때로는 Text Classification
도메인 및 의도 한정 없음.
열린 분야.
질문에 따라 답변 생성
학습하지 못한 질문에 대하여도
적절한 답변 생성 및 창조
Machine Learning vs Deep Learning
• 보다 긴 역사를 가지고 있다.
• 많은 구현체, 검증된 방법론들이 있다.
• 보다 다양한 요건에 대한 방법론이 존
재한다.
• 작은 데이터로 빠른 성능에 도달하기
도 한다.
[장점]
[단점]
• 특정 분야에서는 Deep Learning 보다
정확도가 많이 떨어진다.
• Feature selection , 검증 등에 있어,
Deep Learning 의 end to end 방식에
비하여 손이 많이 가고, feature 가 매
우 많을 때에는 현실적이지 않을 수 있
다.
• 특정 분야에 있어서는 Dramatic한 성
능 향상을 꽤 할 수 있다.
• Feature Selection 등에 큰 공을 들이지
않더라도, 모델이 end to end 로 학습
하고 선별하는 경우가 많다.
• 상당히 많은 Label 데이터가 필요 할
때가 많다.
• 작은 양의 데이터로는 Under fit 되는
경우가 ML의 경우보다 더 많다.
• GPU 및 BigData Scale Computing 환
경 등, 고사양의 Compute 자원을 필요
로 한다.
개발자 입장에서 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
Machine Learning vs Deep Learning
Sentimental Analysis for 한글
1. Naïve Bayes
2. Word2Vec + CNN
한글문장 긍부정 Sentimental 분류
Naïve Bayes 83.2%
Word2Vec + CNN 85.4%
- 긍부정 정확도 Score 출처. (by 송치성(바벨피쉬))
작은 크기 데이터.
긍 부정 등 쉬운 분류 문제에서는 Machine Learning
도 매우 정확하고, 훨씬 Training 이 빠름!
Machine Learning vs Deep Learning
Sentimental Analysis for 한글
1. Multinomial Naïve Bayes
2. Count Vector + SVM
3. TF-IDF + SVM
4. Word2Vec + CNN
한글문장 138지 분류
(1:1고객응대 Data)
Multinomial Naïve Bayes 32.31%
Count Vector + SVM 17.28%
TF-IDF + SVM 51.21%
Word2Vec + CNN 59.00%
- 사용데이타 SSG.COM 1:1 고객응대 CS Data, 138지 분류 문제 (Top 1 맞추기)
- Training Data : 1,649,415건
데이터 충분히 많은 경우.
좀 어려운 다지 분류 문제로 가보자.
Deep Learning Text Classification Deep Dive for 한글
1. Word2Vec + CNN (Batch Normalize + Augmentation)
2. Word2Vec + LSTM
3. Word2Vec + CNN + LSTM
4. Word2Vec + Bidirectional GRU
5. Word2Vec + Bidirectional GRU + Attention Network
6. FastText
7. Glove + LSTM
- 사용데이타 SSG.COM 1:1 고객응대 CS Data – 고객 라벨링
Deep Learning Text Classification Deep Dive for 한글
1. Word2Vec + CNN (Batch Normalize + Augmentation)
2. Word2Vec + LSTM
3. Word2Vec + CNN + LSTM
4. Word2Vec + Bidirectional GRU
5. Word2Vec + Bidirectional GRU + Attention Network
6. FastText
7. Glove + LSTM (Tensorflow GPU vs BigDL on Spark Cluster)
- 사용데이타 : SSG.COM 1:1 고객응대 CS Data 총 31지 분류 (top 1 맞추기) – 고객 라벨링
- Training Data : 1,649,415건
72.30%
73.94%
72.97%
74.36%
73.15%
72.50%
...ing
Code On!
Training 속도에 대하여
Training 속도에 대하여
• Best Score is Word2Vec + Bidirectional GRU
• Tesla M40 GPU
• Training Data 165만 건
• Learning Rate 0.0005
• 5 Epoch 에 50000초 = 833분 = 약 14시간
Deep Learning Hyper Parameter Optimization
Deep Learning Hyper Parameter Optimization
Deep Learning Text NLP – Pain Point
1. 검증된 알고리즘 코딩시간
< 해당 알고리즘에 Data 를 태우기 까지의 전처리 (of course 재활용 가능)
< Hyper Parameter Optimization
2. Data 전처리, Pandas, Numpy ? One Single Core for 수백 기가 이상 데이터??
3. GPU 의 small memory, GPU 머신 수 부족.
4. GPU 를 이용한 병렬 Deep Learning 코딩 은 흡사 초기 Map/Reduce 코딩 유사
5. 수백 기가 이상 데이터에 대한 Deep Learning?
6. 반복, 반복, 반복, parameter 바꾸고 또 반복….
Python Machine Learning on Spark
Spark Deep Learning Deep Dive
• Keras + Tensorflow + Spark : elephas
Jupyter on Spark + Hadoop Cluster
BigDL Deep Learning Job on Hadoop
Yarn Manager (by Spark Job)
BigDL Deep Learning Text Classification
BigDL Deep Learning Job on Hadoop
Yarn Manager (by Spark Job)
BigDL Deep Learning Text Classification
Spark & Deep Learning
• BigDL 예
Spark & Deep Learning
• BigDL Magic Button
https://software.intel.com/en-us/articles/deploying-bigdl-on-azure-data-science-vm
Tensorflow on Spark
Tensorflow on Spark
Spark & Deep Learning
• Deep Water 의 예
기타.
• 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 코드 베이스로 흡수??
기타
Conclusion
• Deep Learning 이 은총알은 아니지만…
• 특정 분야에 성능에 있어 퀀텀 점프 된 성능을 보이는 것은 사실..
• 다양한 도구와 툴이 생겨나면서 진입장벽도 낮아지고 있음.
• 개발자가 유리한 부분이 많음. (최소한의 이론 습득이 갖추어 져 있
다면.)
• 현재의 상황을 보면, 좀더 Deep Learning 이 보급되고 보편화 될것
으로 보임.
• Pain Point 를 통해 예측컨데, 다시 Spark 가 힘을 받을 수 있는 환
경이 갖추어 지고 있음.
Deep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & Spark

Mais conteúdo relacionado

Mais procurados

Tensorflow service & Machine Learning
Tensorflow service & Machine LearningTensorflow service & Machine Learning
Tensorflow service & Machine LearningJEEHYUN PAIK
 
Spark Day 2017 Machine Learning & Deep Learning With Spark
Spark Day 2017 Machine Learning & Deep Learning With SparkSpark Day 2017 Machine Learning & Deep Learning With Spark
Spark Day 2017 Machine Learning & Deep Learning With SparkSangHoon Lee
 
인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템NAVER D2
 
Zeppelin(제플린) 서울시립대학교 데이터 마이닝연구실 활용사례
Zeppelin(제플린) 서울시립대학교 데이터 마이닝연구실 활용사례Zeppelin(제플린) 서울시립대학교 데이터 마이닝연구실 활용사례
Zeppelin(제플린) 서울시립대학교 데이터 마이닝연구실 활용사례Taejun Kim
 
Theano 와 Caffe 실습
Theano 와 Caffe 실습 Theano 와 Caffe 실습
Theano 와 Caffe 실습 정주 김
 
Io17ex automl & autodraw
Io17ex automl & autodrawIo17ex automl & autodraw
Io17ex automl & autodrawTae Young Lee
 
Data-Oriented Design과 유니티 DOTS
Data-Oriented Design과 유니티 DOTSData-Oriented Design과 유니티 DOTS
Data-Oriented Design과 유니티 DOTSSukwoo Lee
 
Spark & Zeppelin을 활용한 한국어 텍스트 분류
Spark & Zeppelin을 활용한 한국어 텍스트 분류Spark & Zeppelin을 활용한 한국어 텍스트 분류
Spark & Zeppelin을 활용한 한국어 텍스트 분류Taejun Kim
 
[232] 수퍼컴퓨팅과 데이터 어낼리틱스
[232] 수퍼컴퓨팅과 데이터 어낼리틱스[232] 수퍼컴퓨팅과 데이터 어낼리틱스
[232] 수퍼컴퓨팅과 데이터 어낼리틱스NAVER D2
 
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)Yongho Ha
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기NAVER D2
 
TenforFlow Internals
TenforFlow InternalsTenforFlow Internals
TenforFlow InternalsKiho Hong
 
Deep learning framework 제작
Deep learning framework 제작Deep learning framework 제작
Deep learning framework 제작Tae Young Lee
 
[241] Storm과 Elasticsearch를 활용한 로깅 플랫폼의 실시간 알람 시스템 구현
[241] Storm과 Elasticsearch를 활용한 로깅 플랫폼의 실시간 알람 시스템 구현[241] Storm과 Elasticsearch를 활용한 로깅 플랫폼의 실시간 알람 시스템 구현
[241] Storm과 Elasticsearch를 활용한 로깅 플랫폼의 실시간 알람 시스템 구현NAVER D2
 
Zeppelin notebook 만들기
Zeppelin notebook 만들기Zeppelin notebook 만들기
Zeppelin notebook 만들기Soo-Kyung Choi
 
[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅NAVER D2
 
[244] 분산 환경에서 스트림과 배치 처리 통합 모델
[244] 분산 환경에서 스트림과 배치 처리 통합 모델[244] 분산 환경에서 스트림과 배치 처리 통합 모델
[244] 분산 환경에서 스트림과 배치 처리 통합 모델NAVER D2
 
Spark machine learning & deep learning
Spark machine learning & deep learningSpark machine learning & deep learning
Spark machine learning & deep learninghoondong kim
 

Mais procurados (20)

Tensorflow service & Machine Learning
Tensorflow service & Machine LearningTensorflow service & Machine Learning
Tensorflow service & Machine Learning
 
Spark Day 2017 Machine Learning & Deep Learning With Spark
Spark Day 2017 Machine Learning & Deep Learning With SparkSpark Day 2017 Machine Learning & Deep Learning With Spark
Spark Day 2017 Machine Learning & Deep Learning With Spark
 
인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템
 
Zeppelin(제플린) 서울시립대학교 데이터 마이닝연구실 활용사례
Zeppelin(제플린) 서울시립대학교 데이터 마이닝연구실 활용사례Zeppelin(제플린) 서울시립대학교 데이터 마이닝연구실 활용사례
Zeppelin(제플린) 서울시립대학교 데이터 마이닝연구실 활용사례
 
Theano 와 Caffe 실습
Theano 와 Caffe 실습 Theano 와 Caffe 실습
Theano 와 Caffe 실습
 
Io17ex automl & autodraw
Io17ex automl & autodrawIo17ex automl & autodraw
Io17ex automl & autodraw
 
Data-Oriented Design과 유니티 DOTS
Data-Oriented Design과 유니티 DOTSData-Oriented Design과 유니티 DOTS
Data-Oriented Design과 유니티 DOTS
 
Spark & Zeppelin을 활용한 한국어 텍스트 분류
Spark & Zeppelin을 활용한 한국어 텍스트 분류Spark & Zeppelin을 활용한 한국어 텍스트 분류
Spark & Zeppelin을 활용한 한국어 텍스트 분류
 
[232] 수퍼컴퓨팅과 데이터 어낼리틱스
[232] 수퍼컴퓨팅과 데이터 어낼리틱스[232] 수퍼컴퓨팅과 데이터 어낼리틱스
[232] 수퍼컴퓨팅과 데이터 어낼리틱스
 
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
 
Openface
OpenfaceOpenface
Openface
 
TenforFlow Internals
TenforFlow InternalsTenforFlow Internals
TenforFlow Internals
 
Deep learning framework 제작
Deep learning framework 제작Deep learning framework 제작
Deep learning framework 제작
 
[241] Storm과 Elasticsearch를 활용한 로깅 플랫폼의 실시간 알람 시스템 구현
[241] Storm과 Elasticsearch를 활용한 로깅 플랫폼의 실시간 알람 시스템 구현[241] Storm과 Elasticsearch를 활용한 로깅 플랫폼의 실시간 알람 시스템 구현
[241] Storm과 Elasticsearch를 활용한 로깅 플랫폼의 실시간 알람 시스템 구현
 
What is spark
What is sparkWhat is spark
What is spark
 
Zeppelin notebook 만들기
Zeppelin notebook 만들기Zeppelin notebook 만들기
Zeppelin notebook 만들기
 
[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅
 
[244] 분산 환경에서 스트림과 배치 처리 통합 모델
[244] 분산 환경에서 스트림과 배치 처리 통합 모델[244] 분산 환경에서 스트림과 배치 처리 통합 모델
[244] 분산 환경에서 스트림과 배치 처리 통합 모델
 
Spark machine learning & deep learning
Spark machine learning & deep learningSpark machine learning & deep learning
Spark machine learning & deep learning
 

Semelhante a Deep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & Spark

[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
 
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기Wonha Ryu
 
LDA : latent Dirichlet Allocation (Fairies NLP Series) - Korean Ver.
LDA : latent Dirichlet Allocation (Fairies NLP Series) - Korean Ver.LDA : latent Dirichlet Allocation (Fairies NLP Series) - Korean Ver.
LDA : latent Dirichlet Allocation (Fairies NLP Series) - Korean Ver.Adonis Han
 
[246] foursquare데이터라이프사이클 설현준
[246] foursquare데이터라이프사이클 설현준[246] foursquare데이터라이프사이클 설현준
[246] foursquare데이터라이프사이클 설현준NAVER D2
 
2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)
2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)
2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)khuhacker
 
소프트웨어 2.0을 활용한 게임 어뷰징 검출
소프트웨어 2.0을 활용한 게임 어뷰징 검출소프트웨어 2.0을 활용한 게임 어뷰징 검출
소프트웨어 2.0을 활용한 게임 어뷰징 검출정주 김
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019devCAT Studio, NEXON
 
Python & Spark
Python & SparkPython & Spark
Python & Sparkitproman35
 
딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투Ubuntu Korea Community
 
FullStack 개발자 만들기 과정 소개 (Android + MEAN Stack + Redis 다루기)
FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기) FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)
FullStack 개발자 만들기 과정 소개 (Android + MEAN Stack + Redis 다루기) YoungSu Son
 
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기AWSKRUG - AWS한국사용자모임
 
[스마트스터디]MongoDB 의 역습
[스마트스터디]MongoDB 의 역습[스마트스터디]MongoDB 의 역습
[스마트스터디]MongoDB 의 역습smartstudy_official
 
Layout lm paper review
Layout lm paper review Layout lm paper review
Layout lm paper review taeseon ryu
 
서울 하둡 사용자 모임 발표자료
서울 하둡 사용자 모임 발표자료서울 하둡 사용자 모임 발표자료
서울 하둡 사용자 모임 발표자료Teddy Choi
 
예비 개발자를 위한 소프트웨어 세상 이야기
예비 개발자를 위한 소프트웨어 세상 이야기예비 개발자를 위한 소프트웨어 세상 이야기
예비 개발자를 위한 소프트웨어 세상 이야기수보 김
 
De text a deep text ranking framework with bert
De text  a deep text ranking framework with bertDe text  a deep text ranking framework with bert
De text a deep text ranking framework with berttaeseon ryu
 
게임을 위한 최적의 AWS DB 서비스 선정 퀘스트 깨기::최유정::AWS Summit Seoul 2018
게임을 위한 최적의 AWS DB 서비스 선정 퀘스트 깨기::최유정::AWS Summit Seoul 2018 게임을 위한 최적의 AWS DB 서비스 선정 퀘스트 깨기::최유정::AWS Summit Seoul 2018
게임을 위한 최적의 AWS DB 서비스 선정 퀘스트 깨기::최유정::AWS Summit Seoul 2018 Amazon Web Services Korea
 
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106SangHoon Lee
 
Anomaly detection practive_using_deep_learning
Anomaly detection practive_using_deep_learningAnomaly detection practive_using_deep_learning
Anomaly detection practive_using_deep_learning도형 임
 
좋은 개발자 되기
좋은 개발자 되기좋은 개발자 되기
좋은 개발자 되기Sunghyouk Bae
 

Semelhante a Deep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & Spark (20)

[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처
[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처
[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처
 
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
NDC 2016, [슈판워] 맨땅에서 데이터 분석 시스템 만들어나가기
 
LDA : latent Dirichlet Allocation (Fairies NLP Series) - Korean Ver.
LDA : latent Dirichlet Allocation (Fairies NLP Series) - Korean Ver.LDA : latent Dirichlet Allocation (Fairies NLP Series) - Korean Ver.
LDA : latent Dirichlet Allocation (Fairies NLP Series) - Korean Ver.
 
[246] foursquare데이터라이프사이클 설현준
[246] foursquare데이터라이프사이클 설현준[246] foursquare데이터라이프사이클 설현준
[246] foursquare데이터라이프사이클 설현준
 
2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)
2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)
2015년 제2회 동아리 해커 세미나 - 게임개발과 게임에서의 빅데이터 (9기 박경재)
 
소프트웨어 2.0을 활용한 게임 어뷰징 검출
소프트웨어 2.0을 활용한 게임 어뷰징 검출소프트웨어 2.0을 활용한 게임 어뷰징 검출
소프트웨어 2.0을 활용한 게임 어뷰징 검출
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
 
Python & Spark
Python & SparkPython & Spark
Python & Spark
 
딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투딥러닝 세계에 입문하기 위반 분투
딥러닝 세계에 입문하기 위반 분투
 
FullStack 개발자 만들기 과정 소개 (Android + MEAN Stack + Redis 다루기)
FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기) FullStack 개발자 만들기 과정 소개  (Android + MEAN Stack + Redis 다루기)
FullStack 개발자 만들기 과정 소개 (Android + MEAN Stack + Redis 다루기)
 
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
Spark + S3 + R3를 이용한 데이터 분석 시스템 만들기
 
[스마트스터디]MongoDB 의 역습
[스마트스터디]MongoDB 의 역습[스마트스터디]MongoDB 의 역습
[스마트스터디]MongoDB 의 역습
 
Layout lm paper review
Layout lm paper review Layout lm paper review
Layout lm paper review
 
서울 하둡 사용자 모임 발표자료
서울 하둡 사용자 모임 발표자료서울 하둡 사용자 모임 발표자료
서울 하둡 사용자 모임 발표자료
 
예비 개발자를 위한 소프트웨어 세상 이야기
예비 개발자를 위한 소프트웨어 세상 이야기예비 개발자를 위한 소프트웨어 세상 이야기
예비 개발자를 위한 소프트웨어 세상 이야기
 
De text a deep text ranking framework with bert
De text  a deep text ranking framework with bertDe text  a deep text ranking framework with bert
De text a deep text ranking framework with bert
 
게임을 위한 최적의 AWS DB 서비스 선정 퀘스트 깨기::최유정::AWS Summit Seoul 2018
게임을 위한 최적의 AWS DB 서비스 선정 퀘스트 깨기::최유정::AWS Summit Seoul 2018 게임을 위한 최적의 AWS DB 서비스 선정 퀘스트 깨기::최유정::AWS Summit Seoul 2018
게임을 위한 최적의 AWS DB 서비스 선정 퀘스트 깨기::최유정::AWS Summit Seoul 2018
 
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
Spark overview 이상훈(SK C&C)_스파크 사용자 모임_20141106
 
Anomaly detection practive_using_deep_learning
Anomaly detection practive_using_deep_learningAnomaly detection practive_using_deep_learning
Anomaly detection practive_using_deep_learning
 
좋은 개발자 되기
좋은 개발자 되기좋은 개발자 되기
좋은 개발자 되기
 

Deep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & Spark

  • 1. Spark Day 2017 Deep Learning Text NLP with Spark Collaboration 스사모(Spark Korea User Group) SSG.COM BigData Team 김훈동
  • 2. Who am I ? • 김훈동 • 스사모(Korea Spark User Group) • 신세계 그룹 온라인 포털 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 … • Buzzword( AI, ML, DL … ) • 챗봇 & Text NLP … • Deep Learning NLP • 다양한 알고리즘. • 성능 • 구현 Code 및 결과 Review • Pain Point • Spark Collaboration for Deep Learning • 결론
  • 5. Buzzword Machine Learning에 대하여… • 블랙박스 접근 vs 룰기반
  • 6. Buzzword Deep Learning 에 대하여…
  • 7. Buzzword 챗봇에 대하여 Closed Domain Chatbot vs Open Domain Chatbot Retrieval Based Model vs Generative Model Easy Hard 한정된 도메인. 특정 분야. Pre-defined Response 때로는 Rule Base 때로는 Text Classification 도메인 및 의도 한정 없음. 열린 분야. 질문에 따라 답변 생성 학습하지 못한 질문에 대하여도 적절한 답변 생성 및 창조
  • 8. Machine Learning vs Deep Learning • 보다 긴 역사를 가지고 있다. • 많은 구현체, 검증된 방법론들이 있다. • 보다 다양한 요건에 대한 방법론이 존 재한다. • 작은 데이터로 빠른 성능에 도달하기 도 한다. [장점] [단점] • 특정 분야에서는 Deep Learning 보다 정확도가 많이 떨어진다. • Feature selection , 검증 등에 있어, Deep Learning 의 end to end 방식에 비하여 손이 많이 가고, feature 가 매 우 많을 때에는 현실적이지 않을 수 있 다. • 특정 분야에 있어서는 Dramatic한 성 능 향상을 꽤 할 수 있다. • Feature Selection 등에 큰 공을 들이지 않더라도, 모델이 end to end 로 학습 하고 선별하는 경우가 많다. • 상당히 많은 Label 데이터가 필요 할 때가 많다. • 작은 양의 데이터로는 Under fit 되는 경우가 ML의 경우보다 더 많다. • GPU 및 BigData Scale Computing 환 경 등, 고사양의 Compute 자원을 필요 로 한다.
  • 9. 개발자 입장에서 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
  • 10.
  • 11. Machine Learning vs Deep Learning Sentimental Analysis for 한글 1. Naïve Bayes 2. Word2Vec + CNN 한글문장 긍부정 Sentimental 분류 Naïve Bayes 83.2% Word2Vec + CNN 85.4% - 긍부정 정확도 Score 출처. (by 송치성(바벨피쉬)) 작은 크기 데이터. 긍 부정 등 쉬운 분류 문제에서는 Machine Learning 도 매우 정확하고, 훨씬 Training 이 빠름!
  • 12. Machine Learning vs Deep Learning Sentimental Analysis for 한글 1. Multinomial Naïve Bayes 2. Count Vector + SVM 3. TF-IDF + SVM 4. Word2Vec + CNN 한글문장 138지 분류 (1:1고객응대 Data) Multinomial Naïve Bayes 32.31% Count Vector + SVM 17.28% TF-IDF + SVM 51.21% Word2Vec + CNN 59.00% - 사용데이타 SSG.COM 1:1 고객응대 CS Data, 138지 분류 문제 (Top 1 맞추기) - Training Data : 1,649,415건 데이터 충분히 많은 경우. 좀 어려운 다지 분류 문제로 가보자.
  • 13. Deep Learning Text Classification Deep Dive for 한글 1. Word2Vec + CNN (Batch Normalize + Augmentation) 2. Word2Vec + LSTM 3. Word2Vec + CNN + LSTM 4. Word2Vec + Bidirectional GRU 5. Word2Vec + Bidirectional GRU + Attention Network 6. FastText 7. Glove + LSTM - 사용데이타 SSG.COM 1:1 고객응대 CS Data – 고객 라벨링
  • 14. Deep Learning Text Classification Deep Dive for 한글 1. Word2Vec + CNN (Batch Normalize + Augmentation) 2. Word2Vec + LSTM 3. Word2Vec + CNN + LSTM 4. Word2Vec + Bidirectional GRU 5. Word2Vec + Bidirectional GRU + Attention Network 6. FastText 7. Glove + LSTM (Tensorflow GPU vs BigDL on Spark Cluster) - 사용데이타 : SSG.COM 1:1 고객응대 CS Data 총 31지 분류 (top 1 맞추기) – 고객 라벨링 - Training Data : 1,649,415건 72.30% 73.94% 72.97% 74.36% 73.15% 72.50% ...ing
  • 17. Training 속도에 대하여 • Best Score is Word2Vec + Bidirectional GRU • Tesla M40 GPU • Training Data 165만 건 • Learning Rate 0.0005 • 5 Epoch 에 50000초 = 833분 = 약 14시간
  • 18. Deep Learning Hyper Parameter Optimization
  • 19. Deep Learning Hyper Parameter Optimization
  • 20. Deep Learning Text NLP – Pain Point 1. 검증된 알고리즘 코딩시간 < 해당 알고리즘에 Data 를 태우기 까지의 전처리 (of course 재활용 가능) < Hyper Parameter Optimization 2. Data 전처리, Pandas, Numpy ? One Single Core for 수백 기가 이상 데이터?? 3. GPU 의 small memory, GPU 머신 수 부족. 4. GPU 를 이용한 병렬 Deep Learning 코딩 은 흡사 초기 Map/Reduce 코딩 유사 5. 수백 기가 이상 데이터에 대한 Deep Learning? 6. 반복, 반복, 반복, parameter 바꾸고 또 반복….
  • 22. Spark Deep Learning Deep Dive • Keras + Tensorflow + Spark : elephas
  • 23. Jupyter on Spark + Hadoop Cluster
  • 24. BigDL Deep Learning Job on Hadoop Yarn Manager (by Spark Job)
  • 25. BigDL Deep Learning Text Classification
  • 26. BigDL Deep Learning Job on Hadoop Yarn Manager (by Spark Job)
  • 27. BigDL Deep Learning Text Classification
  • 28. Spark & Deep Learning • BigDL 예
  • 29. Spark & Deep Learning • BigDL Magic Button https://software.intel.com/en-us/articles/deploying-bigdl-on-azure-data-science-vm
  • 32. Spark & Deep Learning • Deep Water 의 예
  • 33. 기타. • 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 코드 베이스로 흡수??
  • 35. Conclusion • Deep Learning 이 은총알은 아니지만… • 특정 분야에 성능에 있어 퀀텀 점프 된 성능을 보이는 것은 사실.. • 다양한 도구와 툴이 생겨나면서 진입장벽도 낮아지고 있음. • 개발자가 유리한 부분이 많음. (최소한의 이론 습득이 갖추어 져 있 다면.) • 현재의 상황을 보면, 좀더 Deep Learning 이 보급되고 보편화 될것 으로 보임. • Pain Point 를 통해 예측컨데, 다시 Spark 가 힘을 받을 수 있는 환 경이 갖추어 지고 있음.