다음을 통해 공유


기존 파이프라인 작업을 일괄 처리 엔드포인트에 배포

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

일괄 처리 엔드포인트를 사용하면 파이프라인 구성 요소를 배포할 수 있어 Azure Machine Learning에서 파이프라인을 운영하는 편리한 방법을 제공합니다. 일괄 처리 엔드포인트는 배포를 위해 파이프라인 구성 요소를 허용합니다. 그러나 성공적으로 실행되는 파이프라인 작업이 이미 있는 경우 Azure Machine Learning은 해당 작업을 일괄 처리 엔드포인트에 대한 입력으로 수락하고 파이프라인 구성 요소를 자동으로 만들 수 있습니다. 이 문서에서는 기존 파이프라인 작업을 일괄 처리 배포를 위한 입력으로 사용하는 방법을 알아봅니다.

다음에 대해 알아봅니다.

  • 배포하려는 파이프라인 작업 실행 및 만들기
  • 기존 작업에서 일괄 처리 배포 만들기
  • 배포 테스트

이 예에 대해

이 예에서는 "hello world!"를 인쇄하는 간단한 명령 작업으로 구성된 파이프라인을 배포할 예정입니다. 배포 전에 파이프라인 구성 요소를 등록하는 대신 배포에 사용할 기존 파이프라인 작업을 나타냅니다. 그런 다음 Azure Machine Learning은 파이프라인 구성 요소를 자동으로 만들고 이를 일괄 처리 엔드포인트 파이프라인 구성 요소 배포로 배포합니다.

이 문서의 예는 azureml-examples 리포지토리에 포함된 코드 샘플을 기반으로 합니다. YAML 및 기타 파일을 복사/붙여넣기하지 않고 로컬로 명령을 실행하려면 먼저 리포지토리를 복제한 후 디렉터리를 폴더로 변경합니다.

git clone https://github.com/Azure/azureml-examples --depth 1
cd azureml-examples/cli

이 예의 파일은 다음 위치에 있습니다.

cd endpoints/batch/deploy-pipelines/hello-batch

필수 조건

