다음을 통해 공유


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

적용 대상: Azure CLI ml extension v1

참고 항목

이 문서에 자세히 설명된 YAML 구문은 ML CLI 확장의 v1 버전에 대한 JSON 스키마를 기반으로 합니다. 이 구문은 ML CLI v1 확장에서만 작동하도록 보장됩니다. ML CLI v2의 구문에 대한 v2(현재 버전)로 전환합니다.

Important

이 문서의 일부 Azure CLI 명령에서는 azure-cli-ml 또는 v1(Azure Machine Learning용 확장)을 사용합니다. v1 확장에 대한 지원은 2025년 9월 30일에 종료됩니다. v1 확장은 이 날짜까지 설치하고 사용할 수 있습니다.

2025년 9월 30일 이전에 ml 또는 v2 확장으로 전환하는 것이 좋습니다. v2 확장에 대한 자세한 내용은 Azure ML CLI 확장 및 Python SDK v2를 참조하세요.

YAML에서 기계 학습 파이프라인을 정의합니다. Azure CLI v1에 대해 기계 학습 확장을 사용하는 경우 많은 파이프라인 관련 명령에 파이프라인을 정의하는 YAML 파일이 있습니다.

다음 표에서는 YAML에서 파이프라인을 정의할 때 현재 CLI v1과 함께 사용하도록 지원되는 항목을 보여줍니다.

단계 유형 지원 여부
PythonScriptStep
ParallelRunStep
AdlaStep
AzureBatchStep
DatabricksStep
DataTransferStep
AutoMLStep 아니요
HyperDriveStep 아니요
ModuleStep
MPIStep 아니요
EstimatorStep 아니요

파이프라인 정의

파이프라인 정의는 파이프라인 클래스에 해당하는 다음 키를 사용합니다.

YAML 키 설명
name 파이프라인에 대한 설명입니다.
parameters 파이프라인에 대한 매개 변수입니다.
data_reference 실행에서 데이터를 사용할 수 있는 방법과 위치를 정의합니다.
default_compute 파이프라인의 모든 단계가 실행되는 기본 컴퓨팅 대상입니다.
steps 파이프라인에 사용되는 단계입니다.

매개 변수

이 섹션에서는 parameters PipelineParameter 클래스에 해당하는 다음 키를 사용합니다.

YAML 키 설명
type 매개 변수의 값 형식입니다. 유효한 형식은 string, int, floatbool또는 datapath.
default 기본값입니다.

각 매개 변수의 이름이 지정됩니다. 예를 들어 다음 YAML 코드 조각은 이름이 인 NumIterationsParameterDataPathParameter세 개의 매개 변수를 정의하고 NodeCountParameter다음을 정의합니다.

pipeline:
    name: SamplePipelineFromYaml
    parameters:
        NumIterationsParameter:
            type: int
            default: 40
        DataPathParameter:
            type: datapath
            default:
                datastore: workspaceblobstore
                path_on_datastore: sample2.txt
        NodeCountParameter:
            type: int
            default: 4

데이터 참조

이 섹션에서는 data_references DataReference에 해당하는 다음 키를 사용합니다.

YAML 키 설명
datastore 참조할 데이터 저장소입니다.
path_on_datastore 데이터 참조에 대한 백업 스토리지의 상대 경로입니다.

각 데이터 참조는 키에 포함되어 있습니다. 예를 들어 다음 YAML 코드 조각은 키 employee_data에 저장된 데이터 참조를 정의합니다.

pipeline:
    name: SamplePipelineFromYaml
    parameters:
        PipelineParam1:
            type: int
            default: 3
    data_references:
        employee_data:
            datastore: adftestadla
            path_on_datastore: "adla_sample/sample_input.csv"

단계

단계는 환경에서 실행할 파일과 함께 계산 환경을 정의합니다. 단계 유형을 정의하려면 다음 type 키를 사용합니다.

단계 유형 설명
AdlaStep Azure Data Lake Analytics를 사용하여 U-SQL 스크립트를 실행합니다. Adlastep 클래스에 해당합니다.
AzureBatchStep Azure Batch를 사용하여 작업을 실행합니다. AzureBatchStep 클래스에 해당합니다.
DatabricsStep Databricks Notebook, Python 스크립트 또는 JAR을 추가합니다. DatabricksStep 클래스에 해당합니다.
DataTransferStep 스토리지 옵션 간에 데이터를 전송합니다. DataTransferStep 클래스에 해당합니다.
PythonScriptStep Python 스크립트를 실행합니다. PythonScriptStep 클래스에 해당합니다.
ParallelRunStep Python 스크립트를 실행하여 대량의 데이터를 비동기 병렬 방식으로 처리합니다. ParallelRunStep 클래스에 해당합니다.

