MLOps: Azure Machine Learning을 통한 모델 관리, 배포, 모니터링

적용 대상:Azure CLI ml 확장 v2(현재)Python SDK azure-ai-ml v2(현재)

이 문서에서는 모델의 수명 주기를 관리하기 위해 Azure Machine Learning의 MLOps(기계 학습 작업) 사례에 대해 알아봅니다. MLOps 사례를 적용하면 기계 학습 솔루션의 품질과 일관성을 향상시킬 수 있습니다.

MLOps란?

MLOps는 워크플로의 효율성을 향상시키는 DevOps 원칙 및 사례를 기반으로 합니다. 이러한 원칙에는 지속적인 통합, 전달 및 배포가 포함됩니다. MLOps는 다음을 목표로 기계 학습 수명 주기에 이러한 원칙을 적용합니다.

  • 모델의 실험 및 개발 속도 향상
  • 프로덕션 단계로의 모델 배포 속도 향상
  • 품질 보증 및 엔드투엔드 계보 추적

MLOps는 기계 학습 프로세스에 다음과 같은 기능을 제공합니다.

  • 재현 가능한 기계 학습 파이프라인을 만듭니다. 기계 학습 파이프라인을 사용하여 데이터 준비, 학습, 채점 프로세스에 대해 반복 가능하고 재사용 가능한 단계를 정의합니다.
  • 재사용 가능한 소프트웨어 환경을 만듭니다. 이러한 환경은 모델을 학습시키고 배포하는 데 사용합니다.
  • 어디서나 모델을 등록, 패키지 및 배포합니다. 모델을 사용하는 데 필요한 관련 메타데이터를 추적합니다.
  • 엔드 투 엔드 기계 학습 수명 주기에 대한 거버넌스 데이터를 캡처합니다. 로그된 계보 정보에는 모델을 게시하는 주체와 변경한 이유가 포함될 수 있습니다. 또한 프로덕션에서 모델이 배포되거나 사용된 시간도 포함될 수 있습니다.
  • 기계 학습 수명 주기의 이벤트를 알리고 경고합니다. 이벤트에는 실험 완성, 모델 등록, 모델 배포 및 데이터 드리프트 검색이 포함됩니다.
  • 운영 및 기계 학습 관련 문제에 대해 기계 학습 애플리케이션을 모니터링합니다. 학습과 유추 간의 모델 입력을 비교합니다. 모델 관련 메트릭을 살펴봅니다. 기계 학습 인프라에 대한 모니터링 및 경고를 제공합니다.
  • 기계 학습 및 Azure 파이프라인을 사용하여 엔드 투 엔드 기계 학습 수명 주기를 자동화합니다. 파이프라인을 사용하여 모델을 자주 테스트하고 업데이트합니다. 다른 애플리케이션 및 서비스와 함께 새 기계 학습 모델을 지속적으로 롤아웃할 수 있습니다.

MLOps에 대한 자세한 내용은 Machine Learning 작업을 참조 하세요.

재현 가능한 기계 학습 파이프라인 만들기

Azure Machine Learning 파이프라인을 사용하여 모델 학습 프로세스의 모든 단계를 함께 연결합니다. 기계 학습 파이프라인에는 데이터 준비, 기능 추출, 하이퍼 매개 변수 튜닝 및 모델 평가가 포함된 단계가 포함될 수 있습니다.

Azure Machine Learning 디자이너사용하여 기계 학습 파이프라인을 만드는 경우 이전 버전을 잃지 않고 파이프라인을 복제하여 디자인을 반복할 수 있습니다. 디자이너에서 언제든지 파이프라인을 복제하려면 오른쪽 위 모서리로 이동하여 ...>를 선택합니다.복제합니다.

Azure Machine Learning 파이프라인에 대한 자세한 내용은 Machine Learning 파이프라인을 참조 하세요.

재사용 가능한 소프트웨어 환경 만들기

Azure Machine Learning 환경을 사용하면 프로젝트의 소프트웨어 종속성이 진화함에 따라 추적 및 재현할 수 있습니다. 환경을 사용하여 수동 소프트웨어 구성 없이 빌드를 재현할 수 있습니다.

환경에서는 프로젝트에 대한 pip 및 conda 종속성을 설명합니다. 모델 학습 및 배포에 환경을 사용할 수 있습니다. 환경에 대한 자세한 내용은 Azure Machine Learning 환경이란?을 참조하세요.

어디서나 모델 등록, 패키지 및 배포

다음 섹션에서는 모델을 등록, 패키지 및 배포하는 방법에 대해 설명합니다.

기계 학습 모델 등록 및 추적

