CLI(v2) 자동화된 ML 텍스트 분류 다중 레이블 작업 YAML 스키마
적용 대상:Azure CLI ml 확장 v2(현재)
참고
이 문서에 자세히 설명된 YAML 구문은 최신 버전의 ML CLI v2 확장에 대한 JSON 스키마를 기반으로 합니다. 이 구문은 최신 버전의 ML CLI v2 확장에서만 작동하도록 보장됩니다. https://azuremlschemasprod.azureedge.net/에서 이전 확장 버전에 대한 스키마를 찾을 수 있습니다.
모든 Azure Machine Learning 엔터티에는 스키마화된 YAML 표현이 있습니다. .yml
또는 .yaml
확장을 사용하여 YAML 구성 파일에서 새 엔터티를 만들 수 있습니다.
이 문서에서는 NLP 텍스트 분류 다중 레이블 작업을 위해 이러한 YAML 파일을 구성하는 동안 발생할 수 있는 몇 가지 구문 개념에 대한 참조를 제공합니다.
원본 JSON 스키마는 https://azuremlsdk2.blob.core.windows.net/preview/0.0.1/autoMLNLPTextClassificationMultilabelJob.schema.json에서 찾을 수 있습니다.
YAML 구문
키 | 형식 | Description | 허용되는 값 | 기본값 |
---|---|---|---|---|
$schema |
문자열 | YAML 스키마를 로드할 위치/URL을 나타냅니다. 사용자가 Azure Machine Learning VS Code 확장을 사용하여 YAML 파일을 작성하는 경우 파일 맨 위에 $schema 를 포함하면 사용자가 스키마 및 리소스 완성을 호출할 수 있습니다. |
||
type |
const | 필수 요소. 작업의 유형입니다. | automl |
automl |
task |
const | 필수 요소. AutoML 작업의 유형입니다. 다중 레이블 분류에 대한 작업 설명: 가능한 클래스가 여러 개 있으며 각 샘플에 여러 클래스를 할당할 수 있습니다. 이 작업은 각 샘플에 대한 모든 클래스를 예측하는 것입니다. 예를 들어 영화 스크립트를 "코미디" 또는 "로맨틱" 또는 "로맨틱 코미디"로 분류합니다. |
text_classification_multilabel |
|
name |
문자열 | 작업의 이름입니다. 작업 영역의 모든 작업에서 고유해야 합니다. 생략하면 Azure Machine Learning이 이름의 GUID를 자동으로 생성합니다. | ||
display_name |
문자열 | 스튜디오 UI에서 작업의 표시 이름입니다. 작업 영역 내에서 고유하지 않을 수 있습니다. 생략하면 Azure Machine Learning이 표시 이름에 대한 사람이 읽을 수 있는 형용사-명사 식별자를 자동으로 생성합니다. | ||
experiment_name |
문자열 | 작업을 구성할 실험 이름입니다. 각 작업의 실행 기록은 스튜디오의 “실험” 탭에서 해당하는 실험 아래에 정리됩니다. 생략하면 Azure Machine Learning에서 작업(job)이 만들어진 작업(work) 디렉터리의 이름으로 기본 설정합니다. | ||
description |
문자열 | 작업에 대한 설명입니다. | ||
tags |
object | 작업에 대한 태그 사전입니다. | ||
compute |
문자열 | 작업을 실행할 컴퓨팅 대상의 이름입니다. 작업 영역에서 기존 컴퓨팅을 참조하기 위해 azureml:<compute_name> 구문을 사용합니다. |
||
log_verbosity |
number | 다양한 수준의 로그 세부 정보 표시입니다. | not_set , debug , info , warning , error , critical |
info |
primary_metric |
문자열 | AutoML이 모델 선택에 최적화되는 메트릭입니다. | accuracy |
accuracy |
target_column_name |
문자열 | 필수 요소. 예측을 대상으로 할 열의 이름입니다. 이 이름은 항상 지정해야 합니다. 이 매개 변수는 training_data 및 validation_data 에 적용할 수 있습니다. |
||
training_data |
object | 필수 사항입니다. 작업 내에서 사용할 데이터입니다. 자세한 내용은 다중 레이블 섹션을 참조하세요. | ||
validation_data |
object | 필수 사항입니다. 작업 내에서 사용할 유효성 검사 데이터입니다. 열 집합, 각 열의 데이터 형식, 왼쪽에서 오른쪽으로의 열 순서, 두 개 이상의 고유한 레이블을 기준으로 학습 데이터와 일치해야 합니다. 참고: 각 데이터 세트 내의 열 이름은 고유해야 합니다. 자세한 내용은 데이터 유효성 검사 섹션을 참조하세요. |
||
limits |
object | 작업의 제한 구성 사전입니다. 이 섹션의 매개 변수: max_concurrent_trials , max_nodes , max_trials , timeout_minutes , trial_timeout_minutes 자세한 내용은 한도를 참조하세요. |
||
training_parameters |
object | 작업에 대한 학습 매개 변수를 포함하는 사전입니다. 자세한 내용은 지원되는 하이퍼 매개 변수를 참조하세요. 참고: training_parameters 에 설정된 하이퍼 매개 변수는 모든 스위핑 실행에서 수정되므로 검색 공간에 포함할 필요가 없습니다. |
||
sweep |
object | 작업의 스윕 매개 변수를 포함하는 사전입니다. sampling_algorithm (필수) 및 early_termination 라는 2개의 키가 있습니다. 자세한 내용은 모델 스윕 및 하이퍼 매개 변수 튜닝 섹션을 참조하세요. |
||
search_space |
object | 하이퍼 매개 변수 검색 공간의 사전입니다. 키는 하이퍼 매개 변수의 이름이고 값은 매개 변수 식입니다. training_parameters 를 통해 수정할 수 있는 모든 매개 변수는 여기에서 지원됩니다(대신 스윕됨). 자세한 내용은 지원되는 하이퍼 매개 변수를 참조하세요. 하이퍼 매개 변수에는 두 가지 유형이 있습니다. - 개별 하이퍼 매개 변수: 개별 하이퍼 매개 변수는 불연속 값 중 choice 로 지정됩니다. choice 는 하나 이상의 쉼표로 구분된 값, range 개체 또는 임의의 list 개체일 수 있습니다. 고급 불연속 하이퍼 매개 변수는 배포를 사용하여 지정될 수도 있습니다(randint , qlognormal , qnormal , qloguniform , quniform ). 자세한 내용은 이 섹션을 참조하세요. - 연속 하이퍼 매개 변수: 연속 하이퍼 매개 변수는 연속 값의 범위에 대한 배포로 지정됩니다. 현재 지원되는 배포는 lognormal , normal , loguniform , uniform 입니다. 자세한 내용은 이 섹션을 참조하세요. 사용할 수 있는 식 집합은 매개 변수 식 섹션을 참조하세요. |
||
outputs |
object | 작업의 출력 구성 사전입니다. 키는 작업의 컨텍스트 내에서 출력에 대한 이름이고 값은 출력 구성입니다. | ||
outputs.best_model |
object | 최상의 모델을 위한 출력 구성 사전입니다. 자세한 내용은 최상의 모델 출력 구성을 참조하세요. |
구성에 사용되는 기타 구문:
제한
키 | 형식 | Description | 허용되는 값 | 기본값 |
---|---|---|---|---|
max_concurrent_trials |
정수 | 병렬로 실행될 최대 시도(자식 작업) 수를 나타냅니다. | 1 |
|
max_trials |
정수 | AutoML nlp 작업이 다양한 하이퍼 매개 변수 조합을 사용하여 학습 알고리즘을 실행하려고 시도할 수 있는 최대 실행 횟수를 나타냅니다. | 1 |
|
timeout_minutes |
정수 | 제출된 AutoML 작업을 실행하는 데 걸리는 최대 시간(분)을 나타냅니다. 이제 작업이 종료됩니다. AutoML NLP 작업의 기본 시간 제한은 7일입니다. | 10080 |
|
trial_timeout_minutes |
정수 | 제출된 AutoML 작업의 각 평가판(자식 작업)을 실행할 수 있는 최대 시간(분)을 나타냅니다. 이후에는 자식 작업이 종료됩니다. | ||
max_nodes |
정수 | 작업에 활용할 백업 컴퓨팅 클러스터의 최대 노드 수입니다. | 1 |
지원되는 하이퍼 매개 변수
다음 표에서는 AutoML NLP가 지원하는 하이퍼 매개 변수에 대해 설명합니다.
매개 변수 이름 | 설명 | Syntax |
---|---|---|
gradient_accumulation_steps | 최적화 프로그램의 단계 함수를 호출하여 그라데이션 하강의 한 단계를 수행하기 전에 그라데이션을 합산해야 하는 역방향 작업 수입니다. 이는 GPU에 맞는 최대 크기보다 gradient_accumulation_steps 배 더 큰 효과적인 일괄 처리 크기를 사용하는 데 활용됩니다. |
양의 정수여야 합니다. |
learning_rate | 초기 학습률입니다. | (0, 1) 범위의 부동 소수점이어야 합니다. |
learning_rate_scheduler | 학습률 스케줄러의 유형입니다. | linear, cosine, cosine_with_restarts, polynomial, constant, constant_with_warmup 중에서 선택해야 합니다. |
model_name | 지원되는 모델 중 하나의 이름입니다. | bert_base_cased, bert_base_uncased, bert_base_multilingual_cased, bert_base_german_cased, bert_large_cased, bert_large_uncased, distilbert_base_cased, distilbert_base_uncased, roberta_base, roberta_large, distilroberta_base, xlm_roberta_base, xlm_roberta_large, xlnet_base_cased, xlnet_large_cased 중에서 선택해야 합니다. |
number_of_epochs | 학습 Epoch의 수입니다. | 양의 정수여야 합니다. |
training_batch_size | 학습 일괄 처리 크기입니다. | 양의 정수여야 합니다. |
validation_batch_size | 유효성 검사 일괄 처리 크기입니다. | 양의 정수여야 합니다. |
warmup_ratio | 선형 준비에 사용되는 총 학습 단계의 비율은 0에서 learning_rate까지입니다. | [0, 1] 범위의 부동 소수점이어야 합니다. |
weight_decay | 최적화 프로그램이 sgd, adam 또는 adamw일 때 가중치 감소 값입니다. | [0, 1] 범위의 부동 소수점이어야 합니다. |
학습 또는 유효성 검사 데이터
키 | 형식 | Description | 허용되는 값 | 기본값 |
---|---|---|---|---|
description |
문자열 | 이 입력 데이터를 설명하는 자세한 정보입니다. | ||
path |
문자열 | 데이터를 로드해야 하는 경로입니다. 경로는 file 경로, folder 경로 또는 경로의 pattern 일 수 있습니다. pattern 은 데이터가 포함된 파일 및 폴더의 글로빙(* 및 ** )을 허용하는 검색 패턴을 지정합니다. 지원되는 URI 형식은 azureml , https , wasbs , abfss , adl 입니다. azureml:// URI 형식을 사용하는 방법에 대한 자세한 내용은 핵심 yaml 구문을 참조하세요. 아티팩트 파일 위치의 URI입니다. 이 URI에 스키마(예: http:, azureml: 등)가 없는 경우 로컬 참조로 간주되며 이 URI가 가리키는 파일은 엔터티를 만들 때 기본 작업 영역 blob-storage에 업로드됩니다. |
||
mode |
문자열 | 데이터 세트 제공 메커니즘입니다. | direct |
direct |
type |
const | nlp 모델을 생성하려면 사용자가 학습 데이터를 MLTable 형식으로 가져와야 합니다. 자세한 내용은 데이터 준비를 참조하세요. | mltable | mltable |
최상의 모델 출력 구성
키 | 형식 | Description | 허용되는 값 | 기본값 |
---|---|---|---|---|
type |
문자열 | 필수 요소. 최상의 모델 유형입니다. AutoML은 mlflow 모델만 허용합니다. | mlflow_model |
mlflow_model |
path |
문자열 | 필수 요소. model-artifact 파일이 저장되는 위치의 URI입니다. 이 URI에 스키마(예: http:, azureml: 등)가 없는 경우 로컬 참조로 간주되며 이 URI가 가리키는 파일은 엔터티를 만들 때 기본 작업 영역 blob-storage에 업로드됩니다. | ||
storage_uri |
문자열 | 모델의 HTTP URL입니다. 이 URL을 az storage copy -s THIS_URL -d DESTINATION_PATH --recursive 와 함께 사용하여 데이터를 다운로드하세요. |
설명
az ml job
명령은 Azure Machine Learning 작업을 관리하는 데 사용할 수 있습니다.
예
예제는 GitHub 리포지토리 예제에서 사용할 수 있습니다. NLP 텍스트 분류 다중 레이블 작업과 관련된 예는 아래에 링크되어 있습니다.
YAML: AutoML 텍스트 분류 다중 레이블 작업
$schema: https://azuremlsdk2.blob.core.windows.net/preview/0.0.1/autoMLJob.schema.json
type: automl
experiment_name: dpv2-cli-text-classification-multilabel-paper-cat
description: A text classification multilabel job using paper categorization data
compute: azureml:gpu-cluster
task: text_classification_multilabel
primary_metric: accuracy
log_verbosity: debug
limits:
timeout_minutes: 60
target_column_name: "terms"
training_data:
path: "./training-mltable-folder"
type: mltable
validation_data:
type: mltable
path: "./validation-mltable-folder"
# featurization:
# dataset_language: "eng"
YAML: AutoML 텍스트 분류 다중 레이블 파이프라인 작업
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
description: Pipeline using AutoML Text Classification Multilabel task
display_name: pipeline-with-text-classification-multilabel
experiment_name: pipeline-with-automl
settings:
default_compute: azureml:gpu-cluster
inputs:
text_classification_multilabel_training_data:
type: mltable
path: ./training-mltable-folder
text_classification_multilabel_validation_data:
type: mltable
path: ./validation-mltable-folder
jobs:
preprocessing_node:
type: command
component: file:./components/component_preprocessing.yaml
inputs:
train_data: ${{parent.inputs.text_classification_multilabel_training_data}}
validation_data: ${{parent.inputs.text_classification_multilabel_validation_data}}
outputs:
preprocessed_train_data:
type: mltable
preprocessed_validation_data:
type: mltable
text_classification_multilabel_node:
type: automl
task: text_classification_multilabel
log_verbosity: info
primary_metric: accuracy
limits:
max_trials: 1
timeout_minutes: 60
target_column_name: terms
training_data: ${{parent.jobs.preprocessing_node.outputs.preprocessed_train_data}}
validation_data: ${{parent.jobs.preprocessing_node.outputs.preprocessed_validation_data}}
# currently need to specify outputs "mlflow_model" explicitly to reference it in following nodes
outputs:
best_model:
type: mlflow_model
register_model_node:
type: command
component: file:./components/component_register_model.yaml
inputs:
model_input_path: ${{parent.jobs.text_classification_multilabel_node.outputs.best_model}}
model_base_name: paper_categorization_model