SlideShare a Scribd company logo
1 of 45
Download to read offline
Makinarocks
MLOps 플랫폼을 만드는 과정의
고민과 해결 사례 공유 (feat. Kubeflow)
Deview 2021 - Spotlight Program
세션 중 채팅으로
혹은 세션 후반부 Q&A 시간에
질문해주시는 분께는
Naver Deview 측에서 기념품을 드립니다!
CONTENTS
1. 마키나락스의 MLOps 플랫폼 팀 소개
2. 고민 1) Kubeflow Pipeline 와 HPO 의 연결
3. 고민 2) HPO 가 끝난 이후
4. 마치며
1. 마키나락스의 MLOps 플랫폼 팀
1.1 마키나락스
1.2 MLOps 플랫폼 팀의 탄생 배경
MLOps Platform in Makinarocks ?
1.2 MLOps 플랫폼 팀의 탄생 배경
1.2 MLOps 플랫폼 팀의 탄생 배경
1.3 어떤 분들에게 도움이 될 이야기인지
MLOps 의 정의가 궁금해요
MLOps 의 구성요소가 궁금해요
Kubernetes 를 잘 모르고 있어요
1.3 어떤 분들에게 도움이 될 이야기인지
MLOps 의 정의가 궁금해요
MLOps 의 구성요소가 궁금해요
Kubernetes 를 잘 모르고 있어요
1.3 어떤 분들에게 도움이 될 이야기인지
- MLOps 의 전반적인 내용보다는 마키나락스의 MLOps Engineer 는 어떤 일을 하
고 있는지 궁금하신 분
- 다음 키워드에 대해 기본적인 내용을 알고 계신 분
- 머신러닝 프로젝트의 Lifecycle
- Kubernetes
- Kubeflow
- 오픈소스 기반의 개발 방식에 관심있으신 분
1.4 오픈소스 기여
https://github.com/kubeflow/internal-acls/pull/487
https://github.com/kubeflow/internal-acls/pull/507
2. 첫 번째 고민 :
Kubeflow Pipeline 과 HPO 의 연결
2.1 Kubeflow Pipeline (KFP)
- Kubeflow
- Machine Learning Toolkit for Kubernetes
- Kubeflow Pipeline (KFP)
- “데이터 준비 -> 전처리 -> 학습 -> … -> 서빙”으로 이어지는 ML Workflow
를 컨테이너 기반의 DAG 의 형태로 정의한 것
- 마키나락스에서는 주로 KFP 는 모델 저장까지만 수행하도록 구현
2.2 Hyperparameter Optimization (HPO)
- HPO 란
- ML Model 의 다양한 Hyperparameter 조합에 대해, 가장 좋은 퍼포먼스를 내
는 Hyperparameter 조합을 찾는 것
2.2 Hyperparameter Optimization (HPO)
- HPO 란
- ML Model 의 다양한 Hyperparameter 조합에 대해, 가장 좋은 퍼포먼스를 내
는 Hyperparameter 조합을 찾는 것
- 일반적인 HPO 과정
- Optuna, HyperOpt, Ray-Tune 등의 HPO 를 위한 Python 패키지를 활용하여
ML Model 학습 & 평가 로직을 반복하며 수행
2.2 Hyperparameter Optimization (HPO)
Kubernetes 인프라를 활용한 HPO 를 위해서는
인프라를 추상화하거나
OR
ML Model 학습 & 평가 로직을 패키징하거나
2.3 KFP 단위의 HPO 의 필요성
- 팀의 목표
- ML Engineer 가 Kubeflow Pipeline (KFP) 의 형태로 개발을 완료하면, 그 이
후의 모든 로직을 자동화 (HPO, CI, CD, CT)
소스 코드
모델 연구 및 개
발
담당자
모델 서비스화 담
당자
2.3 KFP 단위의 HPO 의 필요성
- 팀의 목표
- ML Engineer 가 Kubeflow Pipeline (KFP) 의 형태로 개발을 완료하면, 그 이
후의 모든 로직을 자동화 (HPO, CI, CD, CT)
Kubeflow
Pipeline
모델 연구 및 개
발
담당자
모델 서비스화 담
당자
2.3 KFP 단위의 HPO 의 필요성
Kubernetes 인프라를 활용한 HPO 를 위해서는
인프라를 추상화하거나
OR
ML Model 학습 & 평가 로직을 패키징하거나
2.3 KFP 단위의 HPO 의 필요성
- 우리 팀의 목표
- ML Engineer 가 Kubeflow Pipeline (KFP) 의 형태로 개발을 완료하면, 그 이
후의 모든 로직을 자동화 (HPO, CI, CD, CT)
- 따라서 Kubeflow Pipeline 단위의 HPO 가 필요
- KFP 용 코드와 HPO 용 코드의 파편화 지양
2.4 Katib
- Kubeflow 의 Components 중 하나
- AutoML 을 위한 Kubernetes-native 프로젝트
- Hyperparameter Tuning, Early Stopping 및 Neural Architecture
Search 지원
https://github.com/kubeflow/katib
Upstream Katib
Research Model
Experiment
KF Pipeline 구현
Train.py 분리
Docker Build
& Push
YAML 작성 후
kubectl apply
HPO Result
HPO Result
MRX Katib
kubectl
Click, Click,
Click
2.5 Katib 의 개선 포인트
2.5 Katib 의 개선 포인트
https://blog.kubeflow.org/katib
2.5 Katib 의 개선 포인트
KFP
KFP
KFP
2.6 마주한 이슈 1
- Istio-sidecar Handling 지원
- Upstream 의 Katib 에서는 Istio sidecar injection 과 함께 사용할 수 없어, Disable 하는 것을
안내하고 있음
https://www.kubeflow.org/docs/components/katib/hyperparameter/
2.6 마주한 이슈 1
- Istio-sidecar Handling 지원
- Upstream 의 Katib 에서는 Istio sidecar injection 과 함께 사용할 수 없어, Disable 하는 것
을 안내하고 있음
- 하지만, HPO 과정 중 kubeflow 관련 API 를 수행하기 위해서는 istio-proxy sidecar 가
반드시 enable 되어 있어야 함
2.6 마주한 이슈 1
- 원인
- Katib 에서 생성되는 Worker 에 istio sidecar injection 을 enable 하면 init-container 를
제외하고 총 3 개의 컨테이너로 구성
- metrics-logger-and-collector 컨테이너
- Hyperparameter Search 를 위한 로깅
- istio-proxy 컨테이너
- 인증/인가
- main 컨테이너
- 학습 및 평가 로직
- 이들 간의 시작 순서를 지정할 수 없는 문제
- https://github.com/kubernetes/kubernetes/issues/65502
- 이들 간의 종료 시점을 지정할 수 없는 문제
- https://github.com/istio/istio/issues/6324
2.6 마주한 이슈 1
- 해결
- Istio 에서는 이러한 문제를 지원하기 위한 2 가지 Endpoint 를 제공
- Readiness Endpoint & Terminate Endpoint
- Metrics-logger-and-collector 컨테이너의 Lifecycle
- 시작 시점에서 Istio 의 Readiness Endpoint 를 활용하여 Wait
- 종료 시점에서 Istio 의 Terminate Endpoint 를 활용하여 강제 종료
- 업스트림 Kubeflow/Katib 에 Issue up
- https://github.com/kubeflow/katib/issues/1638
2.7 마주한 이슈 2
Experiment 를 만들기 어렵고,
실수할 여지가 많다.
UI 의 사용성이 떨어진다.
2.8 마주한 이슈 3
- 내부적으로만 빠르게 구현 후 사용
- Katib 에서도 비슷한 목적을 이루기 위한 다양한 기능들이 추가되고, 논의되는 중
- https://github.com/kubeflow/katib/pull/1605
- https://github.com/kubeflow/katib/issues/1682
3. 두 번째 고민 : HPO 가 끝난 이후
3.1 First Idea - Naive
Best Model 을 저장하고,
Best Model 로 서빙을 수행하고 싶다.
3.1 First Idea - Naive
Best Model 을 저장하기 위해서,
HPO 과정의 모든 모델을 저장한다.
3.2 Second Idea - PostHook
https://github.com/kubeflow/katib/issues/1692
3.2 Second Idea - PostHook
3.2 Second Idea - PostHook
3.3 Third Idea - Event Driven Architecture
A 의 상태가 변하면, B 라는 action 을 수행한다.
=
HPO 가 완료되면, Best Model 을 저장한다.
=
A/B Testing 이 완료되면, 승자 Model 을 배포한다.
=
서빙 중인 Model 의 성능이 하락하면, 새로운 Config 로 재학습한다.
This document is strictly confidential 39
Serving
Machine
Pipeline
Monitoring
Alarming
Stream
DB (Feature Store) Re-Training
(with HP Tuning)
A/B Testing
Labeling
CT Trigger
3.4 Continuous Training
4. 마치며
4.1 요약
➔ 어떤 고민이었는가
➔ 왜 고민했는가
➔ 무엇을, 어떻게, 왜 수정하였는
가
➔ 그래서 더 좋아졌는가
4.2 채용 정보
4.2 채용 정보
Q & A
Thank You

