MLOps란 무엇인가요?

기계 학습 운영(MLOps)은 기계 학습(ML) 워크플로 및 배포를 자동화하고 단순화하는 일련의 관행입니다. 기계 학습 및 인공 지능(AI)은 복잡한 현실 문제를 해결하고 고객에게 가치를 제공할 수 있는 핵심 기능입니다. MLOps는 ML 애플리케이션 개발(Dev)을 ML 시스템 배포 및 운영(Ops) 과 통합하는 ML 문화 및 관행을 의미합니다. MLOps를 사용하면 조직은 ML 수명 주기 전반의 프로세스를 자동화하고 표준화할 수 있습니다. 이러한 프로세스에는 모델 개발, 테스트, 통합, 릴리스 및 인프라 관리가 포함됩니다.

MLOps가 필요한 이유는 무엇인가요?


 

높은 레벨에서 기계 학습 수명 주기를 시작하려면 일반적으로 데이터 준비부터 시작해야 합니다. 다양한 소스에서 다양한 유형의 데이터를 가져와 집계, 중복 정리, 특성 추출과 같은 작업을 수행합니다.

그런 다음 데이터를 사용하여 ML 모델을 훈련하고 검증합니다. 그러면 훈련되고 검증된 모델을 다른 애플리케이션이 API를 통해 액세스할 수 있는 예측 서비스로 배포할 수 있습니다.

탐색적 데이터 분석을 위해서는 최상의 모델 버전을 배포할 준비가 될 때까지 다양한 모델을 실험해야 하는 경우가 많습니다. 이로 인해 모델 버전이 자주 배포되고 데이터 버전 관리가 빈번하게 발생합니다. 애플리케이션이 코드에 모델을 통합하거나 사용하기 전 실험 추적과 ML 훈련 파이프라인 관리는 필수적입니다.

MLOps는 애플리케이션 코드 및 데이터 변경 사항이 있는 새로운 ML 모델의 출시를 체계적이고 동시에 관리하기 위해 매우 중요합니다. 최적의 MLOps 구현에서는 ML 자산을 다른 지속적 통합 및 전달(CI/CD) 환경 소프트웨어 자산과 유사하게 취급합니다. 통합 릴리스 프로세스의 일환으로 ML 모델이 사용하는 애플리케이션 및 서비스와 함께 ML 모델을 배포합니다.

MLOps의 원칙에는 무엇이 있나요?

다음으로, MLOP의 네 가지 주요 원칙에 대해 설명하겠습니다.

버전 제어

이 프로세스에는 기계 학습 자산의 변경 사항을 추적하는 작업이 포함됩니다. 따라서 필요한 경우 결과를 재현하고 이전 버전으로 롤백할 수 있습니다. 모든 ML 훈련 코드 또는 모델 사양은 코드 검토 단계를 거칩니다. 각 버전은 ML 모델 훈련을 재현하고 감사할 수 있도록 버전이 지정되어 있습니다.

ML 워크플로의 재현성은 데이터 처리에서 ML 모델 배포에 이르기까지 모든 단계에서 중요합니다. 즉, 각 단계에서 동일한 입력에 대해 동일한 결과를 생성해야 함을 의미합니다.

Automation

기계 학습 파이프라인의 다양한 단계를 자동화하여 반복성, 일관성, 확장성을 보장합니다. 여기에는 데이터 수집, 전처리, 모델 훈련, 검증에서 배포에 이르는 단계가 포함됩니다.

다음은 자동화된 모델 훈련 및 배포를 트리거할 수 있는 몇 가지 요인입니다.

  • 메시징
  • 모니터링 또는 캘린더 이벤트
  • 데이터 변경
  • 모델 훈련 코드 변경
  • 애플리케이션 코드 변경

자동 테스트를 통해 문제를 조기에 발견하여 오류를 빠르게 수정하고 학습할 수 있습니다. 자동화는 코드형 인프라(IaC)를 사용하면 더 효율적입니다. 도구를 사용하여 인프라를 정의하고 관리할 수 있습니다. 이를 통해 재현성이 보장되고 다양한 환경에 일관되게 배포할 수 있습니다.

IaC에 대해 읽어보기 »

지속적 X

