CLI(v2) 스윕 작업 YAML 스키마

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

원본 JSON 스키마는 .에서 https://azuremlschemas.azureedge.net/latest/sweepJob.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 필수입니다. 작업의 유형입니다. sweep sweep
name string 작업의 이름입니다. 작업 영역의 모든 작업에서 고유해야 합니다. 생략하면 Azure Machine Learning이 이름에 대한 GUID를 자동 생성합니다.
display_name string 스튜디오 UI에서 작업의 표시 이름입니다. 작업 영역 내에서 고유하지 않을 수 있습니다. 생략하면 Azure Machine Learning이 표시 이름에 대한 인간이 읽을 수 있는 형용사-명사 식별자를 자동으로 생성합니다.
experiment_name string 실험 이름 아래에 작업을 구성합니다. 각 작업의 실행 기록은 스튜디오의 "실험" 탭에 있는 해당 실험 아래에 구성됩니다. 생략하면 Azure Machine Learning은 기본적으로 experiment_name 작업이 만들어진 작업 디렉터리의 이름으로 설정됩니다.
description string 작업에 대한 설명입니다.
tags 개체 작업에 대한 태그 사전입니다.
sampling_algorithm 개체 필수입니다. search_space에 사용할 하이퍼 매개 변수 샘플링 알고리즘입니다. RandomSamplingAlgorithm, GridSamplingAlgorithm 또는 BayesianSamplingAlgorithm 중 하나입니다.
search_space 개체 필수입니다. 하이퍼 매개 변수 검색 공간의 사전입니다. 하이퍼 매개 변수 이름은 키이고 값은 매개 변수 식입니다.

하이퍼 매개 변수는 식에서 ${{ search_space.<hyperparameter> }} 참조 trial.command 할 수 있습니다.
search_space.<hyperparameter> 개체 사용할 수 있는 식 집합에 대한 매개 변수 식을 방문합니다.
objective.primary_metric string 필수입니다. 각 평가판 작업에서 보고하는 기본 메트릭의 이름입니다. 메트릭은 동일한 메트릭 이름을 사용하여 mlflow.log_metric() 사용자의 학습 스크립트에 기록되어야 합니다.
objective.goal string 필수입니다. objective.primary_metric의 최적화 목표입니다. maximize, minimize
early_termination 개체 사용할 조기 종료 정책입니다. 지정된 정책의 조건이 충족되면 평가판 작업이 취소됩니다. 생략하면 조기 종료 정책이 적용되지 않습니다. BanditPolicy, MedianStoppingPolicy, TruncationSelectionPolicy 중 하나입니다.
limits 개체 스윕 작업에 대한 한도입니다. limits 키의 특성을 참조하세요.
compute string 필수입니다. 구문을 사용하여 작업을 실행할 컴퓨팅 대상의 azureml:<compute_name> 이름입니다.
trial 개체 필수입니다. 각 평가판에 대한 작업 템플릿입니다. 각 평가판 작업에는 시스템에서 샘플링 search_space하는 하이퍼 매개 변수 값의 다른 조합이 제공됩니다. 키의 특성을 방문합니다trial.
inputs 개체 작업에 대한 입력의 사전입니다. 키는 작업의 컨텍스트 내에서 입력에 대한 이름이고 값은 입력 값입니다.

${{ inputs.<input_name> }} 식을 사용하여 command에서 입력을 참조할 수 있습니다.
inputs.<input_name> 숫자, 정수, 부울, 문자열, 개체 리터럴 값(형식 번호, 정수, 부울 또는 문자열) 또는 작업 입력 데이터 사양이 포함된 개체 중 하나입니다.
outputs 개체 작업의 출력 구성 사전입니다. 키는 작업의 컨텍스트 내에서 출력에 대한 이름이고 값은 출력 구성입니다.

${{ outputs.<output_name> }} 식을 사용하여 command에서 출력을 참조할 수 있습니다.
outputs.<output_name> 개체 개체를 비워 둘 수 있으며, 이 경우 기본적으로 출력은 형식이며 uri_folder Azure Machine Learning 시스템은 출력에 대한 출력 위치를 생성합니다. 출력 디렉터리에 대한 모든 파일은 읽기/쓰기 탑재를 통해 작성됩니다. 출력에 대해 다른 모드를 지정하려면 작업 출력 사양이 포함된 개체를 제공합니다.
identity 개체 ID는 데이터 액세스에 사용됩니다. 사용자 ID 구성, 관리 ID 구성 또는 없음일 수 있습니다. UserIdentityConfiguration의 경우 작업 제출자의 ID를 사용하여 입력 데이터에 액세스하고 결과를 출력 폴더에 씁니다. 그렇지 않으면 컴퓨팅 대상의 관리 ID가 사용됩니다.

