Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처

367 visualizaciones

Publicado el

BigData Scale 그리고 실시간 Lambda 아키텍처 등을 가미한 Production AI 서비스의 최상의 플랫폼을 고민해본다. 최적의 개발환경 및 개발도구들을 제시하고, Bigdata Scale AI 서비스를 위한 고려점들 및 Use Case를 공유한다.

Publicado en: Datos y análisis
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

[AI & DevOps] BigData Scale Production AI 서비스를 위한 최상의 플랫폼 아키텍처

  1. 1. 신 세 계 그 룹 S S G . C O M B i g D a t a & A I P a r t L e a d e r H o o n D o n g , K i m A I M V P 개발과 개발자를 위한 최상의 플랫폼 부제: AI Production 서비스를 위한 개발 도구 및 플랫폼
  2. 2. • 김훈동 Chief Partner • 신세계 그룹 온라인 포털 SSG.COM BigData&AI Part Leader • 스사모(Korea Spark User Group) 운영진 • BigData 분야 Microsoft MVP(Most Valuable Professional) 선정 2016년, 2017년 • AI 분야 Microsoft MVP(Most Valuable Professional) 선정 2018년 • http://hoondongkim.blogspot.kr [블로그] • https://www.facebook.com/kim.hoondong [SNS] I am …
  3. 3. 진화의 시작! AI 시대의 발현! - BigData 기술 등장 (2003~2010년대) - NoSQL 기술 등장 (2007~2013년대) - Container & Microservice 기술 등장 (2014년대~) - Deep Learning 고도화 기술 등장 (2015년대~) • IaaS • SaaS • PaaS • Serverless / BaaS Cloud 태동! 그리고… 위 기술들의 융합
  4. 4. 글로벌 선두권 들은 어떻게 활용하고 있나??!! Cutting-Edge Technology
  5. 5. [Alibaba] BigData Scale AI + Realtime + Personalization…
  6. 6. [Alibaba] Reinforcement Learning to Rank in E-Commerce Search Engine • By Alibaba & Taobao • https://arxiv.org/abs/1803.00710 실시간성… 개인화… Training & Serving 이 동시에…
  7. 7. [Netflix] Realtime Recommendation (원순환구조) ML/DL 의 기저에 BigData Lambda Architecture 가 존재. 실시간성… 개인화… On Lambda Architecture 왜 Netflix 는 100만 달러 Competition 에서 우승한 알고리즘을 사용하지 않는가?
  8. 8. First Mover 들이 달성한 아키텍처를 Open Source 로 Fast Follow 하기 위한 아키텍처… Open Source Cluster System 30여개???? + Lambda Architecture Batch 원순환! realtime 원순환! 저걸 우리도 다 구축해야 하나?
  9. 9. [Netflix] Realtime Recommendation (원순환구조+Cloud 활용) 실시간성… 개인화… On Public Cloud ( with Hybrid )
  10. 10. Fast Follow 해보기 전에… 그러한 아키텍처, 그러한 고도화 기술들이 , 나오게 된 배경 Microservice, Serverless, Cloud, PaaS, BaaS, DevOps … BigData PaaS, NoSQL PaaS … Machine Learning & Deep Learning … Realtime Lambda Architecture … Cutting-Edge Technology
  11. 11. 국내 상위 쇼핑몰 정도 트래픽, 요즘 트랜디한 개인화 추천 정도 하려고 해도… • RDBMS -> 현존 최고 HW 로 Oracle 5 Node 로도… • MariaDB 샤딩 시스템. 수천대. Select 부하분산. • 큰 테이블 Data 는? Insert & Update 는? • NoSQL + RDBMS 샤딩(R) + RDBMS Master for (CUD) + Kafka (Message Queue for Data Sync) • 복잡한 RDBMS 로직 SQL => NoSQL 로 마이그레이션 불가??? • NoSQL + RDBMS 샤딩(R) + RDBMS Master for (CUD) + Kafka (Message Queue for Data Sync) + Redis(Memory Cache) + MicroService (Scale Out WAS for 복잡한 Business Logic 의 Application layer 처리 ) + Machine Learning/Deep Learning Training/Serving Layer Auto Scale Out Infra 구성 (예, Tensorflow,CNTK Serving PaaS 혹은 flask Serverless Microservice) + 기타(Docker, K8S, DevOps…) 1세대 2세대 3세대 4세대
  12. 12. 국내 상위 쇼핑몰 정도 트래픽, 요즘 트랜디한 개인화 추천 정도 하려고 해도… • 더 이상 Data Analytics 자체는 경쟁력이 아니다. • 더 이상 Machine Learning 자체는 진입 장벽이 아니다. • Deep Learning 은 아직까지는 경쟁력이나, 점점 툴이 막강해지고, 쉬워지고 있다. • BigData Scale Machine Learning 도 경쟁력이다. (최신성 + Big Scale + 개인화) • 더 더 어려운 문제는 Advanced Analytics 의 결과물을 개인화 하여 노출하고, 그 반응을 다시 실시간으로 모델에 리턴 하여, 그로부터 즉각적인 원순환 시스템을 만든 것 이다. (예, 고객 실시간 검색 히스토리, 클릭 스트림 에 반응하는 Dynamic 한 개인화 추천. 개인화 된 Dynamic Pricing 모델, Enterprise Full Stack Chatbot 등) • Machine Learning / Deep Learning 시스템에 있어서 Serving Layer 의 중요성 BigData + MicroService + DevOps + Auto Scale Out Training + Auto Scale Out Serving 은 Best Production AI 를 위한, 선택이 아닌 필수
  13. 13. Best Production AI [1]~[4] 각 레이어의 관계는? • [1] RDB Sharding, Web, App, Front Tech… 는 기본 중에 기본. • [2] BigData, NoSQL, Microservice, Analytics 는? • [3] AI(Machine Learning, Deep Learning) Training 은? • [4] AI Serving 은? 실시간 AI 서비스는? 각각 경쟁관계가 아님. 상호 보완 관계. [1] RDB, Web, App, AI Front [2] BigData, NoSQL Microservice, Analytics [3] AI Training BigData NoSQL/Spark NoSQL/ Spark Streaming/ Microservice/ RDB Sharding [4] AI Serving 고로, 종합 예술이다! Engineering Art 다!
  14. 14. Cutting-Edge Technology 로 좀더 Drill Down [2] BigData & NoSQL & Lambda Architecture ( Spark, Hadoop, Kafka, Nifi, Cassandra, Redis, ELK, etc…) [3] AI > Machine Learning > Deep Learning (Tensorflow, MXNet, Keras, CNTK, BigDL, Horovod, etc…) [4] Cloud, DevOps(CI/CD), Realtime Serving (Docker, Kubernetes, Microservice, Severless, PaaS/BaaS, etc…) • [2]를 만난 [3] 에 대하여, • [3]을 보완하는 [4]에 대하여, • [4] 의 즉각적인 서비스 결과 및 개별 반응이, 다시 [1][2] 로…
  15. 15. 그렇다면… 이를 어떻게 구현 할 것인가? Production AI on Cutting-Edge Technology
  16. 16. 각각의 관계를 도식으로 표현해보자. Docker, Kubernetes, Microservice… Serverless, DevOps, Auto-Scale-Out, CI/CD … NoSQL, Streaming, Real-time AI Serving Cloud / PaaS /BaaS / SaaS / Serverless Cloud / PaaS /BaaS / SaaS / Serverless
  17. 17. Open Source 진영에서는 어떻게??? Production AI with Cutting-Edge Technology
  18. 18. Training => Inference => reacting Log => 다시 Training Horovod, etc… TensorflowOnSpark, BigDL etc…
  19. 19. MLFlow (원순환구조) By databricks 자료출처 : Spark + AI Summit 2018 • Goal https://github.com/mlflow/mlflow/
  20. 20. MLFlow (원순환구조) By databricks 자료출처 : Spark + AI Summit 2018 https://github.com/mlflow/mlflow/
  21. 21. BigData진영 대표주자 Spark의 진화 => BigData 에서 BigData + AI 로… Spark Summit 2017 에서도 이미…
  22. 22. Public Cloud 와의 Collaboration! Production AI & Cutting-Edge Technology On Azure
  23. 23. Training => Inference => reacting Log => 다시 Training Azure Batch AI Horovod => (Keras, Tenosrflow, CNTK) , etc… Databricks on Azure TensorflowOnSpark, BigDL etc…
  24. 24. Project Hydrogen By databricks On Azure
  25. 25. Project Hydrogen By databricks On Azure
  26. 26. Apache Spark + HDInsight IO Cache On Azure ( For 9X speed up ) Azure HDInsight IO Cache is available on Azure HDInsight 3.6 and 4.0 Spark clusters on the latest version of Apache Spark 2.3.
  27. 27. 우리는 어떻게 하고 있나? SSG.COM Use Case! Production AI & Cutting-Edge Technology On Azure
  28. 28. SSG 2.59조. 흑자전환성공(2018년) 쿠팡 2016 년 1.9조 , 5600억 적자. Our Volume … (SSG.COM)
  29. 29. 우리가 했던, Engineering Art 들… For BigData & NoSQL & Distributed AI Training 5~6 년 전 부터 …
  30. 30. 우리가 했던, Engineering Art 들… For Realtime Analytics & Lambda Architecture 3~4 년 전 부터 …
  31. 31. BigDL & TensorflowOnSpark On On-Premise Spark Cluster 2~3 년 전 부터 …
  32. 32. Horovod By Uber On Azure Batch AI 1 년 전 부터 …
  33. 33. 우리는(SSG.COM) 어떻게 했는가? • 과거를 분석 한다. (BigData Eco System Infra) • 트래킹 로그를 남긴다. • 빅데이타 수집 저장 분석을 위한 인프라를 만든다. • 빅데이타 배치로 과거 시계열 분석을 하고 시각화를 한다. • 현재에 반응 한다. (RealTime Layer / kafka , Spark Streaming / ELK) • 실시간으로 데이터 스트림을 분석한다. • FDS, 보안관제, 모니터링 등 즉각적으로 현재 상황에 대처하여 현재를 능동적으로 대비한다. • 미래를 예측 한다. (Mining / Machine Learning / Deep Learning R&D) • 고객이 관심 갖고 있고 곧 살 것 같은 것을 추천한다. • 미래에 집행할 광고 및 제휴 채널 예산을 보다 ROI 높게 배분한다. • 발주를 예측한다. • 최적의 트럭 경로를 예측한다. • 가격을 올릴지 말지 얼마나 세일할지 최적의 가격을 예측한다. • 미래 예측을 고도화 한다. (Machine Learning / Deep Learning Production) • Chatbot • 자연어 활용, 이미지 활용 -> 검색 및 추천 고도화 • NLP , Item2Vec, etc… • 미래 예측에 개인화 및 실시간성을 더한다. (BigData Scale Deep Learning) • 다중 접속자를 위한 개인화 Deep Learning 서비스. • BigData Scale Training , BigData Scale Inference. • Auto Scale Out 모델 배포, 무중지 Deep Learning 모델의 진화 및 원순환 배포. • 기존 Machine Learning , Deep Learning 모델의 freshness , personalization 고도화. 5~6년 전 3~5년 전 1~2년 전 2~3년 전 요즘 순서가 있고, 단계가 있고, 아랫 기술은 윗 기술로부터 시너지가 나더라….
  34. 34. Finally, We made BigData Scale AI Infra on Hybrid Cloud. Public cloud Hadoop / NoSQL Spark / Anaconda Spark ML Mahout Sk-learn/gensim Tensorflow/CNTK TensorflowOnSpark Kera s On-Premise Spark On-premise Serverless / K8S PaaSServerless PaaS & AI Infra Microservices Web/Was Docker / BaaS 각종 PaaS AI BaaS/SaaS PaaS App Container PaaS GPU Container ML/DL PaaS & BigData Lake PaaS & GPU Notebooks 4~5년 전 2~3년 전 최근 최근의 아키텍처 …
  35. 35. Auto Scale Out & Auto Scale Down 무중지 배포 SSG.COM Use Case! Production AI & Cutting-Edge Technology On Azure
  36. 36. Deep Learning Dev Infra On VM (for Dev/QA)
  37. 37. Auto Scale Out / 무중지 배포 Deep Learning Training & Serving On Serverless FaaS/BaaS/PaaS (Zero VM) (for Production) Azure Web App For Linux Docker Team Service
  38. 38. 100% Serverless PaaS + BaaS(Docker) + FaaS Production AI Performance! SSG.COM Use Case! Production AI & Cutting-Edge Technology On Azure
  39. 39. Keras Scale Up vs. Horovod Scale Out On Azure Batch AI(GPU) Performance Comparison. My Blog : http://hoondongkim.blogspot.kr/2018/01/deep-learning-multi-host-multi-gpu_11.html On Azure Batch AI (GPU)
  40. 40. Deep Learning Online Inference Load Test CPU vs GPU (1 time Inference. BatchSize=1) My Blog : http://hoondongkim.blogspot.kr/2017/12/deep-learning-inference-serving.html CPU Serving : 1 Machine 265 TPS GPU Serving : 1 Machine 16 TPS CPU 1000 Times Serial Execution GPU 1000 Times Serial Execution Load Test Result! On Azure DSVM (GPU) 병렬성이 약한 LSTM 예
  41. 41. Deep Learning Inference Performance! (On Docker Microservice) 성능에 대하여 … My Blog : http://hoondongkim.blogspot.kr/2017/12/deep-learning-inference-serving.html • Azure Data Science VM Performance • Azure Web App for Linux Docker Performance • Auto Scale Out Features [Quiz] What are the **** ?
  42. 42. BigData Scale AI & Data Science Polyglot 중요성 SSG.COM Use Case! Production AI & Cutting-Edge Technology On Azure
  43. 43. SSG.COM Distributed R on Spark 1 Machine on MS-SQL Server 7 Machine on Spark Cluster Y축 : Elapsed Time 낮을 수록 성능 좋음. 8Core – 65GB Memory. 7 Machine. Polyglot! BigData Scale R
  44. 44. SSG.COM Python Machine Learning on Spark Polyglot! BigData Scale Python
  45. 45. Jupyter on Azure DSVM SSG.COM Jupyter Notebook 도 BigData Scale 로 Jupyter on Azure Notebooks Polyglot! BigData Scale Jupyter Notebook
  46. 46. SSG.COM BigDL GPU Memory Resource 가 문제될 때는 BigData Scale Large Cluster Parallel Deep Learning Approach with BigDL • BigDL Deep Learning Job on Hadoop Yarn Manager (by Spark Job) Polyglot! BigData Scale Scala Deep Learning
  47. 47. SSG.COM BigDL GPU Memory Resource 가 문제될 때는 BigData Scale Large Cluster Parallel Deep Learning Approach with BigDL • BigDL Deep Learning Text Classification Polyglot! BigData Scale Scala Deep Learning BigDL Deep Learning은 Memory Resouce 를 BigData Scale 로 확장 가능.
  48. 48. SSG.COM TensorflowOnSpark Tensorflow 의 Legacy Code를 활용한 BigData Scale Deep Learning은? • TensorflowOnSpark 수행 결과 Polyglot! BigData Scale Python + Tensorflow Deep Learning
  49. 49. SSG.COM Tensorflow + CNTK + Keras + Horovod + Azure Batch AI Tensorflow(or CNTK) + Keras + Horovod + Azure Batch AI => Multi GPU + Multi Host , Distributed Deep Learning Training My Blog : http://hoondongkim.blogspot.kr/2018/01/deep-learning-multi-host-multi-gpu.html
  50. 50. SSG.COM Tensorflow + CNTK + Keras + Horovod + Azure Batch AI Tensorflow(or CNTK) + Keras + Horovod + Azure Batch AI => Multi GPU + Multi Host , Distributed Deep Learning Training My Blog : http://hoondongkim.blogspot.kr/2018/01/deep-learning-multi-host-multi-gpu.html Polyglot! BigData Scale Python + Tensorflow + CNTK + Keras + Horovod Muti Host, Muti GPU, Distributed Deep Learning (Auto Scale Out & Scheduling Batch Process) On Azure Batch AI
  51. 51. SSG.COM 라이브러리나 패키지가 없을 때는 직접 구현… 복잡한 알고리즘의 고성능(Python 은 느려서…) 구현은 Java 가 좀 쉽긴 함. But, 병렬성을 고려한 처리는 Java 로 구현 하는것에 한계. 병렬성, 고성능을 위해서는 Scala + Spark RDD 로… Polyglot! BigData Scale Java(algorithm) + Scala(RDD) + On Spark (Distributed In-memory) Algorithm Internal 은 Java RDD Map Looping 은 Scala
  52. 52. SSG.COM 라이브러리나 패키지가 없을 때는 직접 구현… 복잡한 알고리즘의 고성능(Python 은 느려서…) 구현은 Java 가 좀 쉽긴 함. But, 병렬성을 고려한 처리는 Java 로 구현 하는것에 한계. 병렬성, 고성능을 위해서는 Scala + Spark RDD 로… One Source, Multiple Language. 이건 Java, 나머지는 Scala… Language 섞어 쓰기 신공… Polyglot! BigData Scale Java(algorithm) + Scala(RDD) + On Spark (Distributed In-memory)
  53. 53. SSG.COM C# Azure Function 의외로… Microservice & Serverless 에서 장점이 많은 C# • Java Serverless 는 • Java Library 하위호환성 취약성으로 확장성 결여. • Python Serverless 는 • 낮은 성능 퍼포먼스. • 비동기, 쓰레드 취약. • docker 확장 배포 시 pip install. 이 과정에서 Java python 패키지나 일부 C Python 패키지는 설치 Dependency 문제 발생. (예, Jpype 패키지, OS Dependency, Driver Dependency) • Node.js Serverless 는 • 낮은 성능 퍼포먼스. • C# Serverless 는 • 높은 성능 퍼포먼스. • 비동기 강점. • 강한 하위호환성. • Library 호환성. • DLL 패키징을 통한 배포 확장 용이 Polyglot! BigData Scale Serverless + Microservice + CI/CD + C# Azure Function!
  54. 54. 요즘 Cutting-Edge 기술들이 나오게 된 배경 Microservice, Serverless, Cloud, PaaS, BaaS, DevOps … BigData PaaS, NoSQL PaaS … Machine Learning & Deep Learning … Realtime Lambda Architecture … For Better Production AI … 결국, AI 시대의 발현과 무관하지 않았음! 결론
  55. 55. AI시대에 임하는 Developer 에게…
  56. 56. 집단 지성의 힘! 검증된 것들을 MashUp! 핵심경쟁력이 아닌 것은 빠르게 하는 것이 더 좋음…. (Over Engineering 방지) (Open Source + Cloud PaaS) 요즘 가장 Hot 한 Develop 방식들이 추구하는 것들… • No-Ops(or Dev Ops, Agile, Serverless, Microservices… 이게 목적이 되면 안됨. 수단일 뿐.) • Scale(유연한 Scale Out, Scale Down, 유연성, 확장성) • Low Cost(개인화와 최신성, 최신 기법 적용을 위해 필수적 요소) • Performance (동접 성능, 모델 성능, 개발생산성) 다 직접 개발하는 것이 능사는 아니다!
  57. 57. Low Cost & Agile & Serverless 접근 방법에 대하여 1 Docker , 1시간에 얼마? 1달에 얼마? 1,000,000 Transaction 에 얼마??? 이 단계로 포팅하려면, Deep Learning Output 그래프 노드 값을 Graph DB 화 하거나, Hash DB 등 으로 inverted-Index 화 해야 하며, 고 난이도의 Engineering 작업이 수반 됨. 딥러닝 모델러는 Graph DB, Microservice 를 모르고…, NoSQL 개발자는 딥러닝을 모르고… GPU VM > CPU VM > GPU Docker > CPU Docker > K8S PaaS > Docker PaaS > Docker BaaS > ML BaaS > Serverless Microservice GPU on-premise 1 GPU VM , 1 달에 얼마? 이 단계로 되면, 알리바바 Scale의 Front AI 서비스가 매우 빠르고 매우 저렴하게 적용 가능. Deep Learning Framework 자체는 여기 까지만 구동 가능 Production AI 는 모델링 보다 Engineering 이 더 어렵다. Production AI 는 Engineering Art 에 가깝다. Cloud 를 잘 활용한다면, 개발자가 유리한 부분이 많다!
  58. 58. AI시대에 임하는 BigData Engineer 에게…
  59. 59. Production A/B Test 에서 중요한 것! Sample Data, Selected Feature 정교한 모델 주1회 or 일1회 모두에게 적용하는 정교한 단일 모델 최고 정확도 VS 더 많은 Data(or 전수 Data)에 적용하는 Simple 모델 최신성 (매 시간 or 준실시간) 개인화 모델 덜 정확해도 빠르고, 다수에게, 실시간으로… 논문 쓸 때랑, Kaggle 할 때와 달라요!
  60. 60. SSG.COM ***예측(회귀) 모델 (By BigData + AI) Item Average Accuracy 68% 90% 49% 38% Regression / Python Decision Tree / Python 초기방 식 / 15일 컬럼 4개 사용 / 15일 컬럼 6개 사용 / 15일 Random forest / Python 컬럼 6개 사용 / 15 일 Time Series Deep Learning + TensorflowOnSpark 컬럼 26개 사용 / 3년 Random forest /Spark ML 컬럼 6개 사용 / 3년 Rule Python BigData + ML XGBoost / Python 컬럼 6개 사용 / 15 일 3년 데이터. Incremental Continuous Learning. Time Series Deep Learning Tensorflow + Spark (Scale Out) Single Host + DL BigData + DL 컬럼 26개 사용 / 15일 Time Series Deep Learning / Tensorlfow Data 크기 /병렬성 Data 크기 /병렬성 For 최신성 Locally Weighted Regression
  61. 61. AI시대에 임하는 Manager, Leader 에게…
  62. 62. AI 시대에 리더가 임하는 자세! • Think Big. • 길게 보고 Plan을 세우자. • 당장의 효과에 연연하지 말자. • Bottom Up! ( Not Top Down! ) • 유행에 편승해서, 혹은 윗 분들의 지시에 의해서가 아닌, • 실무자(Self Motivated 된)들에 의해 기획,개발 하고, • 내부 내재화를 고려하며 지속적 고도화 하도록 하자. • 작게 그리고 빠르게 시작하자. • 데이터를 빨리 쌓는게 더 중요. • 모델이 진입장벽이 아니라, 데이터가 더 진입 장벽.( Bigdata Infra 중요) • Mashup 하고, 결합 Merge 하고, 반복 개선 시키자. 그럼 Top 에서 할 일은? • Motivation. 동기부여. • 환경조성. • 방향성 부여. • Self Motivated 된 직원들에게 길을 열어주는 것. • 강요가 아닌 마음을 움직이는 것이 필요. 때로는 내재화보다, 기민함이 더 중요할 수 있으며, Cloud PaaS 는 이 경우 Key Factor 가 될 수 있음.
  63. 63. Thank You • 기타 문의는… • http://hoondongkim.blogspot.kr • https://www.facebook.com/kim.hoondong Q & A 4층 로비 왼편 안쪽 MVP 부스(Ask the Expert 부스)

×