이 문서의 단계를 수행하기 전에 다음과 같은 필수 구성 요소가 있는지 확인합니다.

  • Azure 구독 Azure 구독이 아직 없는 경우 시작하기 전에 체험 계정을 만듭니다. Azure Machine Learning 평가판 또는 유료 버전을 사용해 보세요.

  • Azure Machine Learning 작업 영역 작업 영역이 없으면 Azure Machine Learning 작업 영역 관리 문서의 단계에서 새로 만듭니다.

  • 작업 영역에 다음 권한이 있는지 확인합니다.

    • 일괄 처리 엔드포인트 및 배포 만들기 또는 관리: Microsoft.MachineLearningServices/workspaces/batchEndpoints/*를 허용하는 소유자, 기여자 또는 사용자 지정 역할을 사용합니다.

    • 작업 영역 리소스 그룹에서 ARM 배포 만들기: 작업 영역이 배포된 리소스 그룹에서 Microsoft.Resources/deployments/write를 허용하는 소유자, 기여자 또는 사용자 지정 역할을 사용합니다.

  • Azure Machine Learning을 사용하려면 다음 소프트웨어를 설치해야 합니다.

    Azure CLImlAzure 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>

배포하려는 파이프라인 작업을 실행합니다.

이 섹션에서는 파이프라인 작업을 실행하는 것으로 시작합니다.

다음 pipeline-job.yml 파일에는 파이프라인 작업에 대한 구성이 포함되어 있습니다.

pipeline-job.yml

$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline

experiment_name: hello-pipeline-batch
display_name: hello-pipeline-batch-job
description: This job demonstrates how to run the a pipeline component in a pipeline job. You can use this example to test a component in an standalone job before deploying it in an endpoint.

compute: batch-cluster
component: hello-component/hello.yml

파이프라인 작업을 만듭니다.

JOB_NAME=$(az ml job create -f pipeline-job.yml --query name -o tsv)

일괄 처리 엔드포인트 만들기

파이프라인 작업을 배포하기 전에 배포를 호스팅할 일괄 처리 엔드포인트를 배포해야 합니다.

  1. 엔드포인트에 사용할 이름을 입력합니다. 일괄 처리 엔드포인트의 이름은 호출 URI를 구성하는 데 사용되므로 각 지역에서 고유해야 합니다. 고유성을 보장하려면 다음 코드에 지정된 이름에 후행 문자를 추가합니다.

    ENDPOINT_NAME="hello-batch"
    
  2. 엔드포인트 구성:

    endpoint.yml 파일에는 엔드포인트 구성이 포함되어 있습니다.

    endpoint.yml

    $schema: https://azuremlschemas.azureedge.net/latest/batchEndpoint.schema.json
    name: hello-batch
    description: A hello world endpoint for component deployments.
    auth_mode: aad_token
    
  3. 엔드포인트 만들기:

    az ml batch-endpoint create --name $ENDPOINT_NAME  -f endpoint.yml
    
  4. 엔드포인트 URI를 쿼리합니다.

    az ml batch-endpoint show --name $ENDPOINT_NAME
    

파이프라인 작업 배포

파이프라인 구성 요소를 배포하려면 기존 작업에서 일괄 처리 배포를 만들어야 합니다.

  1. 배포하려는 작업의 이름을 Azure Machine Learning에 알려야 합니다. 이 경우 해당 작업은 다음 변수에 표시됩니다.

    echo $JOB_NAME
    
  2. 배포를 구성합니다.

    deployment-from-job.yml 파일에는 배포 구성이 포함되어 있습니다. 이 배포가 파이프라인 작업에서 만들어졌음을 나타내기 위해 component 대신 job_definition 키를 어떻게 사용하는지 확인합니다.

    deployment-from-job.yml

    $schema: https://azuremlschemas.azureedge.net/latest/pipelineComponentBatchDeployment.schema.json
    name: hello-batch-from-job
    endpoint_name: hello-pipeline-batch
    type: pipeline
    job_definition: azureml:job_name_placeholder
    settings:
        continue_on_step_failure: false
        default_compute: batch-cluster
    

    이 구성에서는 batch-cluster라는 컴퓨팅 클러스터가 있다고 가정합니다. 이 값을 클러스터 이름으로 바꿀 수 있습니다.

  3. 배포 만들기:

    다음 코드를 실행하여 일괄 처리 배포를 일괄 처리 엔드포인트 아래에 만들고 기본 배포로 설정합니다.

    az ml batch-deployment create --endpoint $ENDPOINT_NAME --set job_definition=azureml:$JOB_NAME -f deployment-from-job.yml
    

    --set job_definition=azureml:$JOB_NAME의 사용에 주목합니다. 작업 이름은 고유하므로 여기에서는 작업 영역에서 작업을 실행할 때 작업 이름을 변경하기 위해 --set 명령을 사용합니다.

  4. 배포를 사용할 준비가 되었습니다.

배포 테스트

배포가 만들어지면 작업을 수신할 준비가 된 것입니다. 다음과 같이 기본 배포를 호출할 수 있습니다.

JOB_NAME=$(az ml batch-endpoint invoke -n $ENDPOINT_NAME --query name -o tsv)

다음을 사용하여 쇼 진행 상황을 모니터링하고 로그를 스트리밍할 수 있습니다.

az ml job stream -n $JOB_NAME

리소스 정리

완료되면 작업 영역에서 연결된 리소스를 삭제합니다.

다음 코드를 실행하여 일괄 처리 엔드포인트와 기본 배포를 삭제합니다. 삭제를 확인하려면 --yes를 사용합니다.

az ml batch-endpoint delete -n $ENDPOINT_NAME --yes

다음 단계