자동화를 통해 ML 파이프라인 전반에 걸쳐 지속적으로 테스트를 실행하고 코드를 배포할 수 있습니다.

MLOps에서 지속적이란 시스템의 어느 곳에서든 변경이 있을 경우 지속적으로 발생하는 네 가지 활동을 말합니다.

  • 지속적 통합은 코드의 검증 및 테스트를 파이프라인의 데이터 및 모델로 확장합니다.
  • 지속적 전달은 새로 훈련된 모델 또는 모델 예측 서비스를 자동으로 배포합니다.
  • 지속적 훈련은 재배포를 위해 ML 모델을 자동으로 재훈련합니다.
  • 지속적 모니터링은 비즈니스와 관련된 지표를 사용한 데이터 모니터링 및 모델 모니터링과 관련이 있습니다.

모델 거버넌스

거버넌스에는 효율성을 위해 ML 시스템의 모든 측면을 관리하는 것이 포함됩니다. 거버넌스를 위해 다음과 같은 많은 활동을 해야 합니다.

  • 데이터 사이언티스트, 엔지니어, 비즈니스 이해관계자 간의 긴밀한 협업 촉진
  • 명확한 문서와 효과적인 커뮤니케이션 채널을 사용하여 모든 사람이 조화를 이루도록 보장
  • 모델 예측에 대한 피드백을 수집하고 모델을 추가로 재훈련하기 위한 메커니즘 수립
  • 민감한 데이터가 보호되고, 모델 및 인프라에 대한 액세스가 안전하며, 규정 준수 요구 사항이 충족되는지 확인

또한 모델을 출시하기 전에 검토, 검증 및 승인할 수 있는 체계적인 프로세스를 갖추는 것도 중요합니다. 여기에는 공정성, 편향성 및 윤리적 고려 사항을 확인하는 것이 포함될 수 있습니다.

MLOps의 이점은 무엇인가요?

기계 학습은 조직이 데이터를 분석하고 의사 결정을 위한 인사이트를 도출하는 데 도움이 됩니다. 그러나 이는 혁신적이고 실험적인 분야로 나름의 과제를 안고 있습니다. 민감한 데이터 보호, 적은 예산, 기술 부족, 지속적으로 진화하는 기술은 프로젝트의 성공을 제한합니다. 통제와 지침 없이는 비용이 급증할 수 있으며 데이터 과학 팀은 원하는 결과를 달성하지 못할 수 있습니다.

MLOps는 제약 조건에 관계없이 ML 프로젝트를 성공으로 이끄는 맵을 제공합니다. MLOps의 몇 가지 주요 이점은 다음과 같습니다.

출시 기간 단축

MLOps는 조직에 데이터 과학 목표를 보다 빠르고 효율적으로 달성할 수 있는 프레임워크를 제공합니다. 개발자와 관리자는 보다 전략적이고 민첩하게 모델 관리를 수행할 수 있습니다. ML 엔지니어는 선언적 구성 파일을 통해 인프라를 프로비저닝하여 프로젝트를 보다 원활하게 시작할 수 있습니다.

모델 생성 및 배포를 자동화하면 시장 출시 시간을 단축하고 운영 비용을 절감할 수 있습니다. 데이터 과학자는 조직의 데이터를 빠르게 탐색하여 모두에게 더 많은 비즈니스 가치를 제공할 수 있습니다.

생산성 향상

MLOps 관행은 생산성을 높이고 ML 모델 개발을 가속화합니다. 예를 들어 개발이나 실험 환경을 표준화할 수 있습니다. 그러면 ML 엔지니어가 새로운 프로젝트를 시작하고, 여러 프로젝트를 번갈아 가며, 여러 애플리케이션에서 ML 모델을 재사용할 수 있습니다. 신속한 실험 및 모델 훈련을 위한 반복 가능한 프로세스를 만들 수 있습니다. 소프트웨어 엔지니어링 팀은 ML 소프트웨어 개발 수명 주기 전반에 걸쳐 협업하고 조정하여 효율성을 높일 수 있습니다.

효율적인 모델 배포

MLOps는 프로덕션 환경의 문제 해결 및 모델 관리를 개선합니다. 예를 들어, 소프트웨어 엔지니어는 문제 해결을 위해 모델 성능을 모니터링하고 동작을 재현할 수 있습니다. 모델 버전을 추적하여 중앙에서 관리하고 다양한 비즈니스 사용 사례에 적합한 버전을 선택할 수 있습니다.