More Related Content

What's hot

AWS를 활용한 상품 추천 서비스 구축::김태현:: AWS Summit Seoul 2018
AWS를 활용한 상품 추천 서비스 구축::김태현:: AWS Summit Seoul 2018AWS를 활용한 상품 추천 서비스 구축::김태현:: AWS Summit Seoul 2018
AWS를 활용한 상품 추천 서비스 구축::김태현:: AWS Summit Seoul 2018Amazon Web Services Korea
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기NAVER D2
 
Aws glue를 통한 손쉬운 데이터 전처리 작업하기
Aws glue를 통한 손쉬운 데이터 전처리 작업하기Aws glue를 통한 손쉬운 데이터 전처리 작업하기
Aws glue를 통한 손쉬운 데이터 전처리 작업하기Amazon Web Services Korea
 
Amazon SageMaker 모델 학습 방법 소개::최영준, 솔루션즈 아키텍트 AI/ML 엑스퍼트, AWS::AWS AIML 스페셜 웨비나
Amazon SageMaker 모델 학습 방법 소개::최영준, 솔루션즈 아키텍트 AI/ML 엑스퍼트, AWS::AWS AIML 스페셜 웨비나Amazon SageMaker 모델 학습 방법 소개::최영준, 솔루션즈 아키텍트 AI/ML 엑스퍼트, AWS::AWS AIML 스페셜 웨비나
Amazon SageMaker 모델 학습 방법 소개::최영준, 솔루션즈 아키텍트 AI/ML 엑스퍼트, AWS::AWS AIML 스페셜 웨비나Amazon Web Services Korea
 