ADLA 단계

YAML 키 설명
script_name U-SQL 스크립트의 이름(상대)입니다 source_directory.
compute 이 단계에 사용할 Azure Data Lake 컴퓨팅 대상입니다.
parameters 파이프라인에 대한 매개 변수 입니다.
inputs 입력은 InputPortBinding, DataReference, PortDataReference, PipelineData, Dataset, DatasetDefinition 또는 PipelineDataset가 될 수 있습니다.
outputs 출력은 PipelineData 또는 OutputPortBinding 중 하나일 수 있습니다.
source_directory 스크립트, 어셈블리 등을 포함하는 디렉터리입니다.
priority 현재 작업에 사용할 우선 순위 값입니다.
params 이름-값 쌍의 사전입니다.
degree_of_parallelism 이 작업에 사용할 병렬 처리 수준입니다.
runtime_version Data Lake Analytics 엔진의 런타임 버전입니다.
allow_reuse 동일한 설정으로 다시 실행할 때 이전 결과를 단계에 다시 사용할 것인지 여부를 결정합니다.

다음 예제에는 ADLA 단계 정의가 포함되어 있습니다.

pipeline:
    name: SamplePipelineFromYaml
    parameters:
        PipelineParam1:
            type: int
            default: 3
    data_references:
        employee_data:
            datastore: adftestadla
            path_on_datastore: "adla_sample/sample_input.csv"
    default_compute: adlacomp
    steps:
        Step1:
            runconfig: "D:\\Yaml\\default_runconfig.yml"
            parameters:
                NUM_ITERATIONS_2:
                    source: PipelineParam1
                NUM_ITERATIONS_1: 7
            type: "AdlaStep"
            name: "MyAdlaStep"
            script_name: "sample_script.usql"
            source_directory: "D:\\scripts\\Adla"
            inputs:
                employee_data:
                    source: employee_data
            outputs:
                OutputData:
                    destination: Output4
                    datastore: adftestadla
                    bind_mode: mount

Azure Batch 단계

YAML 키 설명
compute 이 단계에 사용할 Azure Batch 컴퓨팅 대상입니다.
inputs 입력은 InputPortBinding, DataReference, PortDataReference, PipelineData, Dataset, DatasetDefinition 또는 PipelineDataset가 될 수 있습니다.
outputs 출력은 PipelineData 또는 OutputPortBinding 중 하나일 수 있습니다.
source_directory 모듈 이진 파일, 실행 파일, 어셈블리 등을 포함하는 디렉터리입니다.
executable 이 작업의 일부로 실행될 명령/실행 파일의 이름입니다.
create_pool 작업을 실행하기 전에 풀을 만들지 여부를 나타내는 부울 플래그입니다.
delete_batch_job_after_finish 작업이 완료된 후 Batch 계정에서 작업을 삭제할지 여부를 나타내는 부울 플래그입니다.
delete_batch_pool_after_finish 작업이 완료된 후 풀을 삭제할지 여부를 나타내는 부울 플래그입니다.
is_positive_exit_code_failure 작업이 양수 코드로 종료되는 경우 작업이 실패하는지 여부를 나타내는 부울 플래그입니다.
vm_image_urn True이면 create_pool VM에서 .를 사용합니다VirtualMachineConfiguration.
pool_id 작업이 실행될 풀의 ID입니다.
allow_reuse 동일한 설정으로 다시 실행할 때 이전 결과를 단계에 다시 사용할 것인지 여부를 결정합니다.

다음 예제에는 Azure Batch 단계 정의가 포함되어 있습니다.

pipeline:
    name: SamplePipelineFromYaml
    parameters:
        PipelineParam1:
            type: int
            default: 3
    data_references:
        input:
            datastore: workspaceblobstore
            path_on_datastore: "input.txt"
    default_compute: testbatch
    steps:
        Step1:
            runconfig: "D:\\Yaml\\default_runconfig.yml"
            parameters:
                NUM_ITERATIONS_2:
                    source: PipelineParam1
                NUM_ITERATIONS_1: 7
            type: "AzureBatchStep"
            name: "MyAzureBatchStep"
            pool_id: "MyPoolName"
            create_pool: true
            executable: "azurebatch.cmd"
            source_directory: "D:\\scripts\\AureBatch"
            allow_reuse: false
            inputs:
                input:
                    source: input
            outputs:
                output:
                    destination: output
                    datastore: workspaceblobstore

Databricks 단계

