top of page

MLOPs를 마스터하는 7가지 단계

AI의 발전으로 다양한 기업들이 LLM (large language model)을 튜닝하여 AI를 도입 하고 있습니다. 폭발적인 수요로 인해 MLOps 엔지니어링은 아주 중요하게 자리잡고 있습니다. 기업들은 데이터 사이언티스트나 머신러닝 엔지니어만을 고용하는 것 보다 클라우드 환경에서 모델의 학습, 평가, 버저닝, 배포와 모니터링을 자동화 및 스트림라인화 할 수 있는 인재의 고용을 더 선호합니다.


이 포스팅에서는 MLOps가 되기 위한 7가지 필요한 단계들을 환경 구축 부터 CI/CD를 거치고 배포, 모니터링까지 전반적으로 간단하게 알아보겠습니다.

1: 로컬과 클라우드 환경 구축


머신러닝 (또는 기계습득) 모델의 학습과 평가를 위하여 우선에는 로컬과 클라우드 환경을 구축 할 필요가 있습니다. 이 작업은 도커 (Docker)를 이용한 머신러닝 파이프라인, 모델 그리고 프레임워크의 컨테이너화가 필요합니다. 그 후에는 쿠버네티스 (Kubernetes)를 이용하여 컨테이너화 된 애플리케이션의 배포 자동화, 스케일링, 그리고 관리하는 법을 배우게 됩니다.


이 첫번째 단계를 거치고 나면 AWS, GCP 나 Azure 같은 클라우드 환경을 Terraform 을 이용하여 클라우드 인프라의 리소스를 코드를 이용하여 자동화 관리를 하게 됩니다.


주의점: 도커 (Docker), 깃 (Git) 이외에 다른 커맨드라인 툴들을 습득하고 기본지식을 이해하고 있는 것은 아주 중요합니다.

2: 실험 트래킹, 버전과 모델 관리

MLflow를 이용하여 머신러닝 실험을 트레킹하고 DVC를 이용하여 모델과 데이터 버전 관리, 그리고 Git을 이용하여 코드 버전 관리 방법을 배우게 됩니다. MLflow는 파라미터, 결과 아웃풋 파일, 모델 관리의 로깅에 이용이 됩니다.


이런 작업은 문서화가 잘 되어 있고, 감사와 확장이 가능한 ML Workflow를 위해 꼭 필요하고 ML 프로젝트 효율성의 극대화, 성공에 기여를 합니다.


아래의 툴들이 있습니다.


3: 오케스트레이션 (Orchestration)과 ML 파이프라인 (Pipelines)


세번째는 Apache Airflow나 Prefect등의 툴을 이용한 오케스트레이션을 배우면서 ML workflow의 자동화와 스케줄을 하게 됩니다. 이 작업은 데이터의 프리 프로세싱, 모델 학습, 평가 등의 데이터에서 배포 까지의 프로세스를 자동화와 효율적인 파이프라인으로 구축하는 단계입니다.


이런 툴들은 ML 플로우를 모듈화를 하고 다른 프로젝트에도 재사용이 가능하게 하여 시간 단축과 오류를 줄일 수 있습니다.


아래와 같은 툴들이 존재합니다:


4: 머신러닝용의 CI/CD


ML Workflow에 Continuous Integration과 Continuous Deployment (CI/CD)의 도입을 하는 단계입니다. Jenkins, GitLab CI, 그리고 GitHub Actions 같은 툴은 ML 모델의 효율적이고 안전한 테스팅과 배포를 자동화하여 줍니다. 데이터, 모델과 코드의 테스트를 하고 문제점을 미리 찾아 고품질의 표준을 유지하는 것이 목표입니다.

5: 모델 공급과 배포


모델을 공급하는 작업은 머신러닝의 프로덕션 환경에서 아주 중요한 업무입니다. BentoML, Kybeflow, Ray Serve, 또는 TFServing과 같은 프레임워크를 도입하면 모델을 마이크로 서비스화하여 여러 애플리케이션이나 서비스가 사용할 수 있게 됩니다. 이런 프레임워크는 모델의 추론을 로컬 환경에서 테스트하고 안전하고 효율적으로 모델을 프로덕션 환경에 배포할 수 있는 기능들을 제공합니다.


다음과 같은 툴들이 존재합니다:


6: 모델 모니터링


다음은 모델의 성능을 트래킹하고 시간의 흐름에 데이터의 변화를 디텍트하는 모니터링 작업입니다. Evidently, Fiddler나 커스텀 코드로 실시간 모니터링과 알림을 구현할 수 있습니다. 모니터링 프레임워크를 사용하면 성능이 저하된 모델이 발견될 시에 CI/CD를 트리거 할 수 있는 자동화된 머신러닝의 파이프라인을 구현하게 됩니다. 그리고 새로운 데이터를 이용하여 재학습을 하여 프로덕션으로 최신 모델을 배포하게 되죠.


7: 프로젝트


마지막 단계입니다. 위에서 배운것을 이용하여 다음을 이용하여 전체적인 파이프라인을 구축해보는 자신의 시험같은 프로젝트입니다.


  • 관심가는 데이터를 찾는다

  • 그 데이터를 이용하여 모델을 학습하고 실험을 트래킹한다

  • 모델 학습 파이프라인을 구축하고 GitHub Actions를 사용하여 자동화를 구현한다

  • 배치형식, 웹서비스 또는 스트리밍으로 모델을 배포한다

  • 모델의 성능을 모니터한다


다음의 10개의 깃헙 리포지토리가 도움이 됩니다:

MLOps examples by Microsoft https://github.com/microsoft/MLOps
MLOps Course by Goku Mohandas https://github.com/GokuMohandas/mlops-course


참고:


Comments


pngegg (11)_result.webp

<Raank:랑크 /> 구독 하기 : Subscribe

감사합니다! : Thanks for submitting!

bottom of page