Amazon SageMaker 모델 배포 방법 소개::김대근, AI/ML 스페셜리스트 솔루션즈 아키텍트, AWS::AWS AIML 스페셜 웨비나
Amazon SageMaker 모델 배포 방법 소개::김대근, AI/ML 스페셜리스트 솔루션즈 아키텍트, AWS::AWS AIML 스페셜 웨비나Amazon SageMaker 모델 배포 방법 소개::김대근, AI/ML 스페셜리스트 솔루션즈 아키텍트, AWS::AWS AIML 스페셜 웨비나
Amazon SageMaker 모델 배포 방법 소개::김대근, AI/ML 스페셜리스트 솔루션즈 아키텍트, AWS::AWS AIML 스페셜 웨비나Amazon Web Services Korea
 
Robust MLOps with Open-Source: ModelDB, Docker, Jenkins, and Prometheus
Robust MLOps with Open-Source: ModelDB, Docker, Jenkins, and PrometheusRobust MLOps with Open-Source: ModelDB, Docker, Jenkins, and Prometheus
Robust MLOps with Open-Source: ModelDB, Docker, Jenkins, and PrometheusManasi Vartak
 
Amazon SageMaker 모델 빌딩 파이프라인 소개::이유동, AI/ML 스페셜리스트 솔루션즈 아키텍트, AWS::AWS AIML 스...
Amazon SageMaker 모델 빌딩 파이프라인 소개::이유동, AI/ML 스페셜리스트 솔루션즈 아키텍트, AWS::AWS AIML 스...Amazon SageMaker 모델 빌딩 파이프라인 소개::이유동, AI/ML 스페셜리스트 솔루션즈 아키텍트, AWS::AWS AIML 스...
Amazon SageMaker 모델 빌딩 파이프라인 소개::이유동, AI/ML 스페셜리스트 솔루션즈 아키텍트, AWS::AWS AIML 스...Amazon Web Services Korea
 
Airflow를 이용한 데이터 Workflow 관리
Airflow를 이용한  데이터 Workflow 관리Airflow를 이용한  데이터 Workflow 관리
Airflow를 이용한 데이터 Workflow 관리YoungHeon (Roy) Kim
 
Seamless MLOps with Seldon and MLflow
Seamless MLOps with Seldon and MLflowSeamless MLOps with Seldon and MLflow
Seamless MLOps with Seldon and MLflowDatabricks
 
Trends_of_MLOps_tech_in_business
Trends_of_MLOps_tech_in_businessTrends_of_MLOps_tech_in_business
Trends_of_MLOps_tech_in_businessSANG WON PARK
 
Data council sf amundsen presentation
Data council sf    amundsen presentationData council sf    amundsen presentation
Data council sf amundsen presentationTao Feng
 
핵심 미래 분석 기술! 시계열 분석을 활용한 수요예측과 재고관리 최적화 사례 – 김형일 AWS 솔루션즈 아키텍트, 이환기 신세계아이앤씨 A...
핵심 미래 분석 기술! 시계열 분석을 활용한 수요예측과 재고관리 최적화 사례 – 김형일 AWS 솔루션즈 아키텍트, 이환기 신세계아이앤씨 A...핵심 미래 분석 기술! 시계열 분석을 활용한 수요예측과 재고관리 최적화 사례 – 김형일 AWS 솔루션즈 아키텍트, 이환기 신세계아이앤씨 A...
핵심 미래 분석 기술! 시계열 분석을 활용한 수요예측과 재고관리 최적화 사례 – 김형일 AWS 솔루션즈 아키텍트, 이환기 신세계아이앤씨 A...Amazon Web Services Korea
 
Amazon EMR과 SageMaker를 이용하여 데이터를 준비하고 머신러닝 모델 개발 하기
Amazon EMR과 SageMaker를 이용하여 데이터를 준비하고 머신러닝 모델 개발 하기Amazon EMR과 SageMaker를 이용하여 데이터를 준비하고 머신러닝 모델 개발 하기
Amazon EMR과 SageMaker를 이용하여 데이터를 준비하고 머신러닝 모델 개발 하기Amazon Web Services Korea
 
AWS EMR Cost optimization
AWS EMR Cost optimizationAWS EMR Cost optimization
AWS EMR Cost optimizationSANG WON PARK
 
데이터 과학자를 위한 신규 인공지능 서비스 - 김대근, 이유동, AWS AI/ML 스페셜리스트 솔루션즈 아키텍트 / 소성운, 카카오스타일 ...
데이터 과학자를 위한 신규 인공지능 서비스 - 김대근, 이유동, AWS AI/ML 스페셜리스트 솔루션즈 아키텍트 / 소성운, 카카오스타일 ...데이터 과학자를 위한 신규 인공지능 서비스 - 김대근, 이유동, AWS AI/ML 스페셜리스트 솔루션즈 아키텍트 / 소성운, 카카오스타일 ...
데이터 과학자를 위한 신규 인공지능 서비스 - 김대근, 이유동, AWS AI/ML 스페셜리스트 솔루션즈 아키텍트 / 소성운, 카카오스타일 ...Amazon Web Services Korea
 
판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중
판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중
판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중Amazon Web Services Korea
 
Next generation intelligent data lakes, powered by GraphQL & AWS AppSync - MA...
Next generation intelligent data lakes, powered by GraphQL & AWS AppSync - MA...Next generation intelligent data lakes, powered by GraphQL & AWS AppSync - MA...
Next generation intelligent data lakes, powered by GraphQL & AWS AppSync - MA...Amazon Web Services
 