YAML 키 설명
compute 이 단계에 사용할 Azure Databricks 컴퓨팅 대상입니다.
inputs 입력은 InputPortBinding, DataReference, PortDataReference, PipelineData, Dataset, DatasetDefinition 또는 PipelineDataset가 될 수 있습니다.
outputs 출력은 PipelineData 또는 OutputPortBinding 중 하나일 수 있습니다.
run_name 이 실행에 대한 Databricks의 이름입니다.
source_directory 스크립트 및 기타 파일이 포함된 디렉터리입니다.
num_workers Databricks 실행 클러스터에 대한 고정 작업자 수입니다.
runconfig .runconfig 파일에 대한 경로입니다. 이 파일은 RunConfiguration 클래스의 YAML 표현입니다. 이 파일의 구조에 대한 자세한 내용은 runconfigschema.json을 참조하세요.
allow_reuse 동일한 설정으로 다시 실행할 때 이전 결과를 단계에 다시 사용할 것인지 여부를 결정합니다.

다음 예제에는 Databricks 단계가 포함되어 있습니다.

pipeline:
    name: SamplePipelineFromYaml
    parameters:
        PipelineParam1:
            type: int
            default: 3
    data_references:
        adls_test_data:
            datastore: adftestadla
            path_on_datastore: "testdata"
        blob_test_data:
            datastore: workspaceblobstore
            path_on_datastore: "dbtest"
    default_compute: mydatabricks
    steps:
        Step1:
            runconfig: "D:\\Yaml\\default_runconfig.yml"
            parameters:
                NUM_ITERATIONS_2:
                    source: PipelineParam1
                NUM_ITERATIONS_1: 7
            type: "DatabricksStep"
            name: "MyDatabrickStep"
            run_name: "DatabricksRun"
            python_script_name: "train-db-local.py"
            source_directory: "D:\\scripts\\Databricks"
            num_workers: 1
            allow_reuse: true
            inputs:
                blob_test_data:
                    source: blob_test_data
            outputs:
                OutputData:
                    destination: Output4
                    datastore: workspaceblobstore
                    bind_mode: mount

데이터 전송 단계

YAML 키 설명
compute 이 단계에 사용할 Azure Data Factory 컴퓨팅 대상입니다.
source_data_reference 데이터 전송 작업의 원본 역할을 하는 입력 연결입니다. 지원되는 값은 InputPortBinding, DataReference, PortDataReference, PipelineData, Dataset, DatasetDefinition 또는 PipelineDataset입니다.
destination_data_reference 데이터 전송 작업의 대상으로 사용되는 입력 연결입니다. 지원되는 값은 PipelineDataOutputPortBinding입니다.
allow_reuse 동일한 설정으로 다시 실행할 때 이전 결과를 단계에 다시 사용할 것인지 여부를 결정합니다.

다음 예제에는 데이터 전송 단계가 포함되어 있습니다.

pipeline:
    name: SamplePipelineFromYaml
    parameters:
        PipelineParam1:
            type: int
            default: 3
    data_references:
        adls_test_data:
            datastore: adftestadla
            path_on_datastore: "testdata"
        blob_test_data:
            datastore: workspaceblobstore
            path_on_datastore: "testdata"
    default_compute: adftest
    steps:
        Step1:
            runconfig: "D:\\Yaml\\default_runconfig.yml"
            parameters:
                NUM_ITERATIONS_2:
                    source: PipelineParam1
                NUM_ITERATIONS_1: 7
            type: "DataTransferStep"
            name: "MyDataTransferStep"
            adla_compute_name: adftest
            source_data_reference:
                adls_test_data:
                    source: adls_test_data
            destination_data_reference:
                blob_test_data:
                    source: blob_test_data

Python 스크립트 단계

YAML 키 설명
inputs 입력은 InputPortBinding, DataReference, PortDataReference, PipelineData, Dataset, DatasetDefinition 또는 PipelineDataset가 될 수 있습니다.
outputs 출력은 PipelineData 또는 OutputPortBinding 중 하나일 수 있습니다.
script_name Python 스크립트의 이름(상대 source_directory)입니다.
source_directory 스크립트, Conda 환경 등을 포함하는 디렉터리입니다.
runconfig .runconfig 파일에 대한 경로입니다. 이 파일은 RunConfiguration 클래스의 YAML 표현입니다. 이 파일의 구조에 대한 자세한 내용은 runconfig.json 참조하세요.
allow_reuse 동일한 설정으로 다시 실행할 때 이전 결과를 단계에 다시 사용할 것인지 여부를 결정합니다.

다음 예제에는 Python 스크립트 단계가 포함되어 있습니다.

