Azure Machine Learning을 사용하여 MLOps 모델 관리
적용 대상:Azure CLI ml 확장 v2(현재)Python SDK azure-ai-ml v2(현재)
이 문서에서는 Azure Machine Learning이 MLOps(기계 학습 운영)를 사용하여 모델의 수명 주기를 관리하는 방법을 설명합니다. MLOps 적용 사례는 기계 학습 솔루션의 품질 및 일관성을 개선합니다.
MLOps는 연속 통합, 지속적인 배포,지속적인 업데이트와 같은 워크플로의 효율성을 높이는 DevOps 원칙 및 사례를 기반으로 합니다. 기계 학습 수명 주기에 이러한 원칙을 적용하면 다음이 발생합니다.
- 실험 및 모델 개발 속도 향상.
- 프로덕션 단계로의 모델 배포 속도 향상
- 품질 보증 및 엔드 투 엔드 계보 추적 향상.
MLOps 기능
MLOps는 기계 학습 프로세스에 다음과 같은 기능을 제공합니다.
- 재현 가능한 기계 학습 파이프라인을 만들어 데이터 준비, 학습, 채점 프로세스에 대해 반복 가능하고 재사용 가능한 단계를 정의합니다.
- 모델 학습 및 배포를 위해 재사용 가능한 소프트웨어 환경을 만듭니다.
- 어디서나 모델을 등록, 패키징, 배포하고 모델을 사용하는 데 필요한 관련 메타데이터를 추적합니다.
- 모델을 게시한 사람, 변경한 이유, 모델이 프로덕션에서 배포 또는 사용된 시기와 같은 기계 학습 수명 주기 거버넌스에 대한 계보 데이터를 기록합니다.
- 실험 완료, 모델 등록, 모델 배포, 데이터 드리프트 검색과 같은 기계 학습 수명 주기 이벤트에 대해 알리고 경고합니다.
- 모델 입력을 비교하고, 모델별 메트릭을 탐색하고, 기계 학습 인프라에 대한 모니터링 및 경고를 확인하여 운영 및 기계 학습 관련 문제를 모니터링합니다.
- 기계 학습 파이프라인 및 Azure Pipelines를 사용하여 새로운 기계 학습 모델을 지속적으로 테스트, 업데이트, 롤아웃하여 엔드 투 엔드 기계 학습 수명 주기를 자동화합니다.
MLOps에 대한 자세한 내용은 Machine Learning 작업을 참조하세요.
재현 가능한 기계 학습 파이프라인
Azure Machine Learning 파이프라인을 사용하여 모델 학습 프로세스의 모든 단계를 함께 연결합니다. 기계 학습 파이프라인 단계에는 데이터 준비, 기능 추출, 하이퍼 매개 변수 튜닝, 모델 평가가 포함될 수 있습니다.
Azure Machine Learning 스튜디오 디자이너에서 파이프라인을 복제하여 이전 버전을 잃지 않고도 해당 디자인을 반복할 수 있습니다. 디자이너에서 언제든지 파이프라인을 복제하려면 위쪽 메뉴 모음에서 복제를 선택합니다.
Azure Machine Learning 파이프라인에 대한 자세한 내용은 Machine Learning 파이프라인을 참조하세요.
재사용 가능한 소프트웨어 환경
Azure Machine Learning 환경은 수동 소프트웨어 구성을 사용하지 않고 빌드를 재현할 수 있도록 합니다. 환경은 프로젝트에 대한 pip 및 conda 소프트웨어 종속성을 추적하고 재현할 수 있습니다.
모델 학습 및 배포에 환경을 사용할 수 있습니다. 환경에 대한 자세한 내용은 Azure Machine Learning 환경을 참조하세요.
모델 등록, 패키징, 배포
Azure Machine Learning은 어디서나 MLOps를 사용하여 모델을 등록, 패키징, 배포할 수 있습니다.
모델 등록 및 추적
모델 등록은 Azure 클라우드의 Azure Machine Learning 작업 영역에 모델을 저장하고 버전화합니다. 모델 레지스트리에서는 학습된 모델을 쉽게 구성하고 추적할 수 있습니다.
등록된 모델은 모델을 구성하는 하나 이상의 파일에 대한 논리적 컨테이너입니다. 예를 들어 모델이 여러 파일에 저장된 경우 Azure Machine Learning 작업 영역에서 파일을 단일 모델로 등록할 수 있습니다. 등록 후 등록된 모델을 다운로드하거나 배포하고 모든 구성 요소 파일을 받을 수 있습니다.
Azure Machine Learning 외부에서 학습된 모델을 등록할 수도 있습니다. Azure Machine Learning은 Python 3.5.2 이상을 사용하여 로드할 수 있는 모든 모델을 지원합니다.
이름 및 버전별로 등록된 모델을 식별합니다. 기존 모델과 이름이 같은 모델을 등록할 때마다 레지스트리에서 버전 번호를 증가시킵니다.
등록하는 동안 메타데이터 태그를 제공하고 이러한 태그를 사용하여 모델을 검색할 수 있습니다.
Important
활성 배포에서 사용하고 있는 등록된 모델은 삭제할 수 없습니다.
Azure Machine Learning에서 모델을 사용하는 방법에 대한 자세한 내용은 Azure Machine Learning에서 모델 작업을 참조하세요.
모델 패키징 및 디버그
프로덕션에 모델을 배포하려면 먼저 모델을 Docker 이미지로 패키징해야 합니다. 대부분의 경우 이미지 만들기는 배포 중에 백그라운드에서 자동으로 발생합니다. 그러나 이미지를 수동으로 지정할 수 있습니다.
클라우드에 배포하기 전에 문제를 해결하고 디버그할 수 있도록 먼저 로컬 개발 환경에 배포하는 것이 유용합니다. 이 방법을 사용하면 Azure Machine Learning에 배포 시 문제가 발생하지 않도록 방지할 수 있습니다. 일반적인 배포 문제를 해결하는 방법에 대한 자세한 내용은 온라인 엔드포인트 문제를 해결하는 방법을 참조하세요.
모델 변환 및 최적화
모델을 ONNX(Open Neural Network Exchange)로 변환하여 성능을 향상시킬 수 있습니다. 일반적으로 ONNX로 변환하면 성능이 두 배가 될 수 있습니다.
Azure Machine Learning을 사용한 ONNX에 대한 자세한 내용은 기계 학습 모델 만들기 및 가속화를 참조하세요.
모델을 엔드포인트로 배포
학습된 기계 학습 모델을 로컬 또는 클라우드에 엔드포인트로 배포할 수 있습니다. 배포는 유추를 위해 CPU 및 GPU를 사용합니다.
모델을 엔드포인트로 배포하려면 다음 정보를 제공해야 합니다.
- 서비스 또는 디바이스에 제출된 데이터의 점수를 매기는 데 사용되는 모델입니다.
- 요청을 수락하고, 모델을 사용하여 데이터를 채점하고, 응답을 반환하는 채점 스크립트라고도 하는 항목 스크립트입니다.
- 모델 및 항목 스크립트에 필요한 pip 및 conda 종속성을 설명하는 환경입니다.
- 모델 및 항목 스크립트에 필요한 텍스트 및 데이터와 같은 기타 자산입니다.
Important
MLflow 모델을 배포하는 경우 배포를 위한 항목 스크립트 또는 환경을 제공할 필요가 없습니다. MLflow 모델 배포에 대한 자세한 내용은 MLflow 모델 배포에 대한 지침을 참조하세요.
또한 VM(가상 머신) 제품군 유형, 사용 가능한 메모리, 코어 수와 같은 대상 배포 플랫폼의 구성을 제공합니다. Azure Machine Learning에서 이미지를 만들 때 웹 서비스를 실행하는 데 필요한 자산과 같이 필요한 구성 요소도 추가합니다.
일괄 처리 엔드포인트를 사용한 일괄 처리 채점
일괄 처리 점수는 일괄 처리 엔드포인트를 통해 지원됩니다. 일괄 처리 채점에 대한 자세한 내용은 일괄 처리 엔드포인트를 참조하세요.
온라인 엔드포인트를 사용하여 실시간 점수 매기기
실시간 채점을 위해 온라인 엔드포인트와 함께 모델을 사용할 수 있습니다. 온라인 엔드포인트의 컴퓨팅 대상은 로컬 개발 환경, 관리형 온라인 엔드포인트 또는 AKS(Azure Kubernetes Service)일 수 있습니다.
온라인 엔드포인트에 모델을 배포하려면 다음 정보를 제공해야 합니다.
- 모델 또는 모델의 앙상블입니다.
- 모델을 사용하는 데 필요한 종속성으로, 예를 들어 요청을 수락하고 모델 및 conda 종속성을 호출하는 스크립트입니다.
- 모델을 배포하는 방법 및 위치를 설명하는 배포 구성입니다.
실시간 채점 배포에 대한 자세한 내용은 온라인 엔드포인트 배포를 참조하세요.
온라인 엔드포인트에 대한 제어된 롤아웃
온라인 엔드포인트에 배포하는 경우 제어된 롤아웃을 사용하여 다음 시나리오를 사용하도록 설정할 수 있습니다.
- 배포에 대해 여러 버전의 엔드포인트를 만듭니다.
- 엔드포인트 내의 다른 배포로 트래픽을 라우팅하여 A/B 테스트를 수행합니다.
- 엔드포인트 구성에서 트래픽 비율을 업데이트하여 엔드포인트 배포 간에 전환합니다.
제어된 롤아웃을 사용하는 배포에 대한 자세한 내용은 실시간 유추를 취한 배포의 안전한 롤아웃 수행을 참조하세요.
기계 학습 수명 주기 거버넌스에 대한 메타데이터
Azure Machine Learning은 메타데이터를 사용하여 모든 기계 학습 자산의 엔드투엔드 감사 내역을 추적할 수 있는 기능을 제공합니다. 예시:
- Azure Machine Learning 데이터 자산을 통해 추적, 프로파일 및 버전 데이터를 지원할 수 있습니다.
- 모델 해석 기능을 사용하면 모델을 설명하고, 규정 준수를 충족하며, 모델이 지정된 입력에 대한 결과를 도출하는 방식을 이해할 수 있습니다.
- Azure Machine Learning 작업 기록은 모델 학습에 사용된 코드, 데이터 및 컴퓨팅에 대한 스냅샷을 저장합니다.
- Azure Machine Learning 모델 등록은 모델과 연결된 모든 메타데이터를 캡처합니다. 예를 들어 모델을 학습한 실험, 모델이 배포되는 위치, 모델 배포가 정상인지 여부를 나타냅니다.
- Azure와 통합하면 모델 등록, 배포, 데이터 드리프트, 학습 작업 이벤트와 같은 기계 학습 수명 주기의 이벤트에 대해 작업할 수 있습니다.
모델 및 데이터 자산에 대한 일부 정보는 자동으로 캡처되지만 태그를 사용하여 더 많은 정보를 추가할 수 있습니다. 작업 영역에서 등록된 모델 및 데이터 자산을 찾을 때 태그를 필터로 사용할 수 있습니다.
참고 항목
Azure Machine Learning 스튜디오의 모델 페이지에서 필터 기준 옵션의 태그를 사용하는 경우 TagName : TagValue
가 아닌 공백 없이 TagName=TagValue
를 사용해야 합니다.
기계 학습 수명 주기 이벤트 알림 및 경고
Azure Machine Learning은 기계 학습 수명 주기의 이벤트를 알리고 자동화하는 데 사용할 수 있는 주요 이벤트를 Azure Event Grid에 게시합니다. Azure Machine Learning 이벤트를 기반으로 이벤트 기반 프로세스를 설정하는 방법에 대한 자세한 내용은 사용자 지정 CI/CD 및 이벤트 기반 워크플로를 참조하세요.
기계 학습 수명 주기 자동화
Git 및 Azure Pipelines를 사용하여 기계 학습 모델을 학습시키는 연속 통합 프로세스를 만들 수 있습니다. 일반적인 시나리오에서 데이터 과학자가 프로젝트의 Git 리포지토리에 대한 변경 사항을 확인하는 경우 Azure Pipelines는 학습 작업을 시작합니다.
작업 결과를 검사하여 학습된 모델의 성능 특성을 확인할 수 있습니다. 모델을 웹 서비스로 배포하는 파이프라인을 만들 수도 있습니다.
Machine Learning 확장을 사용하면 Azure Pipelines를 더 쉽게 사용할 수 있습니다. 이 확장은 Azure Pipelines에 다음과 같은 향상된 기능을 제공합니다.
- 서비스 연결을 정의할 때 Azure Machine Learning 작업 영역을 선택할 수 있습니다.
- 학습 파이프라인에서 학습된 모델을 만들어 Azure Pipelines에서 배포를 트리거할 수 있습니다.
Azure Machine Learning에서 Azure Pipelines를 사용하는 방법에 대한 자세한 내용은 Azure Machine Learning에서 Azure Pipelines 사용을 참조하세요.
분석
Microsoft Power BI는 데이터 분석을 위해 기계 학습 모델을 사용할 수 있도록 지원합니다. 자세한 내용은 데이터 흐름을 사용하는 AI를 참조하세요.