글로벌 기업들의 효과적인 데이터 분석을 위한 Data Lake 구축 및 분석 사례 - 김준형 (AWS 솔루션즈 아키텍트)
글로벌 기업들의 효과적인 데이터 분석을 위한 Data Lake 구축 및 분석 사례 - 김준형 (AWS 솔루션즈 아키텍트)글로벌 기업들의 효과적인 데이터 분석을 위한 Data Lake 구축 및 분석 사례 - 김준형 (AWS 솔루션즈 아키텍트)
글로벌 기업들의 효과적인 데이터 분석을 위한 Data Lake 구축 및 분석 사례 - 김준형 (AWS 솔루션즈 아키텍트)Amazon Web Services Korea
 

What's hot (20)

AWS를 활용한 상품 추천 서비스 구축::김태현:: AWS Summit Seoul 2018
AWS를 활용한 상품 추천 서비스 구축::김태현:: AWS Summit Seoul 2018AWS를 활용한 상품 추천 서비스 구축::김태현:: AWS Summit Seoul 2018
AWS를 활용한 상품 추천 서비스 구축::김태현:: AWS Summit Seoul 2018
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
 
Aws glue를 통한 손쉬운 데이터 전처리 작업하기
Aws glue를 통한 손쉬운 데이터 전처리 작업하기Aws glue를 통한 손쉬운 데이터 전처리 작업하기
Aws glue를 통한 손쉬운 데이터 전처리 작업하기
 
Amazon SageMaker 모델 학습 방법 소개::최영준, 솔루션즈 아키텍트 AI/ML 엑스퍼트, AWS::AWS AIML 스페셜 웨비나
Amazon SageMaker 모델 학습 방법 소개::최영준, 솔루션즈 아키텍트 AI/ML 엑스퍼트, AWS::AWS AIML 스페셜 웨비나Amazon SageMaker 모델 학습 방법 소개::최영준, 솔루션즈 아키텍트 AI/ML 엑스퍼트, AWS::AWS AIML 스페셜 웨비나
Amazon SageMaker 모델 학습 방법 소개::최영준, 솔루션즈 아키텍트 AI/ML 엑스퍼트, AWS::AWS AIML 스페셜 웨비나
 
Amazon SageMaker 모델 배포 방법 소개::김대근, AI/ML 스페셜리스트 솔루션즈 아키텍트, AWS::AWS AIML 스페셜 웨비나
Amazon SageMaker 모델 배포 방법 소개::김대근, AI/ML 스페셜리스트 솔루션즈 아키텍트, AWS::AWS AIML 스페셜 웨비나Amazon SageMaker 모델 배포 방법 소개::김대근, AI/ML 스페셜리스트 솔루션즈 아키텍트, AWS::AWS AIML 스페셜 웨비나
Amazon SageMaker 모델 배포 방법 소개::김대근, AI/ML 스페셜리스트 솔루션즈 아키텍트, AWS::AWS AIML 스페셜 웨비나
 
Robust MLOps with Open-Source: ModelDB, Docker, Jenkins, and Prometheus
Robust MLOps with Open-Source: ModelDB, Docker, Jenkins, and PrometheusRobust MLOps with Open-Source: ModelDB, Docker, Jenkins, and Prometheus
Robust MLOps with Open-Source: ModelDB, Docker, Jenkins, and Prometheus
 
Amazon SageMaker 모델 빌딩 파이프라인 소개::이유동, AI/ML 스페셜리스트 솔루션즈 아키텍트, AWS::AWS AIML 스...
Amazon SageMaker 모델 빌딩 파이프라인 소개::이유동, AI/ML 스페셜리스트 솔루션즈 아키텍트, AWS::AWS AIML 스...Amazon SageMaker 모델 빌딩 파이프라인 소개::이유동, AI/ML 스페셜리스트 솔루션즈 아키텍트, AWS::AWS AIML 스...
Amazon SageMaker 모델 빌딩 파이프라인 소개::이유동, AI/ML 스페셜리스트 솔루션즈 아키텍트, AWS::AWS AIML 스...
 
Airflow를 이용한 데이터 Workflow 관리
Airflow를 이용한  데이터 Workflow 관리Airflow를 이용한  데이터 Workflow 관리
Airflow를 이용한 데이터 Workflow 관리
 
Seamless MLOps with Seldon and MLflow
Seamless MLOps with Seldon and MLflowSeamless MLOps with Seldon and MLflow
Seamless MLOps with Seldon and MLflow
 
Trends_of_MLOps_tech_in_business
Trends_of_MLOps_tech_in_businessTrends_of_MLOps_tech_in_business
Trends_of_MLOps_tech_in_business
 
Data council sf amundsen presentation
Data council sf    amundsen presentationData council sf    amundsen presentation
Data council sf amundsen presentation
 
Introduction to AWS Glue
Introduction to AWS Glue Introduction to AWS Glue
Introduction to AWS Glue
 
핵심 미래 분석 기술! 시계열 분석을 활용한 수요예측과 재고관리 최적화 사례 – 김형일 AWS 솔루션즈 아키텍트, 이환기 신세계아이앤씨 A...
핵심 미래 분석 기술! 시계열 분석을 활용한 수요예측과 재고관리 최적화 사례 – 김형일 AWS 솔루션즈 아키텍트, 이환기 신세계아이앤씨 A...핵심 미래 분석 기술! 시계열 분석을 활용한 수요예측과 재고관리 최적화 사례 – 김형일 AWS 솔루션즈 아키텍트, 이환기 신세계아이앤씨 A...
핵심 미래 분석 기술! 시계열 분석을 활용한 수요예측과 재고관리 최적화 사례 – 김형일 AWS 솔루션즈 아키텍트, 이환기 신세계아이앤씨 A...
 
