오늘날 머신러닝(ML) 워크플로와 배포를 자동화하고 간소화하는 관행인 MLOps(Machine Learning Operations)의 중요성이 날로 커지고 있습니다. 이제 AI가 널리 쓰이면서 ML 프로세스를 효과적으로 관리하는 구조가 필요한데요. MLOps는 DevOps 원칙을 ML 프로세스에 적용해 이러한 구조를 확립하는 데 도움이 되죠. MLOps를 사용하면 ML 프로젝트 협업을 개선하고, ML 모델 개발과 프로덕션 배포 속도를 높일 수 있고요. 모델 성능도 향상할 수 있습니다.

종합 DevSecOps 플랫폼인 GitLab은 이러한 흐름에 발맞춰 최근 MLOps 기능을 강화했는데요. 얼마 전 GA(Generally Available) 기능이 된 Model registry가 대표적입니다. Model registry는 모델과 메타데이터를 저장하고 관리하는 데이터베이스인데요. 이는 모델을 공유하고 협업하며, 프로덕션 환경에서 여러 모델을 관리하고 배포하도록 돕죠. 아울러 GitLab은 모델 후보 모음인 Machine learning model experiments도 지원하는데요. 이 기능은 여러 모델 후보와 각 메트릭, 파라미터, 메타데이터, 로그 아티팩트를 확인하는 데 유용합니다.

이 글에서는 MLOps 개념과 구성 요소, MLOps 필요성과 플랫폼 역할을 살펴보고요. GitLab의 MLOps 기능인 Model registry와 Machine learning model experiments를 알아보겠습니다.

MLOps 개념과 구성 요소

