다음을 통해 공유


CLI(v2) 파이프라인 작업 YAML 스키마

적용 대상: Azure CLI ml 확장 v2(현재)

에서 원본 JSON 스키마를 https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json찾을 수 있습니다.

참고 항목

이 문서에 자세히 설명된 YAML 구문은 최신 버전의 ML CLI v2 확장에 대한 JSON 스키마를 기반으로 합니다. 이 구문은 최신 버전의 ML CLI v2 확장에서만 작동하도록 보장됩니다. https://azuremlschemasprod.azureedge.net/에서 이전 확장 버전에 대한 스키마를 찾을 수 있습니다.

YAML 구문

형식 설명 허용된 값 기본값
$schema string YAML 스키마입니다. Azure Machine Learning VS Code 확장을 사용하여 YAML 파일을 작성하는 경우 파일 맨 위에 포함하는 $schema 경우 스키마 및 리소스 완성을 호출할 수 있습니다.
type const 필수입니다. 작업의 유형입니다. pipeline
name string 작업의 이름입니다. 작업 영역의 모든 작업에서 고유해야 합니다. 생략하면 Azure Machine Learning에서 이름에 대한 GUID를 자동으로 생성합니다.
display_name string 스튜디오 UI에서 작업의 표시 이름입니다. 작업 영역 내에서 고유하지 않을 수 있습니다. 생략하면 Azure Machine Learning이 표시 이름에 대한 인간이 읽을 수 있는 형용사-명사 식별자를 자동으로 생성합니다.
experiment_name string 실험 이름 아래에 작업을 구성합니다. 각 작업의 실행 기록은 스튜디오의 "실험" 탭에 있는 해당 실험 아래에 구성됩니다. 생략하면 Azure Machine Learning은 기본적으로 experiment_name 작업이 만들어진 작업 디렉터리의 이름으로 설정됩니다.
tags 개체 작업에 대한 태그 사전입니다.
settings 개체 파이프라인 작업에 대한 기본 설정입니다. 구성 가능한 속성 집합에 대한 키의 특성을 settings 방문합니다.
jobs 개체 필수입니다. 파이프라인 내에서 단계로 실행할 개별 작업 집합의 사전입니다. 이러한 작업은 부모 파이프라인 작업의 자식 작업으로 간주됩니다.

키는 파이프라인 작업의 컨텍스트 내에서 단계의 이름입니다. 이 이름은 자식 작업의 고유한 작업 이름과 다릅니다. 값은 명령 작업 스키마 또는 스윕 작업 스키마따를 수 있는 작업 사양입니다. 현재 명령 작업 및 스윕 작업만 파이프라인에서 실행할 수 있습니다. 이후 릴리스는 다른 작업 유형을 지원합니다.
inputs 개체 파이프라인 작업에 대한 입력의 사전입니다. 키는 작업의 컨텍스트 내에서 입력에 대한 이름입니다. 값은 입력 값입니다.

파이프라인에서 개별 단계 작업의 입력은 식을 사용하여 이러한 파이프라인 입력을 참조할 ${{ parent.inputs.<input_name> }} 수 있습니다. 파이프라인 단계의 입력을 최상위 파이프라인 작업의 입력에 바인딩하는 방법에 대한 자세한 내용은 식 구문을 참조 하여 파이프라인 작업의 단계 간에 입력 및 출력을 바인딩합니다.
inputs.<input_name> 숫자, 정수, 부울, 문자열, 개체 리터럴 값(형식 번호, 정수, 부울 또는 문자열) 또는 작업 입력 데이터 사양이 포함된 개체 중 하나입니다.
outputs 개체 파이프라인 작업의 출력 구성 사전입니다. 키는 작업의 컨텍스트 내에서 출력에 대한 이름입니다. 값은 출력 구성입니다.

