MLOps용 Machine Learning 레지스트리

이 문서에서는 개발, 테스트 및 프로덕션 환경에서 MLOps를 확장하는 방법을 알아봅니다. 사용 환경은 IT 환경의 복잡성에 따라 몇 개의 환경에서 많은 환경까지 다를 수 있으며 다음과 같은 요인의 영향을 받습니다.

  • 보안 및 규정 준수 정책 - 프로덕션 환경이 액세스 제어, 네트워크 아키텍처, 데이터 노출 등의 측면에서 개발 환경과 격리되어야 하나요?
  • 구독 - 개발 환경이 한 구독에 있고 프로덕션 환경이 다른 구독에 있습니까? 청구, 예산 편성 및 비용 관리 목적으로 별도의 구독이 사용되는 경우가 많습니다.
  • 지역 - 대기 시간 및 중복성 요구 사항을 지원하기 위해 다른 Azure 지역에 배포해야 합니까?

이러한 시나리오에서는 개발, 테스트 및 프로덕션에 다른 Azure Machine Learning 작업 영역을 사용할 수 있습니다. 이 구성은 모델 학습 및 배포에 대해 다음과 같은 문제가 있습니다.

  • 개발 작업 영역에서 모델을 학습시켜야 하지만 프로덕션 작업 영역의 엔드포인트(다른 Azure 구독 또는 지역)에 배포해야 합니다. 이 경우 학습 작업을 추적할 수 있어야 합니다. 예를 들어 프로덕션 배포에서 정확도 또는 성능 문제가 발생하는 경우 모델 학습에 사용되는 메트릭, 로그, 코드, 환경 및 데이터를 분석합니다.
  • 개발 작업 영역에서 테스트 데이터 또는 익명화된 데이터를 사용하여 학습 파이프라인을 개발해야 하지만 프로덕션 작업 영역에서 프로덕션 데이터로 모델을 다시 학습해야 합니다. 이 경우 실제 데이터에서 학습 최적화가 잘 수행되도록 샘플 및 프로덕션 데이터에 대한 학습 메트릭을 비교해야 할 수 있습니다.

레지스트리를 사용하는 작업 영역 간 MLOps

Git 리포지토리와 마찬가지로 레지스트리는 ML 자산을 작업 영역에서 분리하고 중앙 위치에서 호스트하여 조직의 모든 작업 영역에서 사용할 수 있도록 합니다.

환경(개발, 테스트, 프로덕션)에서 모델을 승격하려면 먼저 개발에서 모델을 반복적으로 개발합니다. 적합한 후보 모델이 있는 경우 레지스트리에 게시하면 됩니다. 그런 다음, 레지스트리에서 다른 작업 영역의 엔드포인트로 모델을 배포할 수 있습니다.

작업 영역에 이미 등록된 모델이 있는 경우 레지스트리로 승격할 수 있습니다. 학습 작업의 출력에서 레지스트리에 직접 모델을 등록할 수도 있습니다.

한 작업 영역에서 파이프라인을 개발한 후 다른 작업 영역에서 실행하려면 먼저 파이프라인의 구성 요소를 구성하는 구성 요소 및 환경을 등록합니다. 파이프라인 작업을 제출하면 각 작업 영역에 고유한 컴퓨팅 및 학습 데이터에 의해 실행되는 작업 영역이 선택됩니다.

다음 다이어그램은 탐색 및 개발 작업 영역 간의 파이프라인 승격과 개발, 테스트 및 프로덕션 간의 모델 승격을 보여 줍니다.

Diagram of pipeline and model use across environments.

다음 단계