모델 등록을 사용하면 Azure 클라우드의 작업 영역에서 모델을 저장하고 버전을 관리할 수 있습니다. 모델 레지스트리에서는 학습된 모델을 쉽게 구성하고 추적할 수 있습니다.

등록된 모델은 모델을 구성하는 하나 이상의 파일에 대한 논리적 컨테이너입니다. 예를 들어 여러 파일에 저장된 모델이 있는 경우 Azure Machine Learning 작업 영역에서 파일을 단일 모델로 등록할 수 있습니다. 등록 후 등록된 모델을 다운로드하거나 배포하고 모든 구성 요소 파일을 받을 수 있습니다.

이름 및 버전별로 등록된 모델을 식별할 수 있습니다. 기존 모델과 이름이 같은 모델을 등록할 때마다 레지스트리는 버전 번호를 증가합니다. 등록하는 동안 메타데이터 태그를 제공하고 모델을 검색할 때 이러한 태그를 사용할 수 있습니다. Azure Machine Learning은 Python 3.5.2 이상을 사용하여 로드할 수 있는 모든 모델을 지원합니다.

Azure Machine Learning 외부에서 학습된 모델을 등록할 수도 있습니다.

Important

  • Azure Machine Learning 스튜디오 모델 페이지에서 필터 기준Tags 옵션을 사용하는 경우 공백 없이 사용합니다TagName : TagValueTagName=TagValue.
  • 활성 배포에서 사용하고 있는 등록된 모델은 삭제할 수 없습니다.

Azure Machine Learning에서 모델을 사용하는 방법에 대한 자세한 내용은 Azure Machine Learning의 모델 작업을 참조 하세요.

패키지 및 디버그 모델

프로덕션 환경에 모델을 배포하기 전에 Docker 이미지로 패키지해야 합니다. 대부분의 경우 이미지 만들기는 배포 중에 백그라운드에서 자동으로 발생합니다. 그러나 이미지를 수동으로 지정할 수 있습니다.

클라우드에 배포하기 전에 문제를 해결하고 디버그할 수 있도록 먼저 로컬 개발 환경에 배포하는 것이 유용합니다. 이 방법을 사용하면 Azure Machine Learning에 배포하는 데 문제가 발생하지 않도록 할 수 있습니다. 일반적인 배포 문제를 해결하는 방법에 대한 자세한 내용은 온라인 엔드포인트 문제를 해결하는 방법을 참조 하세요.

모델 변환 및 최적화

모델을 ONNX(Open Neural Network Exchange )로 변환하여 성능을 향상시킬 수 있습니다. 일반적으로 ONNX로 변환하면 성능이 두 배가 될 수 있습니다.

Machine Learning이 포함된 ONNX에 대한 자세한 내용은 기계 학습 모델 만들기 및 가속화를 참조하세요.

모델 배포

학습된 기계 학습 모델을 클라우드 또는 로컬에서 엔드포인트배포할 수 있습니다. 배포는 추론에 CPU 및 GPU를 사용합니다.

모델을 엔드포인트로 배포할 때 다음 항목을 제공해야 합니다.

  • 서비스 또는 디바이스에 제출된 데이터의 점수를 매기는 데 사용되는 모델입니다.
  • 항목 스크립트1입니다. 이 스크립트는 요청을 수락하고, 모델을 사용하여 데이터의 점수를 매기고, 응답을 반환합니다.
  • 모델 및 항목 스크립트에 필요한 pip 및 conda 종속성을 설명하는 환경2입니다.
  • 모델 및 항목 스크립트에 필요한 텍스트 및 데이터와 같은 기타 자산입니다.

또한 대상 배포 플랫폼의 구성도 제공합니다. 예를 들어 VM(가상 머신) 제품군 유형, 사용 가능한 메모리 및 코어 수입니다. 이미지를 만들 때 웹 서비스를 실행하는 데 필요한 자산과 같은 Azure Machine Learning에 필요한 구성 요소도 추가됩니다.

1,2 MLflow 모델을 배포하는 경우 채점 스크립트라고도 하는 항목 스크립트를 제공할 필요가 없습니다. 또한 배포를 위한 환경을 제공할 필요가 없습니다. MLflow 모델 배포에 대한 자세한 내용은 MLflow 모델 배포 지침을 참조하세요.

일괄 처리 점수 매기기

일괄 처리 점수는 일괄 처리 엔드포인트를 통해 지원됩니다. 일괄 처리 채점에 대한 자세한 내용은 Batch 엔드포인트를 참조 하세요.

실시간 채점

실시간 채점을 위해 온라인 엔드포인트와 함께 모델을 사용할 수 있습니다. 온라인 엔드포인트는 다음 컴퓨팅 대상을 사용할 수 있습니다.

  • 관리형 온라인 엔드포인트
  • Azure Kubernetes Service
  • 로컬 개발 환경