파이프라인의 개별 단계 작업의 출력은 식을 사용하여 이러한 파이프라인 출력을 참조할 ${{ parents.outputs.<output_name> }} 수 있습니다. 파이프라인 단계의 출력을 최상위 파이프라인 작업의 출력에 바인딩하는 방법에 대한 자세한 내용은 식 구문을 참조 하여 파이프라인 작업의 단계 간에 입력 및 출력을 바인딩합니다.
outputs.<output_name> 개체 개체를 비워 둘 수 있습니다. 이 경우 기본적으로 출력은 형식 uri_folder이며, Azure Machine Learning은 이 템플릿화된 경로를 {settings.datastore}/azureml/{job-name}/{output-name}/기반으로 출력에 대한 출력 위치를 시스템 생성합니다. 출력 디렉터리에 대한 파일은 읽기/쓰기 탑재를 통해 작성됩니다. 다른 출력 모드를 지정하려면 작업 출력 사양이 포함된 개체를 제공합니다.
identity 개체 ID는 데이터 액세스에 사용됩니다. UserIdentityConfiguration, ManagedIdentityConfiguration 또는 None일 수 있습니다. UserIdentityConfiguration인 경우 작업 제출자의 ID를 사용하여 입력 데이터에 액세스하고 결과를 출력 폴더에 씁니다. 그렇지 않으면 컴퓨팅 대상의 관리 ID가 사용됩니다.

settings 키의 특성

형식 설명 기본값
default_datastore string 파이프라인 작업의 기본 데이터 저장소로 사용할 데이터 저장소의 이름입니다. 이 값은 구문을 사용하여 작업 영역의 기존 데이터 저장소에 azureml:<datastore-name> 대한 참조여야 합니다. 부모 파이프라인 작업 또는 자식 단계 작업의 속성에 outputs 정의된 모든 출력은 이 데이터 저장소에 저장됩니다. 생략하면 출력이 작업 영역 Blob 데이터 저장소에 저장됩니다.
default_compute string 파이프라인의 모든 단계에 대한 기본 컴퓨팅으로 사용할 컴퓨팅 대상의 이름입니다. 단계 수준에서 정의된 컴퓨팅은 해당 특정 단계에 대해 이 기본 컴퓨팅을 재정의합니다. 이 값은 default_compute 구문을 사용하여 azureml:<compute-name> 작업 영역의 기존 컴퓨팅에 대한 참조여야 합니다.
continue_on_step_failure 부울 값 이 설정은 파이프라인의 단계가 실패할 경우 발생하는 상황을 결정합니다. 기본적으로 파이프라인은 한 단계가 실패하더라도 계속 실행됩니다. 즉, 실패한 단계에 의존하지 않는 모든 단계가 계속 실행됩니다. 그러나 이 설정을 False변경하면 전체 파이프라인 실행이 중지되고 한 단계가 실패하면 현재 실행 중인 모든 단계가 취소됩니다. True
force_rerun 부울 값 전체 파이프라인을 강제로 다시 실행할지 여부입니다. 기본값은 False입니다. 즉, 파이프라인이 다시 사용 조건을 충족하는 경우 기본적으로 이전 작업의 출력을 다시 사용하려고 합니다. 로 True설정하면 파이프라인의 모든 단계가 다시 실행됩니다. False

작업 입력

형식 설명 허용된 값 기본값
type string 작업 입력의 형식입니다. 단일 파일 원본을 가리키는 입력 데이터의 경우 uri_file을 지정하거나 폴더 원본을 가리키는 입력 데이터의 경우 uri_folder를 지정합니다. 자세한 내용은 데이터 액세스에 대해 자세히 알아보세요. uri_file, uri_folder, mltablemlflow_model uri_folder
path string 입력으로 사용할 데이터의 경로입니다. 다음과 같은 몇 가지 방법으로 지정할 수 있습니다.

- 데이터 원본 파일 또는 폴더에 대한 로컬 경로(예: path: ./iris.csv). 작업이 제출되는 동안 데이터가 업로드됩니다.

- 입력으로 사용할 파일 또는 폴더에 대한 클라우드 경로의 URI입니다. 지원되는 URI 형식은 azureml, https, wasbs, abfss, adl입니다. URI 형식 사용에 azureml:// 대한 자세한 내용은 Core yaml 구문을 참조 하세요.

