본문 바로가기
IT 둘러보기

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

by 날고싶은커피향 2023. 11. 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. • 김훈동 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. 진화의 시작! AI 시대의 발현! - BigData 기술 등장 (2003~2010년대) - NoSQL 기술 등장 (2007~2013년대) - Container & Microservice 기술 등장 (2014년대~) - Deep Learning 고도화 기술 등장 (2015년대~) • IaaS • SaaS • PaaS • Serverless / BaaS Cloud 태동! 그리고… 위 기술들의 융합
  • 4. 글로벌 선두권 들은 어떻게 활용하고 있나??!! Cutting-Edge Technology
  • 5. [Alibaba] BigData Scale AI + Realtime + Personalization…
  • 6. [Alibaba] Reinforcement Learning to Rank in E-Commerce Search Engine • By Alibaba & Taobao • https://arxiv.org/abs/1803.00710 실시간성… 개인화… Training & Serving 이 동시에…
  • 7. [Netflix] Realtime Recommendation (원순환구조) ML/DL 의 기저에 BigData Lambda Architecture 가 존재. 실시간성… 개인화… On Lambda Architecture 왜 Netflix 는 100만 달러 Competition 에서 우승한 알고리즘을 사용하지 않는가?
  • 8. First Mover 들이 달성한 아키텍처를 Open Source 로 Fast Follow 하기 위한 아키텍처… Open Source Cluster System 30여개???? + Lambda Architecture Batch 원순환! realtime 원순환! 저걸 우리도 다 구축해야 하나?
  • 9. [Netflix] Realtime Recommendation (원순환구조+Cloud 활용) 실시간성… 개인화… On Public Cloud ( with Hybrid )
  • 10. Fast Follow 해보기 전에… 그러한 아키텍처, 그러한 고도화 기술들이 , 나오게 된 배경 Microservice, Serverless, Cloud, PaaS, BaaS, DevOps … BigData PaaS, NoSQL PaaS … Machine Learning & Deep Learning … Realtime Lambda Architecture … Cutting-Edge Technology
  • 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. 국내 상위 쇼핑몰 정도 트래픽, 요즘 트랜디한 개인화 추천 정도 하려고 해도… • 더 이상 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. 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. 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. 그렇다면… 이를 어떻게 구현 할 것인가? Production AI on Cutting-Edge Technology
  • 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. Open Source 진영에서는 어떻게??? Production AI with Cutting-Edge Technology
  • 18. Training => Inference => reacting Log => 다시 Training Horovod, etc… TensorflowOnSpark, BigDL etc…
  • 19. MLFlow (원순환구조) By databricks 자료출처 : Spark + AI Summit 2018 • Goal https://github.com/mlflow/mlflow/
  • 20. MLFlow (원순환구조) By databricks 자료출처 : Spark + AI Summit 2018 https://github.com/mlflow/mlflow/
  • 21. BigData진영 대표주자 Spark의 진화 => BigData 에서 BigData + AI 로… Spark Summit 2017 에서도 이미…
  • 22. Public Cloud 와의 Collaboration! Production AI & Cutting-Edge Technology On Azure
  • 23. Training => Inference => reacting Log => 다시 Training Azure Batch AI Horovod => (Keras, Tenosrflow, CNTK) , etc… Databricks on Azure TensorflowOnSpark, BigDL etc…
  • 24. Project Hydrogen By databricks On Azure
  • 25. Project Hydrogen By databricks On Azure
  • 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. 우리는 어떻게 하고 있나? SSG.COM Use Case! Production AI & Cutting-Edge Technology On Azure
  • 28. SSG 2.59조. 흑자전환성공(2018년) 쿠팡 2016 년 1.9조 , 5600억 적자. Our Volume … (SSG.COM)
  • 29. 우리가 했던, Engineering Art 들… For BigData & NoSQL & Distributed AI Training 5~6 년 전 부터 …
  • 30. 우리가 했던, Engineering Art 들… For Realtime Analytics & Lambda Architecture 3~4 년 전 부터 …
  • 31. BigDL & TensorflowOnSpark On On-Premise Spark Cluster 2~3 년 전 부터 …
  • 32. Horovod By Uber On Azure Batch AI 1 년 전 부터 …
  • 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. 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년 전 최근 최근의 아키텍처 …
  • 36. Auto Scale Out & Auto Scale Down 무중지 배포 SSG.COM Use Case! Production AI & Cutting-Edge Technology On Azure
  • 37. Deep Learning Dev Infra On VM (for Dev/QA)
  • 38. Auto Scale Out / 무중지 배포 Deep Learning Training & Serving On Serverless FaaS/BaaS/PaaS (Zero VM) (for Production) Azure Web App For Linux Docker Team Service
  • 39. 100% Serverless PaaS + BaaS(Docker) + FaaS Production AI Performance! SSG.COM Use Case! Production AI & Cutting-Edge Technology On Azure
  • 40. 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)
  • 41. 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 예
  • 42. 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 **** ?
  • 43. BigData Scale AI & Data Science Polyglot 중요성 SSG.COM Use Case! Production AI & Cutting-Edge Technology On Azure
  • 44. 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
  • 45. SSG.COM Python Machine Learning on Spark Polyglot! BigData Scale Python
  • 46. Jupyter on Azure DSVM SSG.COM Jupyter Notebook 도 BigData Scale 로 Jupyter on Azure Notebooks Polyglot! BigData Scale Jupyter Notebook
  • 47. 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
  • 48. 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 로 확장 가능.
  • 49. SSG.COM TensorflowOnSpark Tensorflow 의 Legacy Code를 활용한 BigData Scale Deep Learning은? • TensorflowOnSpark 수행 결과 Polyglot! BigData Scale Python + Tensorflow Deep Learning
  • 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
  • 51. 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
  • 52. 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
  • 53. 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)
  • 54. 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!
  • 55. 요즘 Cutting-Edge 기술들이 나오게 된 배경 Microservice, Serverless, Cloud, PaaS, BaaS, DevOps … BigData PaaS, NoSQL PaaS … Machine Learning & Deep Learning … Realtime Lambda Architecture … For Better Production AI … 결국, AI 시대의 발현과 무관하지 않았음! 결론
  • 56. AI시대에 임하는 Developer 에게…
  • 57. 집단 지성의 힘! 검증된 것들을 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 (동접 성능, 모델 성능, 개발생산성) 다 직접 개발하는 것이 능사는 아니다!
  • 58. 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 를 잘 활용한다면, 개발자가 유리한 부분이 많다!
  • 59. AI시대에 임하는 BigData Engineer 에게…
  • 60. Production A/B Test 에서 중요한 것! Sample Data, Selected Feature 정교한 모델 주1회 or 일1회 모두에게 적용하는 정교한 단일 모델 최고 정확도 VS 더 많은 Data(or 전수 Data)에 적용하는 Simple 모델 최신성 (매 시간 or 준실시간) 개인화 모델 덜 정확해도 빠르고, 다수에게, 실시간으로… 논문 쓸 때랑, Kaggle 할 때와 달라요!
  • 61. 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
  • 62. AI시대에 임하는 Manager, Leader 에게…
  • 63. AI 시대에 리더가 임하는 자세! • Think Big. • 길게 보고 Plan을 세우자. • 당장의 효과에 연연하지 말자. • Bottom Up! ( Not Top Down! ) • 유행에 편승해서, 혹은 윗 분들의 지시에 의해서가 아닌, • 실무자(Self Motivated 된)들에 의해 기획,개발 하고, • 내부 내재화를 고려하며 지속적 고도화 하도록 하자. • 작게 그리고 빠르게 시작하자. • 데이터를 빨리 쌓는게 더 중요. • 모델이 진입장벽이 아니라, 데이터가 더 진입 장벽.( Bigdata Infra 중요) • Mashup 하고, 결합 Merge 하고, 반복 개선 시키자. 그럼 Top 에서 할 일은? • Motivation. 동기부여. • 환경조성. • 방향성 부여. • Self Motivated 된 직원들에게 길을 열어주는 것. • 강요가 아닌 마음을 움직이는 것이 필요. 때로는 내재화보다, 기민함이 더 중요할 수 있으며, Cloud PaaS 는 이 경우 Key Factor 가 될 수 있음.
  • 64. Thank You • 기타 문의는… • http://hoondongkim.blogspot.krhttps://www.facebook.com/kim.hoondong Q & A 4층 로비 왼편 안쪽 MVP 부스(Ask the Expert 부스)
반응형