모델 워크플로를 지속적 통합 및 지속적 전달(CI/CD) 파이프라인과 통합하면 성능 저하를 제한하고 모델의 품질을 유지할 수 있습니다. 이는 업그레이드 및 모델 조정 후에도 마찬가지입니다.

조직에서 MLOP를 구현하는 방법

조직 내 자동화 성숙도에 따라 세 가지 수준의 MLOps 구현이 있습니다.

MLOps 레벨 0

수동 ML 워크플로와 데이터 과학자 주도 프로세스는 기계 학습 시스템을 막 시작한 조직의 레벨 0 특징입니다.

데이터 준비, ML 훈련, 모델 성능 및 검증을 포함한 모든 단계를 수동으로 수행합니다. 단계 간 수동 전환이 필요하며 각 단계는 상호 작용적으로 실행 및 관리됩니다. 데이터 과학자는 일반적으로 훈련된 모델을 엔지니어링 팀이 API 인프라에 배포하는 아티팩트로 넘겨줍니다.

이 프로세스는 모델을 생성하는 데이터 과학자와 모델을 배포하는 엔지니어를 분리합니다. 릴리스 빈도가 낮기 때문에 데이터 과학 팀은 1년에 몇 번만 모델을 재훈련할 수 있습니다. 나머지 애플리케이션 코드가 포함된 ML 모델에는 CI/CD 고려 사항이 없습니다. 마찬가지로 능동적 성능 모니터링도 존재하지 않습니다.

MLOps 레벨 1

새로운 데이터로 동일한 모델을 훈련하고자 하는 조직에서는 레벨 1 성숙도 구현이 필요한 경우가 많습니다. MLOps 레벨 1은 ML 파이프라인을 자동화하여 모델을 지속적으로 훈련시키는 것을 목표로 합니다.

레벨 0에서는 훈련된 모델을 프로덕션에 배포합니다. 반대로 레벨 1에서는 반복적으로 실행되는 훈련 파이프라인을 배포하여 훈련된 모델을 다른 앱에 제공합니다. 최소한 모델 예측 서비스를 지속적으로 전달할 수 있습니다.

레벨 1 성숙도에는 다음과 같은 특징이 있습니다.

  • 상당한 자동화를 수반하는 신속한 ML 실험 단계
  • 새로운 데이터를 라이브 파이프라인 트리거로 사용하여 프로덕션 환경에서 모델을 지속적으로 훈련
  • 개발, 프리프로덕션, 프로덕션 환경 전반에 걸쳐 동일한 파이프라인 구현

엔지니어링 팀은 데이터 과학자와 협력하여 재사용 가능하고, 구성 가능하며, ML 파이프라인 간에 잠재적으로 공유 가능한 모듈화된 코드 구성 요소를 만듭니다. 또한 ML 훈련 및 제공을 위한 특성의 저장, 액세스, 정의를 표준화하는 중앙 집중식 특성 스토어를 생성합니다. 또한 파이프라인의 각 실행에 대한 정보 및 재현성 데이터와 같은 메타데이터를 관리할 수 있습니다.

MLOps 레벨 2

MLOps 레벨 2는 지속적인 훈련이 필요한 새로운 모델을 더 많이 실험하고 자주 만들고자 하는 조직을 위한 것입니다. 몇 분 만에 모델을 업데이트하고, 매시간 또는 매일 재훈련하고, 수천 대의 서버에 동시에 재배포하는 기술 주도형 기업에 적합합니다.

여러 ML 파이프라인이 작동 중이므로 MLOps 레벨 2 설정에는 모든 MLOps 레벨 1 설정이 필요합니다. 또한 다음 사항이 필요합니다.

  • ML 파이프라인 오케스트레이터
  • 여러 모델을 추적하기 위한 모델 레지스트리

다음 세 단계는 모델 지속적 전달을 보장하기 위해 여러 ML 파이프라인에 대해 규모에 맞게 반복됩니다.

파이프라인 구축