pipeline:
    name: SamplePipelineFromYaml
    parameters:
        PipelineParam1:
            type: int
            default: 3
    data_references:
        DataReference1:
            datastore: workspaceblobstore
            path_on_datastore: testfolder/sample.txt
    default_compute: cpu-cluster
    steps:
        Step1:
            runconfig: "D:\\Yaml\\default_runconfig.yml"
            parameters:
                NUM_ITERATIONS_2:
                    source: PipelineParam1
                NUM_ITERATIONS_1: 7
            type: "PythonScriptStep"
            name: "MyPythonScriptStep"
            script_name: "train.py"
            allow_reuse: True
            source_directory: "D:\\scripts\\PythonScript"
            inputs:
                InputData:
                    source: DataReference1
            outputs:
                OutputData:
                    destination: Output4
                    datastore: workspaceblobstore
                    bind_mode: mount

병렬 실행 단계

YAML 키 설명
inputs 입력은 Dataset, DatasetDefinition 또는 PipelineDataset일 수 있습니다.
outputs 출력은 PipelineData 또는 OutputPortBinding 중 하나일 수 있습니다.
script_name Python 스크립트의 이름(상대 source_directory)입니다.
source_directory 스크립트, Conda 환경 등을 포함하는 디렉터리입니다.
parallel_run_config parallel_run_config.yml 파일에 대한 경로입니다. 이 파일은 ParallelRunConfig 클래스의 YAML 표현입니다.
allow_reuse 동일한 설정으로 다시 실행할 때 이전 결과를 단계에 다시 사용할 것인지 여부를 결정합니다.

다음 예제에는 병렬 실행 단계가 포함되어 있습니다.

pipeline:
    description: SamplePipelineFromYaml
    default_compute: cpu-cluster
    data_references:
        MyMinistInput:
            dataset_name: mnist_sample_data
    parameters:
        PipelineParamTimeout:
            type: int
            default: 600
    steps:        
        Step1:
            parallel_run_config: "yaml/parallel_run_config.yml"
            type: "ParallelRunStep"
            name: "parallel-run-step-1"
            allow_reuse: True
            arguments:
            - "--progress_update_timeout"
            - parameter:timeout_parameter
            - "--side_input"
            - side_input:SideInputData
            parameters:
                timeout_parameter:
                    source: PipelineParamTimeout
            inputs:
                InputData:
                    source: MyMinistInput
            side_inputs:
                SideInputData:
                    source: Output4
                    bind_mode: mount
            outputs:
                OutputDataStep2:
                    destination: Output5
                    datastore: workspaceblobstore
                    bind_mode: mount

여러 단계가 있는 파이프라인

YAML 키 설명
steps 하나 이상의 PipelineStep 정의 시퀀스입니다. destination 한 단계의 outputs 키는 다음 단계의 키가 inputs 됩니다source.
pipeline:
    name: SamplePipelineFromYAML
    description: Sample multistep YAML pipeline
    data_references:
        TitanicDS:
            dataset_name: 'titanic_ds'
            bind_mode: download
    default_compute: cpu-cluster
    steps:
        Dataprep:
            type: "PythonScriptStep"
            name: "DataPrep Step"
            compute: cpu-cluster
            runconfig: ".\\default_runconfig.yml"
            script_name: "prep.py"
            arguments:
            - '--train_path'
            - output:train_path
            - '--test_path'
            - output:test_path
            allow_reuse: True
            inputs:
                titanic_ds:
                    source: TitanicDS
                    bind_mode: download
            outputs:
                train_path:
                    destination: train_csv
                    datastore: workspaceblobstore
                test_path:
                    destination: test_csv
        Training:
            type: "PythonScriptStep"
            name: "Training Step"
            compute: cpu-cluster
            runconfig: ".\\default_runconfig.yml"
            script_name: "train.py"
            arguments:
            - "--train_path"
            - input:train_path
            - "--test_path"
            - input:test_path
            inputs:
                train_path:
                    source: train_csv
                    bind_mode: download
                test_path:
                    source: test_csv
                    bind_mode: download

일정

파이프라인에 대한 일정을 정의할 때 데이터 저장소가 트리거되거나 시간 간격에 따라 되풀이될 수 있습니다. 일정을 정의하는 데 사용되는 키는 다음과 같습니다.