Amazon EMR과 SageMaker를 이용하여 데이터를 준비하고 머신러닝 모델 개발 하기
Amazon EMR과 SageMaker를 이용하여 데이터를 준비하고 머신러닝 모델 개발 하기Amazon EMR과 SageMaker를 이용하여 데이터를 준비하고 머신러닝 모델 개발 하기
Amazon EMR과 SageMaker를 이용하여 데이터를 준비하고 머신러닝 모델 개발 하기
 
AWS EMR Cost optimization
AWS EMR Cost optimizationAWS EMR Cost optimization
AWS EMR Cost optimization
 
AWS CloudFormation Masterclass
AWS CloudFormation MasterclassAWS CloudFormation Masterclass
AWS CloudFormation Masterclass
 
데이터 과학자를 위한 신규 인공지능 서비스 - 김대근, 이유동, AWS AI/ML 스페셜리스트 솔루션즈 아키텍트 / 소성운, 카카오스타일 ...
데이터 과학자를 위한 신규 인공지능 서비스 - 김대근, 이유동, AWS AI/ML 스페셜리스트 솔루션즈 아키텍트 / 소성운, 카카오스타일 ...데이터 과학자를 위한 신규 인공지능 서비스 - 김대근, 이유동, AWS AI/ML 스페셜리스트 솔루션즈 아키텍트 / 소성운, 카카오스타일 ...
데이터 과학자를 위한 신규 인공지능 서비스 - 김대근, 이유동, AWS AI/ML 스페셜리스트 솔루션즈 아키텍트 / 소성운, 카카오스타일 ...
 
판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중
판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중
판교 개발자 데이 – Aws가 제안하는 서버리스 아키텍처 – 김필중
 
Next generation intelligent data lakes, powered by GraphQL & AWS AppSync - MA...
Next generation intelligent data lakes, powered by GraphQL & AWS AppSync - MA...Next generation intelligent data lakes, powered by GraphQL & AWS AppSync - MA...
Next generation intelligent data lakes, powered by GraphQL & AWS AppSync - MA...
 
글로벌 기업들의 효과적인 데이터 분석을 위한 Data Lake 구축 및 분석 사례 - 김준형 (AWS 솔루션즈 아키텍트)
글로벌 기업들의 효과적인 데이터 분석을 위한 Data Lake 구축 및 분석 사례 - 김준형 (AWS 솔루션즈 아키텍트)글로벌 기업들의 효과적인 데이터 분석을 위한 Data Lake 구축 및 분석 사례 - 김준형 (AWS 솔루션즈 아키텍트)
글로벌 기업들의 효과적인 데이터 분석을 위한 Data Lake 구축 및 분석 사례 - 김준형 (AWS 솔루션즈 아키텍트)
 

Similar to MLOps 플랫폼을 만드는 과정의 고민과 해결 사례 공유(feat. Kubeflow)

[Open-infradays 2019 Korea] jabayo on Kubeflow
[Open-infradays 2019 Korea] jabayo on Kubeflow[Open-infradays 2019 Korea] jabayo on Kubeflow
[Open-infradays 2019 Korea] jabayo on Kubeflow석환 홍
 
Toward kubernetes native data center
Toward kubernetes native data centerToward kubernetes native data center
Toward kubernetes native data center어형 이
 
세션3_데보션테크데이_gitopsinfra_v1.1.pdf
세션3_데보션테크데이_gitopsinfra_v1.1.pdf세션3_데보션테크데이_gitopsinfra_v1.1.pdf
세션3_데보션테크데이_gitopsinfra_v1.1.pdfJaesuk Ahn
 
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [SPOAZ] : Spotify 기반 개인화 음악 추천 서비스 프로젝트
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [SPOAZ] : Spotify 기반 개인화 음악 추천 서비스 프로젝트제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [SPOAZ] : Spotify 기반 개인화 음악 추천 서비스 프로젝트
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [SPOAZ] : Spotify 기반 개인화 음악 추천 서비스 프로젝트BOAZ Bigdata
 
github actions kubernetes 설치&운영하기
github actions kubernetes 설치&운영하기github actions kubernetes 설치&운영하기
github actions kubernetes 설치&운영하기newdeal2
 
Pivotal 101세미나 발표자료 (PAS,PKS)
Pivotal 101세미나 발표자료 (PAS,PKS) Pivotal 101세미나 발표자료 (PAS,PKS)
Pivotal 101세미나 발표자료 (PAS,PKS) VMware Tanzu Korea
 
K8s beginner 2_advanced_ep02_201904221130_post
K8s beginner 2_advanced_ep02_201904221130_postK8s beginner 2_advanced_ep02_201904221130_post
K8s beginner 2_advanced_ep02_201904221130_postInho Kang
 
마이크로 프론트엔드 아키텍쳐를 위한 모노레포 관리
마이크로 프론트엔드 아키텍쳐를 위한 모노레포 관리마이크로 프론트엔드 아키텍쳐를 위한 모노레포 관리
마이크로 프론트엔드 아키텍쳐를 위한 모노레포 관리경식 최
 
Caffe Tutorial with window10, VS2015
Caffe Tutorial with window10, VS2015Caffe Tutorial with window10, VS2015
Caffe Tutorial with window10, VS2015youngjoon kim
 
