다음을 통해 공유


CLI(v2) 명령 구성 요소 YAML 스키마

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

원본 JSON 스키마는 .에서 https://azuremlschemas.azureedge.net/latest/commandComponent.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 구성 요소의 형식입니다. command command
name string 필수입니다. 구성 요소의 이름입니다. 소문자로 시작해야 합니다. 허용되는 문자는 소문자, 숫자, 밑줄(_)입니다. 최대 길이는 255자입니다.
version string 구성 요소 버전입니다. 생략하면 Azure Machine Learning에서 버전을 자동으로 생성합니다.
display_name string 스튜디오 UI의 구성 요소 표시 이름입니다. 작업 영역 내에서 고유하지 않을 수 있습니다.
description string 구성 요소에 대한 설명입니다.
tags 개체 구성 요소에 대한 태그 사전입니다.
is_deterministic 부울 값 이 옵션은 구성 요소가 동일한 입력 데이터에 대해 동일한 출력을 생성할지 여부를 결정합니다. 일반적으로 URL에서 데이터 가져오기와 같이 외부 원본에서 데이터를 로드하는 구성 요소에 대해 이를 false 설정해야 합니다. URL의 데이터가 시간이 지남에 따라 변경될 수 있기 때문입니다. true
command string 필수입니다. 실행할 명령입니다.
code string 업로드하여 구성 요소에 사용할 소스 코드 디렉터리의 로컬 경로입니다.
environment 문자열 또는 개체 필수입니다. 구성 요소에 사용할 환경입니다. 이 값은 작업 영역에서 기존 버전의 환경에 대한 참조 또는 인라인 환경 사양일 수 있습니다.

기존 사용자 지정 환경을 참조하려면 구문을 사용합니다 azureml:<environment-name>:<environment-version> . 큐레이팅된 환경을 참조하려면 구문을 사용합니다 azureml://registries/azureml/environment/<curated-environment-name>/versions/<version-number> . 환경을 참조하는 방법에 대한 자세한 내용은 환경을 관리하는 방법을 참조 하세요.

환경을 인라인으로 정의하려면 환경 스키마를 따릅니다. 인라인 환경에서 지원되지 않으므로 nameversion 속성을 제외합니다.
distribution 개체 분산된 학습 시나리오에 대한 배포 구성입니다. MpiConfiguration, PyTorchConfiguration, TensorFlowConfiguration 중 하나입니다.
resources.instance_count 정수 작업에 사용할 노드 수입니다. 1
inputs 개체 구성 요소 입력의 사전입니다. 키는 구성 요소의 컨텍스트 내에 있는 입력의 이름이며 값은 구성 요소 입력 정의입니다.

${{ inputs.<input_name> }} 식을 사용하여 command에서 입력을 참조할 수 있습니다.
inputs.<input_name> 개체 구성 요소 입력 정의입니다. 구성 가능한 속성 집합의 구성 요소 입력을 참조하세요.
outputs 개체 구성 요소 출력의 사전입니다. 키는 구성 요소의 컨텍스트 내에 있는 출력의 이름이며 값은 구성 요소 출력 정의입니다.

${{ outputs.<output_name> }} 식을 사용하여 command에서 출력을 참조할 수 있습니다.
outputs.<output_name> 개체 구성 요소 출력 정의입니다. 구성 가능한 속성 집합의 구성 요소 출력을 참조하세요.

배포 구성

MpiConfiguration

형식 설명 허용된 값
type const 필수입니다. 배포 형식입니다. mpi
process_count_per_instance 정수 필수입니다. 작업에 대해 시작할 노드당 프로세스의 수입니다.

PyTorchConfiguration

형식 설명 허용된 값 Default value
type const 필수입니다. 배포 형식입니다. pytorch
process_count_per_instance 정수 작업에 대해 시작할 노드당 프로세스의 수입니다. 1

TensorFlowConfiguration

형식 설명 허용된 값 Default value
type const 필수입니다. 배포 형식입니다. tensorflow
worker_count 정수 작업에 대해 시작할 작업자 수입니다. 기본값은 resources.instance_count입니다.
parameter_server_count 정수 작업에 대해 시작할 매개 변수 서버의 수입니다. 0

구성 요소 입력

형식 설명 허용된 값 기본값
type string 필수입니다. 구성 요소 입력의 형식입니다. 데이터 액세스에 대해 자세히 알아보기 number, integer, boolean, string, uri_file, uri_folder, mltablemlflow_model
description string 입력에 대한 설명입니다.
default 숫자, 정수, 부울, 문자열 입력의 기본값입니다.
optional 부울 값 입력이 필요한지 여부입니다. true로 설정된 경우 $[[]]와 함께 선택적 입력을 포함하는 명령을 사용해야 합니다. false
min 정수 또는 숫자 입력에 허용되는 최솟값입니다. 이 필드는 type 필드가 number 또는 integer인 경우에만 지정할 수 있습니다.
max 정수 또는 숫자 입력에 허용되는 최댓값입니다. 이 필드는 type 필드가 number 또는 integer인 경우에만 지정할 수 있습니다.
enum 배열 입력에 허용되는 값 목록입니다. type 필드가 string인 경우에만 적용 가능합니다.