샘플링 알고리즘

RandomSamplingAlgorithm

형식 설명 허용된 값 기본값
type const 필수입니다. 샘플링 알고리즘의 유형입니다. random
seed 정수 난수 생성을 초기화하는 데 사용할 임의 시드입니다. 생략하면 기본 시드 값이 null입니다.
rule string 사용할 임의 샘플링의 유형입니다. 기본값은 random단순 균일한 임의 샘플링을 사용하지만 sobol Sobol 준 임의 시퀀스를 사용합니다. random, sobol random

GridSamplingAlgorithm

형식 설명 허용된 값
type const 필수입니다. 샘플링 알고리즘 유형입니다. grid

BayesianSamplingAlgorithm

형식 설명 허용된 값
type const 필수입니다. 샘플링 알고리즘 유형입니다. bayesian

조기 종료 정책

BanditPolicy

형식 설명 허용된 값 기본값
type const 필수입니다. 정책 유형입니다. bandit
slack_factor number 가장 성능이 좋은 평가판에서 허용되는 거리를 계산하는 데 사용되는 비율입니다. slack_factor 또는 slack_amount 중 하나가 필요합니다.
slack_amount number 가장 성능이 좋은 평가판에서 허용되는 절대 거리입니다. slack_factor 또는 slack_amount 중 하나가 필요합니다.
evaluation_interval 정수 정책 적용에 대한 빈도입니다. 1
delay_evaluation 정수 첫 번째 정책 평가를 지연할 간격의 수입니다. 지정된 경우 정책은 delay_evaluation보다 크거나 같은 모든 evaluation_interval에 적용됩니다. 0

MedianStoppingPolicy

형식 설명 허용된 값 기본값
type const 필수입니다. 정책 유형입니다. median_stopping
evaluation_interval 정수 정책 적용에 대한 빈도입니다. 1
delay_evaluation 정수 첫 번째 정책 평가를 지연할 간격의 수입니다. 지정된 경우 정책은 delay_evaluation보다 크거나 같은 모든 evaluation_interval에 적용됩니다. 0

TruncationSelectionPolicy

형식 설명 허용된 값 기본값
type const 필수입니다. 정책 유형입니다. truncation_selection
truncation_percentage 정수 필수입니다. 각 평가 간격에서 취소할 평가판 작업의 백분율입니다.
evaluation_interval 정수 정책 적용에 대한 빈도입니다. 1
delay_evaluation 정수 첫 번째 정책 평가를 지연할 간격의 수입니다. 지정된 경우 정책은 delay_evaluation보다 크거나 같은 모든 evaluation_interval에 적용됩니다. 0

매개 변수 식

선택 항목

형식 설명 허용된 값
type const 필수입니다. 식 형식입니다. choice
values array 필수입니다. 선택할 불연속 값 목록입니다.

Randint

형식 설명 허용된 값
type const 필수입니다. 식 형식입니다. randint
upper 정수 필수입니다. 정수 범위에 대한 상한(제외)입니다.

Qlognormal, qnormal

형식 설명 허용된 값
type const 필수입니다. 식 형식입니다. qlognormal, qnormal
mu number 필수입니다. 정규 분포의 평균입니다.
sigma number 필수입니다. 정규 분포의 표준 편차입니다.
q 정수 필수입니다. 다듬기 요소입니다.

Qloguniform, quniform

형식 설명 허용된 값
type const 필수입니다. 식 형식입니다. qloguniform, quniform
min_value number 필수입니다. 범위의 최솟값(포함)입니다.
max_value number 필수입니다. 범위의 최댓값(포함)입니다.
q 정수 필수입니다. 다듬기 요소입니다.

Lognormal, normal

형식 설명 허용된 값
type const 필수입니다. 식 형식입니다. lognormal, normal
mu number 필수입니다. 정규 분포의 평균입니다.
sigma number 필수입니다. 정규 분포의 표준 편차입니다.

Loguniform

형식 설명 허용된 값
type const 필수입니다. 식 형식입니다. loguniform
min_value number 필수입니다. 범위의 최소값은 (포함)입니다 exp(min_value) .
max_value number 필수입니다. 범위의 최대값은 (포함)입니다 exp(max_value) .

Uniform

형식 설명 허용된 값
type const 필수입니다. 식 형식입니다. uniform
min_value number 필수입니다. 범위의 최솟값(포함)입니다.
max_value number 필수입니다. 범위의 최댓값(포함)입니다.

limits 키의 특성