제2회 난공불락 오픈소스 인프라 세미나 Kubernetes
제2회 난공불락 오픈소스 인프라 세미나 Kubernetes제2회 난공불락 오픈소스 인프라 세미나 Kubernetes
제2회 난공불락 오픈소스 인프라 세미나 KubernetesTommy Lee
 
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [백발백준] : 백준봇 : 컨테이너 오케스트레이션 기반 백준 문제 추천 봇
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [백발백준] : 백준봇 : 컨테이너 오케스트레이션 기반 백준 문제 추천 봇제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [백발백준] : 백준봇 : 컨테이너 오케스트레이션 기반 백준 문제 추천 봇
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [백발백준] : 백준봇 : 컨테이너 오케스트레이션 기반 백준 문제 추천 봇BOAZ Bigdata
 
Prometheus in openstack-helm
Prometheus in openstack-helmPrometheus in openstack-helm
Prometheus in openstack-helm성일 임
 
비대면 MSA / CNA 강의 - Contactless Microservices Architecture Learning
비대면 MSA / CNA 강의 - Contactless Microservices Architecture Learning비대면 MSA / CNA 강의 - Contactless Microservices Architecture Learning
비대면 MSA / CNA 강의 - Contactless Microservices Architecture LearninguEngine Solutions
 
Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호용호 최
 
Open infradays 2019_msa_k8s
Open infradays 2019_msa_k8sOpen infradays 2019_msa_k8s
Open infradays 2019_msa_k8sHyoungjun Kim
 
Spring one참석기 ksug
Spring one참석기 ksugSpring one참석기 ksug
Spring one참석기 ksugSanghyuk Jung
 
[오픈소스컨설팅]Kafka message system 맛보기
[오픈소스컨설팅]Kafka message system 맛보기 [오픈소스컨설팅]Kafka message system 맛보기
[오픈소스컨설팅]Kafka message system 맛보기 Chanyeol yoon
 
2022.08 멘토링 자료.pptx
2022.08 멘토링 자료.pptx2022.08 멘토링 자료.pptx
2022.08 멘토링 자료.pptxssuserf875e6
 
[OpenInfra Days Korea 2018] K8s workshop: Kubernetes for Beginner
[OpenInfra Days Korea 2018] K8s workshop: Kubernetes for Beginner[OpenInfra Days Korea 2018] K8s workshop: Kubernetes for Beginner
[OpenInfra Days Korea 2018] K8s workshop: Kubernetes for BeginnerOpenStack Korea Community
 
Kafka introduce kr
Kafka introduce krKafka introduce kr
Kafka introduce krJung soo Ahn
 

Similar to MLOps 플랫폼을 만드는 과정의 고민과 해결 사례 공유(feat. Kubeflow) (20)

[Open-infradays 2019 Korea] jabayo on Kubeflow
[Open-infradays 2019 Korea] jabayo on Kubeflow[Open-infradays 2019 Korea] jabayo on Kubeflow
[Open-infradays 2019 Korea] jabayo on Kubeflow
 
Toward kubernetes native data center
Toward kubernetes native data centerToward kubernetes native data center
Toward kubernetes native data center
 
세션3_데보션테크데이_gitopsinfra_v1.1.pdf
세션3_데보션테크데이_gitopsinfra_v1.1.pdf세션3_데보션테크데이_gitopsinfra_v1.1.pdf
세션3_데보션테크데이_gitopsinfra_v1.1.pdf
 
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [SPOAZ] : Spotify 기반 개인화 음악 추천 서비스 프로젝트
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [SPOAZ] : Spotify 기반 개인화 음악 추천 서비스 프로젝트제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [SPOAZ] : Spotify 기반 개인화 음악 추천 서비스 프로젝트
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [SPOAZ] : Spotify 기반 개인화 음악 추천 서비스 프로젝트
 
github actions kubernetes 설치&운영하기
github actions kubernetes 설치&운영하기github actions kubernetes 설치&운영하기
github actions kubernetes 설치&운영하기
 
Pivotal 101세미나 발표자료 (PAS,PKS)
Pivotal 101세미나 발표자료 (PAS,PKS) Pivotal 101세미나 발표자료 (PAS,PKS)
Pivotal 101세미나 발표자료 (PAS,PKS)
 
K8s beginner 2_advanced_ep02_201904221130_post
K8s beginner 2_advanced_ep02_201904221130_postK8s beginner 2_advanced_ep02_201904221130_post
K8s beginner 2_advanced_ep02_201904221130_post
 
마이크로 프론트엔드 아키텍쳐를 위한 모노레포 관리
마이크로 프론트엔드 아키텍쳐를 위한 모노레포 관리마이크로 프론트엔드 아키텍쳐를 위한 모노레포 관리
마이크로 프론트엔드 아키텍쳐를 위한 모노레포 관리
 
Caffe Tutorial with window10, VS2015
Caffe Tutorial with window10, VS2015Caffe Tutorial with window10, VS2015
Caffe Tutorial with window10, VS2015
 
제2회 난공불락 오픈소스 인프라 세미나 Kubernetes
제2회 난공불락 오픈소스 인프라 세미나 Kubernetes제2회 난공불락 오픈소스 인프라 세미나 Kubernetes
제2회 난공불락 오픈소스 인프라 세미나 Kubernetes
 
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [백발백준] : 백준봇 : 컨테이너 오케스트레이션 기반 백준 문제 추천 봇
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [백발백준] : 백준봇 : 컨테이너 오케스트레이션 기반 백준 문제 추천 봇제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [백발백준] : 백준봇 : 컨테이너 오케스트레이션 기반 백준 문제 추천 봇
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [백발백준] : 백준봇 : 컨테이너 오케스트레이션 기반 백준 문제 추천 봇
 
