MLOps: AI 개발 및 운영 프로세스
- AI 모델 배포, 운영 관리를 포함하는 실행 및 관리 프로세스를 최적화 하는 방법론
- ML의 개발과 운영을 자동화
- 모델의 지속적 배포, 모니터링, 버전 관리, 성능 추적 등을 효율적으로 관리
- MLOps는 머신 러닝과 DevOps의 결합으로, 머신 러닝 모델을 실시간으로 관리하고 최적화하는 방법론입니다.
MLOps의 주요 역할
- AI 모델 배포 및 운영 관리: 모델을 효율적으로 배포하고, 이를 지속적으로 모니터링하며 관리하는 과정
- 모델 훈련, 배포 자동화 (CI/CD: Continuous Integration/Continuous Deployment)
- 모델 버전, 데이터 관리
- 자동화된 ML 워크플로우: 모델 개발, 훈련, 배포, 운영을 자동화하여 효율적인 관리를 실현합니다.
- 모델 성능 추적 및 재훈련: 모델의 성능을 지속적으로 추적하고, 환경 변화에 맞게 모델을 재훈련합니다.
- 배포 모델 성능 모니터링, 실시간 성능 분석
MLOps가 속하는 분야
MLOps는 NLP, Computer Vision, Prompt Engineering 등 여러 AI 분야에 적용될 수 있는 통합적인 개념입니다. 머신 러닝 모델이 다양한 분야에서 운영 환경에 안정적으로 배포되고 최적화될 수 있도록 지원합니다.
- 머신 러닝 (ML)
- MLOps는 머신 러닝 모델의 개발, 훈련, 배포, 모니터링, 유지 관리 전반을 관리합니다.
- 모델을 운영 환경에 배포하고 성능을 추적하며, 자동화된 재훈련을 통해 모델을 최적화하는 역할을 합니다.
- DevOps
- DevOps의 원칙을 따르며, 개발(Dev)과 운영(Ops) 간의 협업을 강화합니다.
- MLOps는 DevOps의 CI/CD(지속적 통합 및 배포) 관행을 머신 러닝 모델에 적용하여, 모델 배포와 운영을 자동화합니다.
MLOps의 주요 요소
- 자동화된 모델 훈련 및 배포: 모델 훈련, 평가, 선택, 배포 과정을 자동화하여 지속적인 업데이트와 개선을 가능하게 합니다.
- 모델 버전 관리: 모델 버전과 그 관련 데이터를 추적하고 관리하여 모델이 어떻게 발전했는지를 명확히 알 수 있습니다.
- 모델 모니터링: 배포된 모델의 성능을 지속적으로 모니터링하고, 변화하는 데이터나 환경에 맞게 모델을 재훈련합니다.
- CI/CD 파이프라인: 머신 러닝 모델을 지속적으로 통합하고 배포하는 자동화된 파이프라인을 구현하여, 개발과 운영을 효율적으로 관리합니다.
MLOps의 역할
- 모델 개발 및 배포: 모델을 효율적으로 훈련하고 배포하는 과정 자동화.
- 버전 관리: 모델의 버전과 데이터를 효율적으로 관리.
- 모델 성능 모니터링 및 추적: 배포된 모델의 성능을 지속적으로 추적하고, 실시간 성능 분석을 통해 최적화.
- CI/CD 자동화: 지속적인 통합과 배포 자동화로 개발과 운영 프로세스를 원활하게 합니다.
DevOps vs MLOps
DevOps MLOps
일반적으로 코드 개발 -> 운영 배포 | 개발전략/요구사항 정의 -> ML 설계/개발 -> CODE 개발 -> 시스템 운영 |
자동화된 시스템 구축 | 전체적인 프로세스는 DevOps와 유사하지만, 모델 훈련과 데이터가 필수 |
- ML 생애주기에서 모델 훈련을 위한 추가적인 단계 필요 | |
- MLOps는 데이터와 모델을 함께 다룸• DevOps: SW code만 존재 | |
• MLOps: 모델 생생 혹은 모델 검증 위한 Validation DB 필요 |
MLOps의 장점과 목적
- 목표: 성공적으로 빠르고 안정적으로 인공지능 프로젝트를 수행하기 위해 모델 배포와 운영을 최적화합니다.
- 자동화된 모델 관리: 다양한 알고리즘 성능 평가와 모델 생성 실험을 자동화하여 최적의 모델을 빠르게 도출할 수 있습니다.
- 모델 성능 예측: 다양한 모델 생성 실험을 자동화하여, 최적의 모델을 빠르게 생성하고 그 성능을 예측할 수 있습니다.
ML 생애주기
- 데이터 준비
- 문제 정의, 데이터 정의 및 가설 수립: ML 프로젝트의 첫 번째 단계로, 데이터와 문제를 정의하고 분석 목적을 설정합니다.
- 데이터 이동 및 연계: 데이터셋 공유 및 재사용을 통해 효율적으로 데이터를 관리합니다.
- 데이터 탐색 및 가공: 데이터를 탐색하고 처리하여 모델 학습에 적합한 형태로 준비합니다.
- 확보한 데이터 형태 확인: 적절한 형태인지, 통계분포는 어떤지 등을 확인하는 과정
- 데이터셋 및 주피터 노트북에서 탐색(DEMO)
- 확보한 데이터셋을 탐색하는 과정으로 일반적으로 python, R 등의 tool을 이용
- 데이터 레이블링(DEMO)
- Feature Importance 탐색(DEMO)
- 모델 해석
- 모델 검증: 모델의 성능을 평가하고, 이를 인류에게 안전하게 적용할 수 있도록 해석하는 과정이 중요합니다.
- Human-in-loop: 모델을 해석할 때 사람의 판단이 필요한 경우도 있으며, 이는 모델의 정확성을 높이는 데 중요한 역할을 합니다.
- 성능이 괜찮은 거 같은데 -> 해석이 잘못되면, 인류에게 치명적인 오류가 발생할 수도
- 단순히 모델의 Accuracy, f-1 score 가 높다고 좋은 모델이 아니고, 그 모델을 사람이 해석할 수 있어야 한다. 이를 human-in-loop 이라고도 하며, 특정한 경우에서는 사람이 직접 판단 및 해석이 필요 할 수 있다.
MLOps의 중요성
MLOps는 모델의 훈련, 배포, 모니터링, 성능 추적 등을 자동화하여 머신 러닝 프로젝트를 효율적이고 안정적으로 수행할 수 있게 도와줍니다. 또한, 모델을 실시간으로 최적화하고 운영 환경에 안전하게 배포하는 데 필수적인 역할을 합니다.
자동화된 MLOps
- 각 input에 따라 여러 알고리즘들의 성능이 평가되고, 생성된 모델 중 가장 좋은 모델이 도출
- 모델생성 위한 입력값 정의에 따라 모델의 성능이 어떻게 될 것이다라고 예측할 수 있도록 모델 파이프라인을 정의
- 다양한 모델 생성 실험을 모두 하지 않아도 되어, 최적의 모델을 빠르게 생성
- 다양한 모델 생성은 user의 input data ( dataset, algorithm, parameter 등) 입력하면, 그에 따라 자동 모델 성능이 예측
추론코드가 내뱉는거
모델은 학습코드가 왔다갔다
결과물, 마지막 코드는 추론코드
- 이걸 자동화한게 mlops (학습으로 작업,
비즈니스에선 쪼갬
- 이미지 넣고 학습코드로 반복 (input - output) - > ‘고양이다’
- 추론 코드로 95%로 그 이상은 고양이이다 하면 다시 학습코드로 보내서 반복 (파이프라인 자동화)