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 , mltable mlflow_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 , , download direct |
ro_mount |
작업 출력
키 | 형식 | 설명 | 허용된 값 | 기본값 |
---|---|---|---|---|
type |
string | 작업 출력 형식입니다. 기본 uri_folder 형식의 경우 출력은 폴더에 해당합니다. |
uri_file , uri_folder , mltable mlflow_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}}