Prometheus in openstack-helm
Prometheus in openstack-helmPrometheus in openstack-helm
Prometheus in openstack-helm
 
비대면 MSA / CNA 강의 - Contactless Microservices Architecture Learning
비대면 MSA / CNA 강의 - Contactless Microservices Architecture Learning비대면 MSA / CNA 강의 - Contactless Microservices Architecture Learning
비대면 MSA / CNA 강의 - Contactless Microservices Architecture Learning
 
Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호
 
Open infradays 2019_msa_k8s
Open infradays 2019_msa_k8sOpen infradays 2019_msa_k8s
Open infradays 2019_msa_k8s
 
Spring one참석기 ksug
Spring one참석기 ksugSpring one참석기 ksug
Spring one참석기 ksug
 
[오픈소스컨설팅]Kafka message system 맛보기
[오픈소스컨설팅]Kafka message system 맛보기 [오픈소스컨설팅]Kafka message system 맛보기
[오픈소스컨설팅]Kafka message system 맛보기
 
2022.08 멘토링 자료.pptx
2022.08 멘토링 자료.pptx2022.08 멘토링 자료.pptx
2022.08 멘토링 자료.pptx
 
[OpenInfra Days Korea 2018] K8s workshop: Kubernetes for Beginner
[OpenInfra Days Korea 2018] K8s workshop: Kubernetes for Beginner[OpenInfra Days Korea 2018] K8s workshop: Kubernetes for Beginner
[OpenInfra Days Korea 2018] K8s workshop: Kubernetes for Beginner
 
Kafka introduce kr
Kafka introduce krKafka introduce kr
Kafka introduce kr
 