엔드포인트에 모델을 배포하려면 다음 항목을 제공해야 합니다.

  • 모델의 모델 또는 앙상블입니다.
  • 모델을 사용하려면 종속성이 필요합니다. 예를 들어 요청을 수락하고 모델 및 conda 종속성을 호출하는 스크립트입니다.
  • 모델을 배포하는 방법과 위치를 설명하는 배포 구성입니다.

실시간 점수 매기기 배포에 대한 자세한 내용은 온라인 엔드포인트 배포를 참조 하세요.

온라인 엔드포인트에 대한 제어된 롤아웃

온라인 엔드포인트에 배포할 때 제어된 롤아웃을 사용하여 다음 시나리오를 사용하도록 설정할 수 있습니다.

  • 배포에 대해 여러 버전의 엔드포인트를 만듭니다.
  • 엔드포인트 내의 다른 배포로 트래픽을 라우팅하여 A/B 테스트를 수행합니다.
  • 엔드포인트 구성에서 트래픽 비율을 업데이트하여 엔드포인트 배포 간에 전환합니다.

제어된 롤아웃을 사용하는 배포에 대한 자세한 내용은 실시간 유추를 위해 새 배포의 안전한 롤아웃 수행을 참조하세요.

분석

Microsoft Power BI는 데이터 분석에 기계 학습 모델 사용을 지원합니다. 자세한 내용은 Power BI의 Azure Machine Learning 통합을 참조하세요.

MLOps에 필요한 거버넌스 데이터 캡처

Azure Machine Learning은 메타데이터를 사용하여 모든 기계 학습 자산의 엔드 투 엔드 감사 내역을 추적하는 기능을 제공합니다. 예시:

  • Azure Machine Learning 데이터 자산은 데이터를 추적, 프로파일 및 버전 지정하는 데 도움이 됩니다.
  • 모델 해석성을 사용하면 모델을 설명하고, 규정 준수를 충족하며, 모델이 지정된 입력에 대한 결과에 도착하는 방법을 이해할 수 있습니다.
  • Azure Machine Learning 작업 기록은 모델 학습에 사용되는 코드, 데이터 및 컴퓨팅의 스냅샷 저장합니다.
  • Azure Machine Learning 모델 레지스트리 는 모델과 연결된 모든 메타데이터를 캡처합니다. 예를 들어 모델을 학습시킨 실험, 모델이 배포되는 위치 및 모델의 배포가 정상인지를 나타냅니다.
  • Azure 와 통합하면 기계 학습 수명 주기에서 모델 등록, 배포, 데이터 드리프트 및 학습(작업) 이벤트와 같은 이벤트에 대해 작업할 수 있습니다.

모델 및 데이터 자산에 대한 일부 정보는 자동으로 캡처되지만 태그를 사용하여 더 많은 정보를 추가할 수 있습니다. 작업 영역에서 등록된 모델 및 데이터 자산을 찾을 때 태그를 필터로 사용할 수 있습니다.

기계 학습 수명 주기의 이벤트 알림, 자동화 및 경고

Azure Machine Learning은 Azure Event Grid에 주요 이벤트를 게시합니다. 이 이벤트를 사용하여 기계 학습 수명 주기의 이벤트를 알리고 자동화할 수 있습니다. Azure Machine Learning 이벤트를 기반으로 이벤트 기반 프로세스를 설정하는 방법에 대한 자세한 내용은 사용자 지정 CI/CD 및 이벤트 기반 워크플로를 참조 하세요.

기계 학습 수명 주기 자동화

GitHub 및 Azure Pipelines를 사용하여 모델을 학습시키는 연속 통합 프로세스를 만들 수 있습니다. 일반적인 시나리오에서 데이터 과학자가 프로젝트의 Git 리포지토리로 변경 검사 경우 Azure Pipelines는 학습 작업을 시작합니다. 그런 다음, 작업 결과를 검사하여 학습된 모델의 성능 특성을 확인할 수 있습니다. 모델을 웹 서비스로 배포하는 파이프라인을 만들 수도 있습니다.

Machine Learning 확장을 사용하면 Azure Pipelines를 더 쉽게 사용할 수 있습니다. 이 확장은 Azure Pipelines에 다음과 같은 향상된 기능을 제공합니다.

  • 서비스 연결을 정의할 때 작업 영역 선택을 사용하도록 설정합니다.
  • 학습 파이프라인에서 만든 학습된 모델에 의해 릴리스 파이프라인을 트리거할 수 있습니다.

Machine Learning에서 Azure Pipelines를 사용하는 방법에 대한 자세한 내용은 Azure Machine Learning에서 Azure Pipelines 사용을 참조 하세요.