실험 단계가 조율되도록 확인하면서 새로운 모델링과 새로운 ML 알고리즘을 반복적으로 시도해 볼 수 있습니다. 이 단계에서는 ML 파이프라인의 소스 코드를 출력합니다. 코드는 소스 리포지터리에 저장합니다.

파이프라인 배포

다음으로, 소스 코드를 빌드하고 테스트를 실행하여 배포할 파이프라인 구성 요소를 가져옵니다. 출력은 새로운 모델 구현과 함께 배포된 파이프라인입니다.

파이프라인 제공

마지막으로, 애플리케이션에 대한 예측 서비스로 파이프라인을 제공합니다. 라이브 데이터에서 배포된 모델 예측 서비스에 대한 통계를 수집합니다. 이 단계 출력은 파이프라인 또는 새로운 실험 주기를 실행하기 위한 트리거입니다.


 

MLOps와 DevOps의 차이점은 무엇인가요?

MLOps와 DevOps는 모두 소프트웨어 애플리케이션을 개발, 배포 및 모니터링하는 프로세스를 개선하는 것을 목표로 하는 관행입니다.

DevOps는 개발 팀과 운영 팀 간의 격차를 해소하는 것을 목표로 합니다. DevOps는 코드 변경 사항이 자동으로 테스트되고 통합되어 효율적이고 안정적으로 프로덕션에 배포되도록 지원합니다. 협업 문화를 장려하여 릴리스 주기를 단축하고 애플리케이션 품질을 개선하며 리소스를 보다 효율적으로 사용할 수 있도록 합니다.

반면 MLOps는 기계 학습 프로젝트를 위해 특별히 설계된 일련의 모범 사례입니다. 기존 소프트웨어를 배포하고 통합하는 것은 비교적 간단할 수 있지만 ML 모델은 고유한 과제를 안고 있습니다. 여기에는 데이터 수집, 모델 훈련, 검증, 배포, 지속적인 모니터링 및 재훈련이 포함됩니다.

MLOps는 ML 수명 주기 자동화에 중점을 둡니다. 모델을 개발하는 데 그치지 않고 체계적이고 반복적으로 배포, 모니터링 및 재훈련하는 데 도움이 됩니다. 이는 ML에 DevOps 원칙을 가져옵니다. MLOps를 사용하면 ML 모델을 더 빠르게 배포하고 시간이 지남에 따라 정확도가 향상되며 실제 비즈니스 가치를 제공한다는 확신을 강화할 수 있습니다.

AWS는 MLOps 요구 사항을 어떻게 지원할 수 있나요?

Amazon SageMaker는 데이터를 준비하고 ML 모델을 구축, 훈련 및 배포하는 데 사용할 수 있는 완전관리형 서비스입니다. 완전 관리형 인프라, 도구 및 워크플로가 있는 모든 사용 사례에 적합합니다.

SageMaker는 ML 수명 주기 전반에 걸쳐 프로세스를 자동화할 수 있도록 MLOps용으로 특별히 설계된 도구를 제공합니다. Sagemaker for MLOps 도구를 사용하면 규모에 맞게 레벨 2 MLOps 성숙도를 빠르게 달성할 수 있습니다. 

사용할 수 있는 SageMaker의 주요 특성은 다음과 같습니다.

  • SageMaker Experiments를 사용하여 파라미터, 지표, 데이터 세트와 같은 모델 훈련 작업과 관련된 아티팩트를 추적할 수 있습니다.
  • SageMaker Pipelines을 구성하여 정기적으로 또는 특정 이벤트가 트리거될 때 자동으로 실행되도록 할 수 있습니다.
  • SageMaker Model Registry를 사용하여 모델 버전을 추적할 수 있습니다. 사용 사례 그룹화와 같은 메타데이터를 추적하고 중앙 리포지터리에서 성능 지표 기준선을 모델링할 수도 있습니다. 이 정보를 사용하여 비즈니스 요구 사항에 따라 최상의 모델을 선택할 수 있습니다.

지금 계정을 생성하여 Amazon Web Services(AWS)에서 MLOps를 시작하세요.

AWS의 다음 단계

무료 계정 가입

AWS 프리 티어에 즉시 액세스할 수 있습니다.

가입 
콘솔에서 구축 시작

AWS Management Console에서 구축을 시작하세요.

로그인