구성 요소 출력

형식 설명 허용된 값 기본값
type string 필수입니다. 구성 요소 출력의 형식입니다. uri_file, uri_folder, mltablemlflow_model
description string 출력에 대한 설명입니다.

설명

az ml component 명령은 Azure Machine Learning 구성 요소를 관리하는 데 사용할 수 있습니다.

예제

명령 구성 요소 예제는 예제 GitHub 리포지토리에서 사용할 수 있습니다. 선택 예제는 다음과 같습니다.

예제는 예제 GitHub 리포지토리에서 사용할 수 있습니다. 몇 가지는 다음과 같습니다.

YAML: Hello world 명령 구성 요소

$schema: https://azuremlschemas.azureedge.net/latest/commandComponent.schema.json
type: command

name: hello_python_world
display_name: Hello_Python_World
version: 1

code: ./src

environment: 
  image: python

command: >-
  python hello.py

YAML: 입력 형식이 다른 구성 요소

$schema: https://azuremlschemas.azureedge.net/latest/commandComponent.schema.json
name: train_data_component_cli
display_name: train_data
description: A example train component
tags:
  author: azureml-sdk-team
type: command
inputs:
  training_data: 
    type: uri_folder
  max_epocs:
    type: integer
    optional: true
  learning_rate: 
    type: number
    default: 0.01
    optional: true
  learning_rate_schedule: 
    type: string
    default: time-based
    optional: true
outputs:
  model_output:
    type: uri_folder
code: ./train_src
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
command: >-
  python train.py 
  --training_data ${{inputs.training_data}} 
  $[[--max_epocs ${{inputs.max_epocs}}]]
  $[[--learning_rate ${{inputs.learning_rate}}]]
  $[[--learning_rate_schedule ${{inputs.learning_rate_schedule}}]]
  --model_output ${{outputs.model_output}}

명령줄에서 선택적 입력 정의

입력이 optional = true로 설정된 경우 $[[]]를 사용하여 입력이 있는 명령줄을 수용해야 합니다. 예: $[[--input1 ${{inputs.input1}}]. 런타임 시 명령줄에는 다른 입력이 있을 수 있습니다.

  • 필수 training_datamodel_output 매개 변수만 지정하여 사용하는 경우 명령줄은 다음과 같습니다.
python train.py --training_data some_input_path --learning_rate 0.01 --learning_rate_schedule time-based --model_output some_output_path

런타임 시 값이 지정되지 않으면 learning_ratelearning_rate_schedule은 기본값을 사용합니다.

  • 런타임 중에 모든 입력/출력이 값을 제공하는 경우 명령줄은 다음과 같습니다.
python train.py --training_data some_input_path --max_epocs 10 --learning_rate 0.01 --learning_rate_schedule time-based --model_output some_output_path

일반적인 오류 및 권장 사항

다음은 구성 요소를 정의할 때 발생하는 몇 가지 일반적인 오류와 해당 권장 제안 사항입니다.

Errors 추천
command 1. $[[]]에는 선택적 입력만 있을 수 있습니다.
2. \를 사용하여 새 줄을 만드는 것은 명령에서 지원되지 않습니다.
3. 입력 또는 출력을 찾을 수 없습니다.
1. 명령에 사용된 모든 입력 또는 출력이 이미 inputsoutputs 섹션에 정의되어 있는지 확인하고 선택적 입력 $[[]] 또는 필수 입력 ${{}}에 올바른 형식을 사용합니다.
2. 새 줄을 만들 때 \를 사용하지 마세요.
environment 1. 환경 {envName} 버전 {envVersion}에 대한 정의가 없습니다.
2. 이름 {envName}, 버전 {envVersion}에 대한 환경이 없습니다.
3. ID가 {envAssetId}인 자산을 찾을 수 없습니다.
1. 구성 요소 정의에서 참조하는 환경 이름과 버전이 존재하는지 확인합니다.
2. 등록된 환경을 참조할 경우 버전을 지정해야 합니다.
입력/출력 1. 입력/출력 이름이 시스템 예약 매개 변수와 충돌합니다.
2. 입력 또는 출력의 중복된 이름입니다.
1. 입력/출력 이름으로 예약된 매개 변수(path, ld_library_path, user, logname, home, pwd, shell)를 사용하지 마세요.
2. 입력과 출력의 이름이 중복되지 않는지 확인합니다.

다음 단계