Kubeflow 통해 더 나은 AI모델 서빙과 MLOps 실현 (DEVIEW 2021 정리)
출처: https://tv.naver.com/v/23650093
AiSuite : Kubeflow를 통해 더 나은 AI 모델 서빙과 MLOps 실현하기
NAVER D2 | 한완규/박정욱 - AiSuite : Kubeflow를 통해 더 나은 AI 모델 서빙과 MLOps 실현하기
tv.naver.com
Hadoop은 빅데이터 처리를 하기 위한 플랫폼으로, 아래와 같은 단점이 있다
- 컨테이너 오케스트레이션의 제약 : AI서비스를 관리하기에 배포, 스케일링, 모니터링 등 컨테이너 관리기능 한계
- 컨테이너 네트워킹을 위한 추가개발 필요: 오버레이 네트워크 지원을 위해 Flannel및 DNS직접 커스터마이징해야함.
- GPU스케줄링한계: Hadoop 내 GPU지원 한계로, GPU스케줄러 직접개발해서 사용해야 함.
서빙 플랫폼 운영시 한계점으로는,
- 블루/그린 배포로 인한 한계(급격한 캐시성능저하, 리소스 2배필요.)
- 오토스케일러가 없어서 요청 급격히 증가했을 때 수동대응이 필요했다.
- ML파이프라인 제공이 어렵다. 인프라관리팀이 아니라 유저가 추가하기 어려웠다.
-> Kubernetes, Kubeflow 를 도입하자!
Kubeflow
- Machine learning toolkit for Kubernetes
- 학습, 하이퍼파라미터 튜닝, 서빙, 파이프라인 등 지원
장점
- 다양한 ML framework 지원(Tensorflow, XGBoost, NVIDIA Triton Inference Server등)
- Kubeflow 대쉬보드 지원
- k8s 컨테이너 오케스트레이션 지원
- GPU지원 용이
- 다양한 k8s 에코시스템
KFServing
AiSP대비 장점
- 서버사이드 로드밸런싱으로 균등한 부하 분산. gRPC, REST API 통한 단일 진입점 제공으로 어떤 프로그래밍 언어든 사용 가능.
Kubeflow로 MLOps 실현
MLOps: ML + Operations , 머신러닝 관련 프로세스 자동화로 신속하고 지속적으로 제공하기위한 개념.
MLOps 수준0
- D.S는 데이터준비, 학습, 평가 수동으로 하고 플랫폼 운영팀에 전달해 배포 따로 했어야 했다.
MLOps 수준1
- 데이터준비, 학습, 평가가 파이프라인 자동화됨. 배포도 자동화. 대신 파이프라인 소스는 수동관리.
- Kubeflow도입으로 많은 부분이 지원됨.
MLOps 수준2 -> CI/CD 파이프라인 자동화
- 파이프라인 소스 관리, 모델 단위 테스트, 배포안정성 테스트 모두 자동화
Kubeflow 컴포넌트
Experiment Phase
Fairing: 모델 학습 시 도커 이미지 빌드 및 배포 쉽게 하게 도와주는 툴
Katib: 하이퍼파라미터 튜닝뿐아니라 뉴럴아키텍처 search도 지원하는 툴
Productioni Phase
- 데이터 변환, 모델 학습, 학습된모델 서빙(KFServing), 성능 검증
Hadoop기반 기존 플랫폼 스토리지 + AIWuite(Kubeflow)
ML파이프라인 예시
데이터 준비(Cuve, Cquery) -> 데이터전처리(C3S Spark; PySpark) ->HDFS PVC 생성 ->모델학습(TFJob) -> 모델서빙(KFServing)