형식 설명 기본값
max_total_trials 정수 최대 평가판 작업 수입니다. 1000
max_concurrent_trials 정수 동시에 실행할 수 있는 최대 평가판 작업 수입니다. 기본값은 max_total_trials입니다.
timeout 정수 전체 스윕 작업을 실행할 수 있는 최대 시간(초)입니다. 이 제한에 도달하면 시스템은 모든 평가판을 포함하여 스윕 작업을 취소합니다. 5184000
trial_timeout 정수 각 평가판 작업을 실행할 수 있는 최대 시간(초)입니다. 이 제한에 도달하면 시스템에서 평가판을 취소합니다.

trial 키의 특성

형식 설명 기본값
command string 필수입니다. 실행할 명령입니다.
code string 업로드하여 작업에 사용할 소스 코드 디렉터리의 로컬 경로입니다.
environment 문자열 또는 개체 필수입니다. 작업에 사용할 환경입니다. 이 값은 작업 영역에서 기존 버전의 환경에 대한 참조 또는 인라인 환경 사양일 수 있습니다.

기존 환경을 참조하려면 azureml:<environment-name>:<environment-version> 구문을 사용합니다.

환경을 인라인으로 정의하려면 환경 스키마를 따릅니다. 인라인 환경이 name 이를 지원하지 않으므로 속성 및 version 속성을 제외합니다.
environment_variables 개체 명령이 실행되는 프로세스에 설정할 환경 변수 이름-값 쌍의 사전입니다.
distribution 개체 분산된 학습 시나리오에 대한 배포 구성입니다. Mpi 구성, PyTorch 구성 또는 TensorFlow 구성 중 하나입니다.
resources.instance_count 정수 작업에 사용할 노드 수입니다. 1

배포 구성

MpiConfiguration
형식 설명 허용된 값
type const 필수입니다. 배포 형식입니다. mpi
process_count_per_instance 정수 필수입니다. 작업에 대해 시작할 노드당 프로세스의 수입니다.
PyTorchConfiguration
형식 설명 허용된 값 기본값
type const 필수입니다. 배포 형식입니다. pytorch
process_count_per_instance 정수 작업에 대해 시작할 노드당 프로세스의 수입니다. 1
TensorFlowConfiguration
형식 설명 허용된 값 기본값
type const 필수입니다. 배포 형식입니다. tensorflow
worker_count 정수 작업에 대해 시작할 작업자 수입니다. 기본값은 resources.instance_count입니다.
parameter_server_count 정수 작업에 대해 시작할 매개 변수 서버의 수입니다. 0

작업 입력

형식 설명 허용된 값 기본값
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> 하거나(해당 데이터 자산의 최신 버전을 참조하려면) 예를 들면 다음과 같습니다 path: azureml:cifar10-data:1path: azureml:cifar10-data@latest.azureml:<data_name>@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/sweepJob.schema.json
type: sweep
trial:
  command: >-
    python hello-sweep.py
    --A ${{inputs.A}}
    --B ${{search_space.B}}
    --C ${{search_space.C}}
  code: src
  environment: azureml://registries/azureml/environments/sklearn-1.0/labels/latest
inputs:
  A: 0.5
sampling_algorithm: random
search_space:
  B:
    type: choice
    values: ["hello", "world", "hello_world"]
  C:
    type: uniform
    min_value: 0.1
    max_value: 1.0
objective:
  goal: minimize
  primary_metric: random_metric
limits:
  max_total_trials: 4
  max_concurrent_trials: 2
  timeout: 3600
display_name: hello-sweep-example
experiment_name: hello-sweep-example
description: Hello sweep job example.

YAML: 기본 Python 모델 하이퍼 매개 변수 튜닝

$schema: https://azuremlschemas.azureedge.net/latest/sweepJob.schema.json
type: sweep
trial:
  code: src
  command: >-
    python main.py 
    --iris-csv ${{inputs.iris_csv}}
    --C ${{search_space.C}}
    --kernel ${{search_space.kernel}}
    --coef0 ${{search_space.coef0}}
  environment: azureml://registries/azureml/environments/sklearn-1.0/labels/latest
inputs:
  iris_csv: 
    type: uri_file
    path: wasbs://datasets@azuremlexamples.blob.core.windows.net/iris.csv
compute: azureml:cpu-cluster
sampling_algorithm: random
search_space:
  C:
    type: uniform
    min_value: 0.5
    max_value: 0.9
  kernel:
    type: choice
    values: ["rbf", "linear", "poly"]
  coef0:
    type: uniform
    min_value: 0.1
    max_value: 1
objective:
  goal: minimize
  primary_metric: training_f1_score
limits:
  max_total_trials: 20
  max_concurrent_trials: 10
  timeout: 7200
display_name: sklearn-iris-sweep-example
experiment_name: sklearn-iris-sweep-example
description: Sweep hyperparemeters for training a scikit-learn SVM on the Iris dataset.

다음 단계