궁금한게 많은 개발자 노트

[ MLOps ] MLOps란? 본문

DevOps

[ MLOps ] MLOps란?

궁금한게 많은 개발자 2023. 11. 23. 10:33

MLOps란 무엇인가에 정리해보려 합니다.

최근 AI 활용 기술이 많아지면서 데이터 수집과 관리, 머신러닝 모델 개발 및 운영 등의 서비스를 효율적으로 제공하기 위해 MLOps가 생겨났습니다. 실제로 인공지능 산업에서는 데이터를 관리하고 머신러닝 시스템을 개발하는 것뿐만 아니라 안정적인 운영 서비스까지 유저에게 제공해야 하는데요. 개발팀과 운영팀으로 개발과 운영 업무가 나뉘어 진행되면 서로 업무에 대한 이해가 줄어들어 비효율적이기 때문에 이를 해결하고자 MLOps 개념이 등장하였습니다.

 

머신 러닝의 수명 주기는 데이터 수집, 데이터 준비, 모델 훈련, 모델 조정, 모델 배포, 모델 모니터링 등과 같은 복잡한 구성요소로 이루어져 있으며 데이터 엔지니어링부터 데이터 사이언스, ML 엔지니어링, DevOps와 같이 여러 팀에 걸친 협업과 전달이 필요한 일이기도 합니다. 이에 따라 이 모든 프로세스를 동기화하고 협력이 잘 이루어지는 상태를 유지하려면 MLOps가 필요하게 되었습니다.

 

 

 

MLOps란 머신 러닝(Machine Learning)과 운영(Operations)을 합친 용어로 프로덕션 환경에서 머신 러닝 모델이 지속적이고 안정적으로 배포되도록 유지, 관리, 모니터링 해주는 것입니다. MLOps는 머신러닝 모델 개발과 운영을 통합해 ML시스템을 자동으로 유지, 관리, 운영합니다. MLOps의 대상은 머신 러닝 모델을 개발하는 것뿐만 아니라 데이터를 수집하고 분석하는 단계와 학습하여 배포하는 과정, 즉 전체 AI 생애 주기가 포함됩니다.

 

MLOps는 협업 기능이며 머신 러닝(ML)과 소프트웨어 개발 및 운영(DevOps), 데이터 엔지니어링(DE)이 모두 포함됩니다. 즉 ML, DevOps, DE 세 기술의 교차 지점을 MLOps라고 볼 수 있습니다.

 

 

 

MLOps의 필요성과 장점

MLOps란 AI 솔루션 제작을 용이하게 하고 데이터 품질을 유지하는 데 유용한 접근법으로 머신 러닝 엔지니어와 데이터 사이언티스트는 MLOps 방식을 채택하고 협업을 통해 모델 개발과 배포 속도를 높일 수 있으며, MLOps에는 지속적인 통합, 배포, 학습 사이클을 구현해야 합니다.

해당 사이클에서는 위에서 언급했듯 머신 러닝 수명 주기에는 데이터 수집과 준비, 모델 훈련, 조정, 배포, 모니터링과 같은 복잡한 요소가 많이 모여있기 때문에 이 모든 프로세스를 동기화하고 협력이 이루어지려면 엄격한 운영 원칙이 적용되어야 하며, 머신 러닝 수명 주기를 실험하고, 반복을 통해 지속적으로 개선하는 과정이 포함되어야 합니다.

 

장점으로는 효율성, 확정성, 안정성이 대표적입니다. 

효율성 : 시스템 개발과 운영을 통합해 개발 시간을 단축합니다. MLOps를 통해 양질의 머신 러닝 모델을 제공하며 배포와 생산 속도를 향상할 수 있고, 효율적인 관리를 통해 여러 팀에서 긴밀하게 협업할 수 있고 DevOps 팀, 개발팀, 운영팀과의 갈등을 줄여 릴리즈 속도를 향상할 수 있습니다.

확장성 : 수천 개의 모델을 지속적으로 관리하고 배포할 수 있습니다. MLOps는 확장성과 유지 및 관리에 특화되어 있습니다. 자동으로 대량의 모델을 관리·감독·제어, 모니터링하며 모델을 통합하고 배포할 수 있습니다.