YAML 키 설명
description 일정에 대한 설명입니다.
recurrence 일정이 되풀이될 경우 되풀이 설정을 포함합니다.
pipeline_parameters 파이프라인에 필요한 모든 매개 변수입니다.
wait_for_provisioning 일정 프로비전이 완료되기를 기다릴지 여부입니다.
wait_timeout 시간이 초과되기 전에 대기할 시간(초)입니다.
datastore_name 수정/추가된 Blob을 모니터링할 데이터 저장소입니다.
polling_interval 수정/추가된 Blob에 대한 폴링 간격(분)입니다. 기본값: 5분. 데이터 저장소 일정에 대해서만 지원됩니다.
data_path_parameter_name 변경된 Blob 경로로 설정할 데이터 경로 파이프라인 매개 변수의 이름입니다. 데이터 저장소 일정에 대해서만 지원됩니다.
continue_on_step_failure 단계가 실패할 경우 제출된 PipelineRun에서 다른 단계를 계속 실행할지 여부입니다. 제공된 경우 파이프라인의 continue_on_step_failure 설정을 재정의합니다.
path_on_datastore 선택 사항. 수정/추가된 BLOB를 모니터링할 데이터 저장소의 경로입니다. 경로는 데이터 저장소의 컨테이너 아래에 있으므로 일정 모니터의 실제 경로는 컨테이너/path_on_datastore입니다. 없는 경우 데이터 저장소 컨테이너가 모니터링됩니다. 하위 폴더 path_on_datastore 에서 수행한 추가/수정은 모니터링되지 않습니다. 데이터 저장소 일정에 대해서만 지원됩니다.

다음 예제에는 데이터 저장소 트리거 일정에 대한 정의가 포함되어 있습니다.

Schedule: 
      description: "Test create with datastore" 
      recurrence: ~ 
      pipeline_parameters: {} 
      wait_for_provisioning: True 
      wait_timeout: 3600 
      datastore_name: "workspaceblobstore" 
      polling_interval: 5 
      data_path_parameter_name: "input_data" 
      continue_on_step_failure: None 
      path_on_datastore: "file/path" 

되풀이 일정을 정의할 때 다음 키를 recurrence사용합니다.

YAML 키 설명
frequency 일정을 되풀이하는 빈도입니다. 유효한 값은 "Minute", "Hour", "Day""Week"또는 "Month".
interval 일정이 발생하는 빈도입니다. 정수 값은 일정이 다시 발생될 때까지 대기하는 시간 단위 수입니다.
start_time 일정의 시작 시간입니다. 값의 문자열 형식은 .입니다 YYYY-MM-DDThh:mm:ss. 시작 시간이 제공되지 않으면 첫 번째 워크로드가 즉시 실행되고 이후 워크로드는 일정에 따라 실행됩니다. 시작 시간이 과거인 경우 첫 번째 워크로드는 다음 계산된 런타임에 실행됩니다.
time_zone 시작 시간의 표준 시간대입니다. 표준 시간대가 제공되지 않으면 UTC가 사용됩니다.
hours frequency"Day" 또는 "Week"인 경우 0~23 사이의 정수 하나 이상을 쉼표로 구분해서 파이프라인이 실행되어야 하는 요일의 시간으로 지정할 수 있습니다. time_of_day 또는 hoursminutes만 사용할 수 있습니다.
minutes 있는 "Day" "Week"경우 frequency 파이프라인을 실행해야 하는 시간의 분으로 쉼표로 구분하여 0에서 59까지의 정수를 하나 이상 지정할 수 있습니다. time_of_day 또는 hoursminutes만 사용할 수 있습니다.
time_of_day "Day" "Week"경우 frequency 일정을 실행할 시간을 지정할 수 있습니다. 값의 문자열 형식은 .입니다 hh:mm. time_of_day 또는 hoursminutes만 사용할 수 있습니다.
week_days "Week"경우 frequency 일정이 실행되어야 하는 경우 하나 이상의 일을 쉼표로 구분하여 지정할 수 있습니다. 유효한 값은 "Monday","Tuesday", "Wednesday", "Thursday""Friday", "Saturday""Sunday".

다음 예제에는 되풀이 일정에 대한 정의가 포함되어 있습니다.

Schedule: 
    description: "Test create with recurrence" 
    recurrence: 
        frequency: Week # Can be "Minute", "Hour", "Day", "Week", or "Month". 
        interval: 1 # how often fires 
        start_time: 2019-06-07T10:50:00 
        time_zone: UTC 
        hours: 
        - 1 
        minutes: 
        - 0 
        time_of_day: null 
        week_days: 
        - Friday 
    pipeline_parameters: 
        'a': 1 
    wait_for_provisioning: True 
    wait_timeout: 3600 
    datastore_name: ~ 
    polling_interval: ~ 
    data_path_parameter_name: ~ 
    continue_on_step_failure: None 
    path_on_datastore: ~ 

다음 단계

Azure Machine Learning용 CLI 확장을 사용하는 방법 알아보기