- 입력으로 사용할 기존 등록된 Azure Machine Learning 데이터 자산입니다. 등록된 데이터 자산을 참조하려면 구문을 사용 azureml:<data_name>:<data_version> 하거나 azureml:<data_name>@latest (해당 데이터 자산의 최신 버전을 참조하려면) 예를 들면 다음과 같이 합니다. path: azureml:cifar10-data:1 path: azureml:cifar10-data@latest
mode string 컴퓨팅 대상에 데이터를 제공하는 방법의 모드입니다.

읽기 전용 탑재(ro_mount)의 경우 데이터는 탑재 경로로 사용됩니다. 폴더가 폴더로 탑재되고 파일이 파일로 탑재됩니다. Azure Machine Learning은 탑재 경로에 대한 입력을 확인합니다.

모드의 경우 download 데이터는 컴퓨팅 대상으로 다운로드됩니다. Azure Machine Learning은 다운로드한 경로에 대한 입력을 확인합니다.

데이터 아티팩트 또는 아티팩트 스토리지 위치의 URL만을 위해 데이터 자체를 탑재하거나 다운로드하는 대신 모드를 direct 사용합니다. 그러면 스토리지 위치의 URL이 작업 입력으로 전달됩니다. 이 경우 스토리지에 액세스하기 위한 자격 증명을 처리하는 것은 사용자의 책임입니다.
ro_mount, , downloaddirect ro_mount

작업 출력

형식 설명 허용된 값 기본값
type string 작업 출력 형식입니다. 기본 uri_folder 형식의 경우 출력은 폴더에 해당합니다. uri_file, uri_folder, mltablemlflow_model uri_folder
mode string 출력 파일 또는 파일을 대상 스토리지에 배달하는 모드입니다. 읽기/쓰기 탑재 모드(rw_mount)의 경우 출력 디렉터리가 탑재된 디렉터리가 됩니다. 업로드 모드의 경우 작성된 파일은 작업이 끝날 때 업로드됩니다. rw_mount, upload rw_mount

ID 구성

UserIdentityConfiguration

형식 설명 허용된 값
type const 필수입니다. ID 유형입니다. user_identity

ManagedIdentityConfiguration

형식 설명 허용된 값
type const 필수입니다. ID 유형입니다. managed 또는 managed_identity

설명

az ml job 명령을 사용하여 Azure Machine Learning 작업을 관리할 수 있습니다.

예제

예제는 예제 GitHub 리포지토리 를 방문하세요. 다음과 같은 몇 가지 항목이 나와 있습니다.

YAML: 헬로 파이프라인

$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: hello_pipeline
jobs:
  hello_job:
    command: echo "hello"
    environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
    compute: azureml:cpu-cluster
  world_job:
    command: echo "world"
    environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
    compute: azureml:cpu-cluster

YAML: 입출력 종속성

$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: hello_pipeline_io
jobs:
  hello_job:
    command: echo "hello" && echo "world" > ${{outputs.world_output}}/world.txt
    environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
    compute: azureml:cpu-cluster
    outputs:
      world_output:
  world_job:
    command: cat ${{inputs.world_input}}/world.txt
    environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
    compute: azureml:cpu-cluster
    inputs:
      world_input: ${{parent.jobs.hello_job.outputs.world_output}}

YAML: 일반적인 파이프라인 작업 설정

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

settings:
  default_datastore: azureml:workspaceblobstore
  default_compute: azureml:cpu-cluster
jobs:
  hello_job:
    command: echo 202204190 & echo "hello"
    environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
  world_job:
    command: echo 202204190 & echo "hello"
    environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest

YAML: 최상위 입력 및 일반적인 파이프라인 작업 설정 재정의

$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: hello_pipeline_abc
settings:
    default_compute: azureml:cpu-cluster
  
inputs:
  hello_string_top_level_input: "hello world"
jobs:
  a:
    command: echo hello ${{inputs.hello_string}}
    environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
    inputs:
      hello_string: ${{parent.inputs.hello_string_top_level_input}}
  b:
    command: echo "world" >> ${{outputs.world_output}}/world.txt
    environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
    outputs:
      world_output:
  c:
    command: echo ${{inputs.world_input}}/world.txt
    environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
    inputs:
      world_input: ${{parent.jobs.b.outputs.world_output}}

다음 단계