일괄 처리 엔드포인트를 사용하여 파이프라인을 배포하는 방법
적용 대상:Azure CLI ml 확장 v2(현재)Python SDK azure-ai-ml v2(현재)
Azure Machine Learning에서 파이프라인 구성 요소를 편리하게 운용할 수 있는 방법을 제공하여 일괄 처리 엔드포인트 아래에 파이프라인 구성 요소를 배포할 수 있습니다. 이 문서에서는 간단한 파이프라인이 포함된 일괄 처리 배포를 만드는 방법을 알아봅니다. 다음에 대해 알아봅니다.
- 파이프라인 구성 요소 만들기 및 등록
- 일괄 처리 엔드포인트 만들기 및 파이프라인 구성 요소 배포
- 배포 테스트
이 예에 대해
이 예에서는 "hello world!"를 출력하는 간단한 명령 작업으로 구성된 파이프라인 구성 요소를 배포할 예정입니다. 이 구성 요소는 입력이나 출력이 필요하지 않으며 가장 간단한 파이프라인 배포 시나리오입니다.
이 문서의 예는 azureml-examples 리포지토리에 포함된 코드 샘플을 기반으로 합니다. YAML 및 기타 파일을 복사하거나 붙여넣지 않고 로컬로 명령을 실행하려면 다음 명령을 사용하여 리포지토리를 복제하고 코딩 언어의 폴더로 이동합니다.
git clone https://github.com/Azure/azureml-examples --depth 1
cd azureml-examples/cli
이 예의 파일은 다음 위치에 있습니다.
cd endpoints/batch/deploy-pipelines/hello-batch
Jupyter Notebooks에서 따라 하기
복제된 리포지토리에서 sdk-deploy-and-test.ipynb Notebook을 열어 이 예의 Python SDK 버전을 따라갈 수 있습니다.
필수 구성 요소
Azure 구독 Azure 구독이 아직 없는 경우 시작하기 전에 체험 계정을 만듭니다.
Azure Machine Learning 작업 영역 작업 영역을 만들려면 Azure Machine Learning 작업 영역 관리를 참조하세요.
Azure Machine Learning 작업 영역에서 다음 사용 권한:
- 일괄 처리 엔드포인트 및 배포를 만들거나 관리하려면 사용 권한이 할당
Microsoft.MachineLearningServices/workspaces/batchEndpoints/*
된 소유자, 기여자 또는 사용자 지정 역할을 사용합니다. - 작업 영역 리소스 그룹에서 Azure Resource Manager 배포를 만드는 경우: 작업 영역이 배포된 리소스 그룹에 권한이 할당
Microsoft.Resources/deployments/write
된 소유자, 기여자 또는 사용자 지정 역할을 사용합니다.
- 일괄 처리 엔드포인트 및 배포를 만들거나 관리하려면 사용 권한이 할당
Azure Machine Learning CLI 또는 Python용 Azure Machine Learning SDK:
다음 명령을 실행하여 Azure CLI 및
ml
Azure Machine Learning 확장을 설치합니다.az extension add -n ml
일괄 처리 엔드포인트에 대한 파이프라인 구성 요소 배포는 Azure CLI용 확장 버전
ml
2.7에서 도입되었습니다.az extension update --name ml
명령을 사용하여 최신 버전을 가져옵니다.
작업 영역에 연결
작업 영역은 Azure Machine Learning의 최상위 리소스입니다. Azure Machine Learning을 사용할 때 만드는 모든 아티팩트를 사용할 수 있는 중앙 집중식 위치를 제공합니다. 이 섹션에서는 배포 작업을 수행하는 작업 영역에 연결합니다.
다음 명령에서 구독 ID, 작업 영역 이름, 리소스 그룹 이름 및 위치를 입력합니다.
az account set --subscription <subscription>
az configure --defaults workspace=<workspace> group=<resource-group> location=<location>
파이프라인 구성 요소 만들기
일괄 처리 엔드포인트는 모델 또는 파이프라인 구성 요소를 배포할 수 있습니다. 파이프라인 구성 요소는 재사용이 가능하며 공유 레지스트리를 사용하여 이러한 구성 요소를 한 작업 영역에서 다른 작업 영역으로 이동함으로써 MLOps 실행을 간소화할 수 있습니다.
이 예의 파이프라인 구성 요소에는 로그에 "hello world" 메시지만 인쇄하는 단일 단계가 포함되어 있습니다. 입력이나 출력이 필요하지 않습니다.
hello-component/hello.yml
파일에는 파이프라인 구성 요소에 대한 구성이 포함되어 있습니다.
hello-component/hello.yml
$schema: https://azuremlschemas.azureedge.net/latest/pipelineComponent.schema.json
name: hello_batch
display_name: Hello Batch component
version: 1
type: pipeline
jobs:
main_job:
type: command
component:
code: src
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
command: >-
python hello.py
구성 요소를 등록합니다.
일괄 처리 엔드포인트 만들기
엔드포인트에 사용할 이름을 입력합니다. 일괄 처리 엔드포인트의 이름은 호출 URI를 구성하는 데 사용되므로 각 지역에서 고유해야 합니다. 고유성을 보장하려면 다음 코드에 지정된 이름에 후행 문자를 추가합니다.
엔드포인트 구성:
엔드포인트 만들기:
엔드포인트 URI를 쿼리합니다.
파이프라인 구성 요소 배포
파이프라인 구성 요소를 배포하려면 일괄 처리 배포를 만들어야 합니다. 배포는 실제 작업을 수행하는 자산을 호스팅하는 데 필요한 리소스 집합입니다.
컴퓨팅 클러스터를 만듭니다. 일괄 처리 엔드포인트 및 배포는 컴퓨팅 클러스터에서 실행됩니다. 작업 영역에 이미 존재하는 모든 Azure Machine Learning 컴퓨팅 클러스터에서 실행할 수 있습니다. 따라서 여러 일괄 처리 배포가 동일한 컴퓨팅 인프라를 공유할 수 있습니다. 이 예에서는
batch-cluster
라는 Azure Machine Learning 컴퓨팅 클러스터에 대해 작업합니다. 컴퓨팅이 작업 영역에 있는지 확인하고, 없으면 만들겠습니다.배포 구성:
deployment.yml
파일에는 배포 구성이 포함되어 있습니다. 추가 속성은 전체 일괄 처리 엔드포인트 YAML 스키마를 확인합니다.deployment.yml
$schema: https://azuremlschemas.azureedge.net/latest/pipelineComponentBatchDeployment.schema.json name: hello-batch-dpl endpoint_name: hello-pipeline-batch type: pipeline component: azureml:hello_batch@latest settings: default_compute: batch-cluster
배포 만들기:
배포를 사용할 준비가 되었습니다.
배포 테스트
배포가 만들어지면 작업을 수신할 준비가 된 것입니다. 다음과 같이 기본 배포를 호출할 수 있습니다.
팁
이 예에서 파이프라인에는 입력이나 출력이 없습니다. 그러나 파이프라인 구성 요소에 일부가 필요한 경우 호출 시 표시될 수 있습니다. 입출력을 표시하는 방법에 대해 알아보려면 일괄 처리 엔드포인트에 대한 작업 및 입력 데이터 만들기를 참조하거나 전처리를 통해 일괄 처리 채점을 수행하기 위해 파이프라인을 배포하는 방법(미리 보기) 자습서를 참조하세요.
다음을 사용하여 쇼 진행 상황을 모니터링하고 로그를 스트리밍할 수 있습니다.
리소스 정리
완료되면 작업 영역에서 연결된 리소스를 삭제합니다.
다음 코드를 실행하여 일괄 처리 엔드포인트와 기본 배포를 삭제합니다. 삭제를 확인하려면 --yes
를 사용합니다.
az ml batch-endpoint delete -n $ENDPOINT_NAME --yes
(선택 사항) 이후 배포에서 컴퓨팅 클러스터를 재사용할 계획이 아닌 경우 컴퓨팅을 삭제합니다.