MLOps 라이프사이클(Radiant의 “[The Fundamentals of MLOps – The Enabler of Quality Outcomes in Production Environments](https://www.radiant.digital/the-fundamentals-of-mlops-the-enabler-of-quality-outcomes-in-production-environments/)” 참고해 제작) | 인포그랩 GitLab
MLOps 라이프사이클(Radiant의 “The Fundamentals of MLOps – The Enabler of Quality Outcomes in Production Environments” 참고해 제작)

MLOps(Machine Learning Operations)는 개발부터 배포, 유지관리까지 ML 모델의 라이프사이클을 관리하고 자동화하는 관행입니다. 이는 데이터 관리, 모델 개발, 학습, 테스트, 배포, 모니터링 작업을 포함하죠. DevOps가 소프트웨어 개발과 IT 운영을 통합했듯, MLOps는 ML 시스템의 개발과 운영을 통합합니다.

MLOps는 다음 핵심 단계로 구성되는데요. Google Cloud에 따르면, 세부 내용은 아래와 같습니다.

  • 탐색적 데이터 분석(EDA, Exploratory Data Analysis): 데이터를 시각화해 패턴과 문제를 확인합니다. 중복되거나 잘못된 데이터는 정리합니다.
  • 데이터 준비, 특성 추출: 원시 데이터를 모델 학습에 적합하도록 정리하고 변환하며 형식을 지정합니다. 아울러 원시 데이터에서 모델 학습과 관련 있고, 유용한 새로운 특성을 만듭니다.
  • 모델 학습, 미세 조정: 특정 문제와 데이터셋에 적절한 ML 알고리즘을 선택합니다. 또 학습 데이터로 모델을 학습시키며, 모델의 하이퍼파라미터를 조정해 성능을 높입니다. 테스트 데이터를 사용해 모델 성능을 평가합니다.
  • 모델 검토, 거버넌스: 모델 성능, 품질 표준 충족 여부를 확인합니다. 아울러 모델 편향과 차별 표현 여부, 설명 가능성을 검토합니다. 모델 보안도 확인합니다.
  • 모델 추론, 서빙: 모델을 프로덕션 환경에 배포합니다. 애플리케이션과 최종 사용자가 실제 사용하도록 모델을 제공합니다.
  • 모델 모니터링: 모델 성능을 평가하고, 데이터나 환경 변화에 따른 모델 성능 저하 시점을 탐지합니다. 모델 성능에 영향을 미치는 문제를 확인합니다.
  • 자동화된 모델 재학습: 모델 성능이 떨어지거나, 새 데이터가 유입되면 모델을 재학습시킵니다.

MLOps 필요성과 플랫폼 역할

MLOps는 ML 모델 배포 프로세스를 간소화하고, 시장 출시 시간을 단축하는 데 도움이 됩니다. 이는 ML 애플리케이션의 안정성과 성능을 향상하는 데도 기여하죠.

클라우드/DevOps 소프트웨어 엔지니어인 Gufran Yeşilyurt와 GitLab의 솔루션 아키텍트인 Péter Bozsó는 MLOps의 필요성을 크게 두 가지로 설명하는데요.

  1. MLOps는 데이터 전처리, 모델 학습, 배포 등 여러 단계에 자동화를 도입하죠. 이로써 수동 오류를 줄이고, 효율성을 높입니다.
  2. MLOps는 기초 데이터 변경에 따른 모델 성능 저하 문제를 모니터링하고 관리하는 구조화된 접근 방식을 제공하는데요. 그 결과, 모델이 정확하고 효과적으로 유지되는 데 도움이 됩니다.

MLOps 플랫폼을 사용하면 MLOps를 더 원활히 수행할 수 있습니다. MLOps 플랫폼은 반복 데이터 탐색, 실시간 공동 작업 기능 등을 지원하고요. 이로써 데이터 준비, 모델 관리, 배포, 모니터링 등 MLOps 작업을 편리하게 수행하도록 돕습니다. 데이터 사이언티스트나 ML 엔지니어, 소프트웨어 엔지니어 등은 MLOps 플랫폼으로 원만하게 협업할 수 있고요.

글로벌 AI 기업 Katonic AI의 기술팀 책임자인 Subhrajit Mohanty는 MLOps 플랫폼의 장점을 이렇게 설명하는데요.

  1. 사용자는 기본 인프라 걱정 없이 모델을 빠르고 쉽게 배포할 수 있고요. 이로써 더 나은 모델을 구축하고, 비즈니스를 개선하는 등 중요한 일에 집중할 수 있습니다.
  2. MLOps 플랫폼 내 자동화된 워크플로와 협업 도구로 더 짧은 시간 동안 더 많이 일할 수 있고요.
  3. MLOps 플랫폼은 비즈니스가 성장해 데이터와 요구 사항이 증가할 때, MLOps를 유연하게 확장하도록 지원하죠. 사용자는 MLOps 플랫폼으로 더 많은 리소스를 쉽게 추가해 늘어나는 부하를 효과적으로 처리할 수 있습니다.

GitLab의 MLOps 기능

GitLab은 DevSecOps 플랫폼이자 MLOps 플랫폼으로도 유용한 기능이 많습니다. 예를 들어, GitLab에서는 버전 제어로 코드와 데이터의 변경 사항을 추적할 수 있고요. CI/CD 파이프라인으로 ML 모델의 테스트와 배포를 자동화할 수 있죠. 그 결과, 모델 배포 프로세스의 속도를 높이고, 배포된 모델의 성능과 안정성도 잘 관리할 수 있습니다.

이 밖에도 GitLab은 MLOps 기능을 지속적으로 강화하는데요. Model registry와 Machine learning model experiments가 그 예입니다. 두 기능을 자세히 살펴보겠습니다.

Model registry

Model registry는 파라미터, 성능 메트릭, 아티팩트, 로그 등 생성과 관련된 모든 메타데이터와 함께 ML 모델을 저장하고, 관리하는 데이터베이스입니다. 이는 GitLab의 Package Registry를 사용해 구현했죠.

Model registry를 사용하면 모델 버전을 추적하고, 아티팩트와 메타데이터를 저장하며, 모델 카드에 종합 문서를 관리할 수 있습니다. Model registry는 MLflow* Client와 기본적으로 작동하며, CI/CD 파이프라인에 직접 연결돼 자동화된 모델 배포와 테스트도 지원하죠. 이 기능은 데이터 사이언티스트가 모델을 공유하고 협업하며, 조직이 프로덕션 환경에서 많은 모델을 관리하고 배포하는 데 도움이 됩니다.

Model registry는 GitLab Project > Deploy > Model registry에서 관리할 수 있습니다.

GitLab Model registry 관리 화면 | 인포그랩 GitLab
GitLab Model registry 관리 화면

모델 버전, 성능, 입출력 값, 메타데이터 등을 GitLab UI와 MLflow Client 라이브러리로 관리할 수 있습니다.

MLflow Client 활용 화면 | 인포그랩 GitLab
MLflow Client 활용 화면

*MLflow: ML 실험 추적을 위한 인기 오픈 소스 솔루션. 다양한 모델 버전과 해당 메타데이터를 기록하는 Client 제공

Machine learning model experiments

Machine learning model experiments는 ML 모델 후보 모음입니다. 이는 기간이 길거나 짧을 수 있으며, 동일한 메트릭으로 측정된 유사한 파라미터 셋이 있는 모델 후보*를 보유하죠.

Machine learning model experiments에서는 MLflow Client 호환성을 통해 실험을 추적**할 수 있는데요. 이때 GitLab을 MLflow Client의 백엔드로 활용할 수 있습니다. 아울러 Machine learning model experiments에서는 모델 후보를 탐색할 수 있는데요. 기록된 모든 모델 후보를 메트릭, 파라미터, 메타데이터와 함께 볼 수 있죠. 또 로그 아티팩트를 확인할 수 있고요 Merge request, job, 파이프라인을 트리거한 사용자 등 CI 정보도 볼 수 있습니다.

GitLab Machine learning model experiments로 확인한 모델 후보 정보 | 인포그랩 GitLab
GitLab Machine learning model experiments로 확인한 모델 후보 정보

Machine learning model experiments는 GitLab Project > Analyze > Model experiments에서 관리할 수 있습니다.

GitLab Machine learning model experiments 관리 화면 | 인포그랩 GitLab
GitLab Machine learning model experiments 관리 화면

*모델 후보: ML 모델 학습의 변형. 최종적으로 모델 버전으로 승격될 수 있음

**실험 추적: 파라미터, 메트릭과 같은 다양한 실험과 구성 요소를 모두 관리하는 프로세스. 즉, 파라미터, 메트릭, 아티팩트를 GitLab에 직접 기록하고, 나중에 액세스할 수 있음

맺음말

지금까지 MLOps 개념과 구성 요소, MLOps 필요성과 플랫폼 역할을 살펴보고요. GitLab의 MLOps 기능을 알아봤습니다. 특히 GitLab에서 DevSecOps뿐만 아니라 MLOps도 효과적으로 수행할 수 있다는 점이 인상적이었는데요. 이제 GitLab으로 코드와 데이터의 변경 사항을 추적하는 건 물론이고요. ML 모델의 성능도 안정적으로 관리할 수 있습니다. 또 모델 테스트와 배포를 자동화해 MLOps 프로세스를 간소화할 수 있죠. 그 결과, 모델 성능 향상과 MLOps의 생산성 극대화 효과를 기대할 수 있습니다. 여러분도 GitLab으로 MLOps를 경험하며, ML 프로젝트를 한 단계 더 업그레이드하세요.

참고 자료

  1. “MLOps란 무엇인가요?”, Google Cloud, https://cloud.google.com/discover/what-is-mlops?hl=ko#basic-components-of-mlops
  2. “The Fundamentals of MLOps – The Enabler of Quality Outcomes in Production Environments”, Radiant, https://www.radiant.digital/the-fundamentals-of-mlops-the-enabler-of-quality-outcomes-in-production-environments/
  3. “MLOps(기계 학습 운영)”, Databricks, https://www.databricks.com/kr/glossary/mlops
  4. Gufran Yeşilyurt·Péter Bozsó, “Build an ML app pipeline with GitLab Model Registry using MLflow”, GitLab, 2024.9.17, https://about.gitlab.com/blog/2024/09/17/build-an-ml-app-pipeline-with-gitlab-model-registry-using-mlflow/
  5. Subhrajit Mohanty, “8 Reasons you need an MLOps Platform”, Katonic, 2022.11.26, https://blog.katonic.ai/8-reasons-you-need-an-mlops-platform/
  6. “Model registry”, GitLab, https://docs.gitlab.com/ee/user/project/ml/model_registry/
  7. “ML Model Registry”, GitLab, https://handbook.gitlab.com/handbook/engineering/development/incubation/mlops/ml_model_registry/
  8. “Model Registry Beta”, GitLab, https://gitlab.com/groups/gitlab-org/-/epics/9423
  9. Magdalena Frankiewicz, “GitLab 17.6 Release”, GitLab, 2024.11.21, https://about.gitlab.com/releases/2024/11/21/gitlab-17-6-released/
  10. “Machine learning model experiments”, GitLab, https://docs.gitlab.com/ee/user/project/ml/experiment_tracking/#machine-learning-model-experiments
  11. “Machine Learning Experiment Tracking”, GitLab, https://handbook.gitlab.com/handbook/engineering/development/incubation/mlops/ml_experiment_tracking/
  12. Eduardo Bonet, “Track ML model experiments with new GitLab MLFlow integration”, GitLab, 2023.5.11, https://about.gitlab.com/blog/2023/05/11/track-machine-learning-model-experiments/
  13. Goku Mohandas, “Experiment Tracking”, Made With ML, https://madewithml.com/courses/mlops/experiment-tracking/

완벽한 GitLab 구축부터 성공적인 DevOps 도입까지! 인포그랩과 DevOps 라이프사이클을 함께하세요.