MLOps
*이번 포스팅에서는 MLOps (Machine Learning Operations)에 관한 내용을 공유해보려고 합니다.
MLOps란?
MLOps라는 용어는 2015년에 Google에서 처음 등장한 용어 입니다.
- ‘Hidden Technical Debt in Machine Learning Systems’ 논문에서 최초로 등장
AI 시장 확대로 사진, 동영상, 텍스트 등 비정형 데이터 양이 증가하며 데이터 관리/활용 차원에서 MLOps의 중요성 증대되고 있습니다.
- MLOps의 시장규모는 ’25년 약 40억 달러로 전망 (구글 개발자 컨퍼런스 I/O, 가트너, ’21)
개발과 운영을 따로 나누지 않고 개발의 생산성과 안정성을 최적화하기 위한 문화이자 방법론이 DevOps이며, 이를 ML 시스템에 적용한 것이 MLOps 입니다.
MLOps의 목표 및 조건
MLOps 목표는 다음과 같습니다.
- ML모델 개발과 ML운영을 통합하여 비즈니스 가치를 창출하는 것
- 모델링에 집중할 수 있도록 안정된 인프라를 만들고 자동으로 운영하는 것
- 빠른 시간에 적은 Risk로 프로덕션까지 진행할 수 있도록 기술적 마찰을 줄이는 것
MLOps 조건 (DevOps와 비교하였을 때 지속적 학습(CT) 추가)
1) 지속적 학습 (CT, Continuous Training) :
- 실시간 파이프라인 트리거 기반으로 새로운 데이터를 사용하여 다시 학습하는 것
- 새로운 데이터를 통해 학습을 하므로 Data and Model Validation이 필수적 *Data Validation 데이터 검증에 실패하면, 신규 모델의 배포를 중지 해야함 (Data schema skews, Data values skews)image.png *Model Validation 모델이 새로운 데이터로 재학습을 마치고, 운영 환경에 반영되기 전에 평가되고 검증되어야 함
2) 지속적 통합 (CI, Continuous Integration) :
- 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트 되어 공유 리포지토리에 통합되는 것
3) 지속적 배포 / 제공 (CD, Continuous Deployment / Delivery) :
- 배포 : 운영팀이 리포지토리에서 애플리케이션을 실시간 프로덕션 환경으로 배포하는 것
- 제공 : 학습 및 검증된 모델을 온라인 예측용 서비스로 모델을 제공하는 것
MLOps Level 0 : 수동 프로세스
ML 모델을 빌드하고 배포하는 과정은 완전히 수동으로 이루어진다. 이는 컨텐츠 Level 0으로 간주한다.
특징
- 수동 프로세스 : 데이터 추출/분석, 모델 학습/검증을 포함한 모든 단계가 수동적
- ML과 운영의 분리 : 모델을 만드는 데이터 과학자와 모델을 예측 서비스로 제공하는 엔지니어를 분리
- 드문 배포 : 새 모델 버전의 배포가 뜨문뜨문 비정기적으로 발생
- CI / CD 없음 : 모델의 변경이 적고 배포가 자주 없으므로 CI/CD의 불필요
- 모니터링 부재 : 로그나 모델의 예측 성능 등을 모니터링 불가, 모델의 성능이 저하 및 이상 동작 감지 불가
MLOps Level 1 : ML 파이프라인 자동화
Level 1은 머신러닝 모델의 지속적인 훈련(CT)을 목표로 하며 기계 학습 파이프라인이 자동화된다.
특징
- 빠른 실험 : 실험을 빠르게 반복하고, 전체 파이프라인을 프로덕션으로 빠르게 배포
- 파이프라인 배포 : 개발 환경에서 쓰여진 파이프라인이 운영 환경에도 사용
- 지속적인 학습(CT) : 새로운 데이터를 사용하여 프로덕션 모델이 자동으로 학습
- 지속적인 제공(CD) : 새로운 데이터로 학습하고 검증된 모델을 지속적으로 제공
Level 0 과의 차이점 (추가 구성요소)
- 데이터 및 모델 검증 : 새로운 데이터를 통해 새로운 모델을 지속적으로 학습하기 위한 필수 단계
- Feature Store : 사용 가능한 모든 feature들을 모아둔 저장소 (최신화 된 데이터)
- 메타데이터 관리 : ML 파이프라인의 실행 정보, 데이터 및 아티팩트의 정보저장
- ML 파이프라인 트리거 : 모델을 재학습 시키는 파이프라인의 자동화
MLOps Level 2 : CI/CD 파이프라인 자동화
이것으로 포스팅을 마치겠습니다.
Level 2는 CI / CD면에서 집중적으로 강화된 시스템을 MLOps Level 2로 구분한다.
Level 1 과의 차이점
- 지속적인 통합 (CI) : 리포지토리로 코드가 커밋이나 푸시 될 때 파이프라인과 구성요소가 빌드, 테스트, 패키지 된다.
- 지속적인 배포 / 제공 (CD) : 배포 전 모델과 인프라 호환성 확인, 서비스 API 호출 테스트
- 파이프라인 오케스트레이션 : 파이프라인의 자동화된 설정, 관리, 조정
이렇게 MLOps의 기본 개념과 MLOps를 Level에 따라 단계별로 알아보았습니다.
참고 논문 및 자료