MLOps 플랫폼을 만드는 과정의 고민과 해결 사례 공유(feat. Kubeflow)

  • 1. Makinarocks MLOps 플랫폼을 만드는 과정의 고민과 해결 사례 공유 (feat. Kubeflow) Deview 2021 - Spotlight Program
  • 2. 세션 중 채팅으로 혹은 세션 후반부 Q&A 시간에 질문해주시는 분께는 Naver Deview 측에서 기념품을 드립니다!
  • 3. CONTENTS 1. 마키나락스의 MLOps 플랫폼 팀 소개 2. 고민 1) Kubeflow Pipeline 와 HPO 의 연결 3. 고민 2) HPO 가 끝난 이후 4. 마치며
  • 6. 1.2 MLOps 플랫폼 팀의 탄생 배경 MLOps Platform in Makinarocks ?
  • 7. 1.2 MLOps 플랫폼 팀의 탄생 배경
  • 8. 1.2 MLOps 플랫폼 팀의 탄생 배경
  • 9. 1.3 어떤 분들에게 도움이 될 이야기인지 MLOps 의 정의가 궁금해요 MLOps 의 구성요소가 궁금해요 Kubernetes 를 잘 모르고 있어요
  • 10. 1.3 어떤 분들에게 도움이 될 이야기인지 MLOps 의 정의가 궁금해요 MLOps 의 구성요소가 궁금해요 Kubernetes 를 잘 모르고 있어요
  • 11. 1.3 어떤 분들에게 도움이 될 이야기인지 - MLOps 의 전반적인 내용보다는 마키나락스의 MLOps Engineer 는 어떤 일을 하 고 있는지 궁금하신 분 - 다음 키워드에 대해 기본적인 내용을 알고 계신 분 - 머신러닝 프로젝트의 Lifecycle - Kubernetes - Kubeflow - 오픈소스 기반의 개발 방식에 관심있으신 분
  • 13. 2. 첫 번째 고민 : Kubeflow Pipeline 과 HPO 의 연결
  • 14. 2.1 Kubeflow Pipeline (KFP) - Kubeflow - Machine Learning Toolkit for Kubernetes - Kubeflow Pipeline (KFP) - “데이터 준비 -> 전처리 -> 학습 -> … -> 서빙”으로 이어지는 ML Workflow 를 컨테이너 기반의 DAG 의 형태로 정의한 것 - 마키나락스에서는 주로 KFP 는 모델 저장까지만 수행하도록 구현
  • 15. 2.2 Hyperparameter Optimization (HPO) - HPO 란 - ML Model 의 다양한 Hyperparameter 조합에 대해, 가장 좋은 퍼포먼스를 내 는 Hyperparameter 조합을 찾는 것
  • 16. 2.2 Hyperparameter Optimization (HPO) - HPO 란 - ML Model 의 다양한 Hyperparameter 조합에 대해, 가장 좋은 퍼포먼스를 내 는 Hyperparameter 조합을 찾는 것 - 일반적인 HPO 과정 - Optuna, HyperOpt, Ray-Tune 등의 HPO 를 위한 Python 패키지를 활용하여 ML Model 학습 & 평가 로직을 반복하며 수행
  • 17. 2.2 Hyperparameter Optimization (HPO) Kubernetes 인프라를 활용한 HPO 를 위해서는 인프라를 추상화하거나 OR ML Model 학습 & 평가 로직을 패키징하거나
  • 18. 2.3 KFP 단위의 HPO 의 필요성 - 팀의 목표 - ML Engineer 가 Kubeflow Pipeline (KFP) 의 형태로 개발을 완료하면, 그 이 후의 모든 로직을 자동화 (HPO, CI, CD, CT) 소스 코드 모델 연구 및 개 발 담당자 모델 서비스화 담 당자
  • 19. 2.3 KFP 단위의 HPO 의 필요성 - 팀의 목표 - ML Engineer 가 Kubeflow Pipeline (KFP) 의 형태로 개발을 완료하면, 그 이 후의 모든 로직을 자동화 (HPO, CI, CD, CT) Kubeflow Pipeline 모델 연구 및 개 발 담당자 모델 서비스화 담 당자
  • 20. 2.3 KFP 단위의 HPO 의 필요성 Kubernetes 인프라를 활용한 HPO 를 위해서는 인프라를 추상화하거나 OR ML Model 학습 & 평가 로직을 패키징하거나
  • 21. 2.3 KFP 단위의 HPO 의 필요성 - 우리 팀의 목표 - ML Engineer 가 Kubeflow Pipeline (KFP) 의 형태로 개발을 완료하면, 그 이 후의 모든 로직을 자동화 (HPO, CI, CD, CT) - 따라서 Kubeflow Pipeline 단위의 HPO 가 필요 - KFP 용 코드와 HPO 용 코드의 파편화 지양
  • 22. 2.4 Katib - Kubeflow 의 Components 중 하나 - AutoML 을 위한 Kubernetes-native 프로젝트 - Hyperparameter Tuning, Early Stopping 및 Neural Architecture Search 지원 https://github.com/kubeflow/katib
  • 23. Upstream Katib Research Model Experiment KF Pipeline 구현 Train.py 분리 Docker Build & Push YAML 작성 후 kubectl apply HPO Result HPO Result MRX Katib kubectl Click, Click, Click 2.5 Katib 의 개선 포인트
  • 24. 2.5 Katib 의 개선 포인트 https://blog.kubeflow.org/katib
  • 25. 2.5 Katib 의 개선 포인트 KFP KFP KFP
  • 26. 2.6 마주한 이슈 1 - Istio-sidecar Handling 지원 - Upstream 의 Katib 에서는 Istio sidecar injection 과 함께 사용할 수 없어, Disable 하는 것을 안내하고 있음 https://www.kubeflow.org/docs/components/katib/hyperparameter/
  • 27. 2.6 마주한 이슈 1 - Istio-sidecar Handling 지원 - Upstream 의 Katib 에서는 Istio sidecar injection 과 함께 사용할 수 없어, Disable 하는 것 을 안내하고 있음 - 하지만, HPO 과정 중 kubeflow 관련 API 를 수행하기 위해서는 istio-proxy sidecar 가 반드시 enable 되어 있어야 함
  • 28. 2.6 마주한 이슈 1 - 원인 - Katib 에서 생성되는 Worker 에 istio sidecar injection 을 enable 하면 init-container 를 제외하고 총 3 개의 컨테이너로 구성 - metrics-logger-and-collector 컨테이너 - Hyperparameter Search 를 위한 로깅 - istio-proxy 컨테이너 - 인증/인가 - main 컨테이너 - 학습 및 평가 로직 - 이들 간의 시작 순서를 지정할 수 없는 문제 - https://github.com/kubernetes/kubernetes/issues/65502 - 이들 간의 종료 시점을 지정할 수 없는 문제 - https://github.com/istio/istio/issues/6324
  • 29. 2.6 마주한 이슈 1 - 해결 - Istio 에서는 이러한 문제를 지원하기 위한 2 가지 Endpoint 를 제공 - Readiness Endpoint & Terminate Endpoint - Metrics-logger-and-collector 컨테이너의 Lifecycle - 시작 시점에서 Istio 의 Readiness Endpoint 를 활용하여 Wait - 종료 시점에서 Istio 의 Terminate Endpoint 를 활용하여 강제 종료 - 업스트림 Kubeflow/Katib 에 Issue up - https://github.com/kubeflow/katib/issues/1638
  • 30. 2.7 마주한 이슈 2 Experiment 를 만들기 어렵고, 실수할 여지가 많다. UI 의 사용성이 떨어진다.
  • 31. 2.8 마주한 이슈 3 - 내부적으로만 빠르게 구현 후 사용 - Katib 에서도 비슷한 목적을 이루기 위한 다양한 기능들이 추가되고, 논의되는 중 - https://github.com/kubeflow/katib/pull/1605 - https://github.com/kubeflow/katib/issues/1682
  • 32. 3. 두 번째 고민 : HPO 가 끝난 이후
  • 33. 3.1 First Idea - Naive Best Model 을 저장하고, Best Model 로 서빙을 수행하고 싶다.
  • 34. 3.1 First Idea - Naive Best Model 을 저장하기 위해서, HPO 과정의 모든 모델을 저장한다.
  • 35. 3.2 Second Idea - PostHook https://github.com/kubeflow/katib/issues/1692
  • 36. 3.2 Second Idea - PostHook
  • 37. 3.2 Second Idea - PostHook
  • 38. 3.3 Third Idea - Event Driven Architecture A 의 상태가 변하면, B 라는 action 을 수행한다. = HPO 가 완료되면, Best Model 을 저장한다. = A/B Testing 이 완료되면, 승자 Model 을 배포한다. = 서빙 중인 Model 의 성능이 하락하면, 새로운 Config 로 재학습한다.
  • 39. This document is strictly confidential 39 Serving Machine Pipeline Monitoring Alarming Stream DB (Feature Store) Re-Training (with HP Tuning) A/B Testing Labeling CT Trigger 3.4 Continuous Training
  • 41. 4.1 요약 ➔ 어떤 고민이었는가 ➔ 왜 고민했는가 ➔ 무엇을, 어떻게, 왜 수정하였는 가 ➔ 그래서 더 좋아졌는가
  • 44. Q & A