안정성 : 투명성을 강화하고, 업계의 규정을 준수하는 데 도움이 됩니다. ML 모델은 철저한 규제 검토와 드리프트 검사가 필요합니다. MLOps를 이용하면 모델 생성 과정에서의 적절한 모니터링, 검증과 거버넌스 등의 과정으로 투명성을 강화하고 요청에 더 빨리 대응할 수 있습니다. 또한 MLOps의 필수 조건인 지속적인 통합·배포·학습을 통해 데이터의 품질을 높은 상태로 관리할 수 있으며 ML 시스템을 자동으로 관리하기 때문에 안정적입니다.

 

 

 

MLOps의 구성 요소

머신 러닝 프로젝트에서 MLOps의 폭은 프로젝트의 필요에 따라 집중적일 수도, 광범위할 수도 있습니다. 경우에 따라서는 MLOps가 데이터 파이프라인부터 모델 프로덕션까지 모든 것을 통괄할 수도 있고, 아니면 어떤 프로젝트의 경우 모델 배포 프로세스에만 MLOps를 구현해야 하기도 합니다. 대부분 MLOps 원칙을 활용하는 분야는 다음과 같습니다.

  • 데이터 추출
  • EDA(Exploratory Data Analysis, 탐색적 데이터 분석)
  • 데이터 준비와 피처 엔지니어링
  • 모델 훈련 및 평가/조정
  • 모델 검토와 거버넌스
  • 모델 유추와 서빙
  • 모델 모니터링
  • 자동 모델 재훈련

 

 

MLOps와 DevOps의 공통점 - 자동화, 지속적 개선

MLOps와 DevOps는 모두 소프트웨어 애플리케이션을 개발, 배포 및 모니터링하는 프로세스를 개선하는 것을 목표로 하는 관행입니다. DevOps는 말 그대로 개발과 운영의 경계를 허물고 각 팀이 협업하며 아이디어를 개발하고, 배포하는 개발 환경이나 도구를 뜻합니다. DevOps는 개발 과정에서 생기는 커뮤니케이션이나 생산성 등의 비효율을 개선하고, 프로세스의 속도를 높여 더 빨리 사용자에게 가치를 전하도록 합니다. 더욱 빠르게 개발하고 제공하는 것이 목적이기 때문에 DevOps의 범위에는 시장 변화에 더 빠르게 대응할 수 있는 협업 방식과 보안, 데이터 분석 등 여러 가지 요소가 포함됩니다.

 

이러한 DevOps방법론을 ML에 적용한 것이 MLOps입니다. DevOps가 소프트웨어 엔지니어링 분야의 비효율을 개선하기 위해 등장한 것처럼 머신러닝(ML)과 AI 개발의 효율성을 높이기 위해 MLOps가 등장한 것입니다. 이러한 점에서 MLOps와 DevOps는 모두 프로덕트의 품질 개선, 릴리즈 속도 가속, 패치 적용, 높은 고객 만족도 달성과 같은 결과를 목표로 한다는 공통점이 있습니다.

 

 

 

MLOps와 DevOps의 차이점

MLOps는 기계 학습 프로젝트를 위해 특별히 설계된 일련의 모범 사례입니다. 기존 소프트웨어를 배포하고 통합하는 것은 비교적 간단할 수 있지만 ML 모델은 고유한 과제를 안고 있습니다. 여기에는 데이터 수집, 모델 훈련, 검증, 배포, 지속적인 모니터링 및 재훈련이 포함됩니다. MLOps는 ML 수명 주기 자동화에 중점을 둡니다. 모델을 개발하는 데 그치지 않고 체계적이고 반복적으로 배포, 모니터링 및 재훈련하는 데 도움이 됩니다. 이점에서 MLOps가 DevOps에 비해 특화되고
실험적이라고 말할 수 있습니다. 

MLOps는 DevOps에 비해 비교적 복잡하기에 더 많은 테스트가 필요하고 배포 후에도 모델이 예상대로 동작하는지 확인하기 위해 지속적인 모니터링이 필요합니다. 이에 모델 배포/업데이트도 매우 잦고 자동화된 배포 과정이 필수적입니다.

 

reference: https://aws.amazon.com/ko/what-is/mlops/

Comments