적용 대상:
Azure CLI ml 확장 v2(현재)
Python SDK azure-ai-ml v2(현재)
이 문서에서는 Azure Machine Learning Python SDK v2를 사용하여 AutoML 학습 작업을 설정하는 방법을 알아봅니다. AutoML은 알고리즘과 하이퍼 매개 변수를 자동으로 선택하고 배포할 준비가 된 모델을 생성합니다. 이 문서에서는 AutoML 실험을 구성하는 데 사용할 수 있는 다양한 옵션에 대한 자세한 내용을 제공합니다.
코드 없는 환경을 선호하는 경우 Studio UI를 사용하여 테이블 형식 데이터에 대한 코드 없는 AutoML 학습을 설정할 수도 있습니다.
필수 구성 요소
- Azure 구독 Azure 구독이 없는 경우 시작하기 전에 체험 계정을 만듭니다. Azure Machine Learning 평가판 또는 유료 버전을 사용해 보세요.
- Azure Machine Learning 작업 영역 리소스가 없는 경우 시작할 리소스 만들기를 참조하세요.
SDK 정보를 사용하려면 Azure Machine Learning Python용 SDK v2를 설치합니다.
SDK는 두 가지 방법으로 설치할 수 있습니다.
- 최신 Azure Machine Learning Python SDK가 이미 설치되어 있고 ML 워크플로에 맞게 구성된 컴퓨팅 인스턴스를 만듭니다. 자세한 내용은 Azure Machine Learning 컴퓨팅 인스턴스 만들기를 참조하세요.
- 로컬 컴퓨터에 SDK 설치
작업 영역 설정
작업 영역에 연결하려면 구독, 리소스 그룹, 작업 영역을 제공해야 합니다.
작업 영역 세부 정보는 Azure Machine Learning 작업 영역에 연결하기 위해 MLClient의 azure.ai.ml에 입력됩니다.
다음 예에서는 기본 Azure 인증을 기본 작업 영역 구성 또는 폴더 구조의 config.json 파일에 있는 구성과 함께 사용합니다.
config.json을 찾을 수 없는 경우 MLClient를 만들 때 구독 ID, 리소스 그룹 및 작업 영역을 수동으로 제공해야 합니다.
from azure.identity import DefaultAzureCredential
from azure.ai.ml import MLClient
credential = DefaultAzureCredential()
ml_client = None
try:
ml_client = MLClient.from_config(credential)
except Exception as ex:
print(ex)
# Enter details of your Azure Machine Learning workspace
subscription_id = "<SUBSCRIPTION_ID>"
resource_group = "<RESOURCE_GROUP>"
workspace = "<AZUREML_WORKSPACE_NAME>"
ml_client = MLClient(credential, subscription_id, resource_group, workspace)
데이터 원본 및 서식 지정
SDK v2에서 학습 데이터를 제공하려면 MLTable을 통해 클라우드에 업로드해야 합니다.
MLTable에 데이터를 로드하기 위한 요구 사항:
- 데이터는 테이블 형식이어야 합니다.
- 예측하려는 값(대상 열)이 데이터에 있어야 합니다.
학습 데이터는 원격 컴퓨팅에서 액세스할 수 있어야 합니다. AutoML v2(Python SDK 및 CLI/YAML)는 MLTable 데이터 자산(v2)을 허용합니다. 이전 버전과의 호환성을 위해 동일한 입력 데이터 세트 속성을 통해 등록된 테이블 형식 데이터 세트인 v1의 v1 테이블 형식 데이터 세트도 지원합니다. v2에서 사용 가능한 MLTable을 사용하는 것이 좋습니다. 이 예에서 데이터는 로컬 경로 ./train_data/bank_marketing_train_data.csv에 저장됩니다.
다음 예와 같이 mltable Python SDK를 사용하여 MLTable을 만들 수 있습니다.
import mltable
paths = [
{'file': './train_data/bank_marketing_train_data.csv'}
]
train_table = mltable.from_delimited_files(paths)
train_table.save('./train_data')
이 코드는 파일 형식과 로드 지침이 포함된 새 파일 ./train_data/MLTable을 만듭니다.
이제 ./train_data 폴더에 MLTable 정의 파일과 데이터 파일 bank_marketing_train_data.csv이 있습니다.
MLTable에 대한 자세한 내용은 Azure Machine Learning에서 테이블 작업을 참조하세요.
학습, 유효성 검사 및 테스트 데이터
별도의 학습 데이터 세트와 유효성 검사 데이터 세트를 지정할 수 있습니다. AutoML 작업의 팩터리 함수에서 training_data 매개 변수에 학습 데이터를 제공해야 합니다.
validation_data 또는 n_cross_validation 매개 변수를 명시적으로 지정하지 않으면 AutoML은 기본 기술을 적용하여 유효성 검사를 수행하는 방법을 결정합니다. 이러한 결정은 training_data 매개 변수에 할당된 데이터 세트의 행 수에 따라 달라집니다.
| 학습 데이터 크기 | 유효성 검사 기법 |
|---|---|
| 20,000개 행 이상인 경우 | AutoML은 학습 및 유효성 검사 데이터 분할을 적용합니다. 기본값은 초기 학습 데이터 세트의 10%의 유효성을 검사 집합으로 사용합니다. 그런 다음 AutoML은 해당 유효성 검사 집합을 사용하여 메트릭을 계산합니다. |
| 20,000행 이하 | AutoML은 교차 유효성 검사 방식을 적용합니다. 기본 접기 횟수는 행의 수에 따라 달라집니다. 데이터 세트의 행이 1,000개 미만인 경우 AutoML은 10개의 폴드를 사용합니다. 행이 1,000~20,000 사이이거나 같은 경우 AutoML은 세 개의 폴드를 사용합니다. |
실험 실행 컴퓨팅
Python SDK v2(또는 CLI v2)를 사용한 AutoML 작업은 현재 Azure Machine Learning 원격 컴퓨팅 클러스터 또는 컴퓨팅 인스턴스에서만 지원됩니다. Python SDKv2 또는 CLIv2를 사용하여 컴퓨팅을 만드는 방법에 대한 자세한 내용은 Azure Machine Learning CLI, SDK 및 REST API를 사용하여 모델 학습을 참조하세요.
실험 설정 구성
여러 옵션을 사용하여 AutoML 실험을 구성할 수 있습니다. 이러한 구성 매개 변수는 task 메서드에서 설정됩니다.
및 training 설정을 사용하여 직업 학습 설정과 limits을 설정할 수도 있습니다.
다음 예에서는 정확도를 주요 메트릭으로 지정하고 5개의 교차 유효성 검사 폴드를 지정하는 분류 작업에 필요한 매개 변수를 보여 줍니다.
from azure.ai.ml.constants import AssetTypes
from azure.ai.ml import automl, Input
# note that this is a code snippet -- you might have to modify the variable values to run it successfully
# make an Input object for the training data
my_training_data_input = Input(
type=AssetTypes.MLTABLE, path="./data/training-mltable-folder"
)
# configure the classification job
classification_job = automl.classification(
compute=my_compute_name,
experiment_name=my_exp_name,
training_data=my_training_data_input,
target_column_name="y",
primary_metric="accuracy",
n_cross_validations=5,
enable_model_explainability=True,
tags={"my_custom_tag": "My custom value"}
)
# Limits are all optional
classification_job.set_limits(
timeout_minutes=600,
trial_timeout_minutes=20,
max_trials=5,
enable_early_termination=True,
)
# Training properties are optional
classification_job.set_training(
blocked_training_algorithms=["logistic_regression"],
enable_onnx_compatible_models=True
)
기계 학습 작업 종류 선택
AutoML 작업을 제출하기 전에 해결하려는 기계 학습 문제의 종류를 결정합니다. 이 문제는 해당 작업에 어떤 함수가 사용되는지, 그리고 어떤 모델 알고리즘이 적용되는지를 결정합니다.
AutoML은 다양한 작업 종류를 지원합니다.
테이블 형식 데이터 기반 작업
- 분류
- 회귀
- 예측
Computer Vision 작업, 다음 포함
- 이미지 분류
- 개체 감지
자연어 처리 작업, 다음 포함
- 텍스트 분류
- 엔터티 인식
자세한 내용은 작업 종류를 참조하세요. 예측 작업 설정에 대한 자세한 내용은 시계열 예측 모델을 학습하기 위한 AutoML 설정을 참조하세요.
지원되는 알고리즘
AutoML은 자동화 및 튜닝 프로세스에서 다양한 모델과 알고리즘을 시도합니다. 사용자는 알고리즘을 지정할 필요가 없습니다.
작업 방법은 적용할 알고리즘이나 모델 목록을 결정합니다. 포함하거나 제외할 사용 가능한 모델로 반복을 추가로 수정하려면 작업의 allowed_training_algorithms 구성에서 blocked_training_algorithms 또는 training 매개 변수를 사용합니다.
다음 표에서는 기계 학습 작업별로 지원되는 알고리즘을 살펴봅니다.
다른 알고리즘의 경우:
- 이미지 분류 다중 클래스 알고리즘
- 이미지 분류 다중 레이블 알고리즘
- 이미지 개체 감지 알고리즘
- NLP 텍스트 분류 다중 레이블 알고리즘
- NLP 텍스트 NER(명명된 엔터티 인식) 알고리즘
각 작업 종류의 Notebooks 예는 automl-standalone-jobs를 참조하세요.
기본 메트릭
primary_metric 매개 변수는 최적화를 위한 모델 학습 중에 사용할 메트릭을 결정합니다. 선택한 작업 종류에 따라 선택할 수 있는 메트릭이 결정됩니다.
AutoML에서 최적화할 기본 메트릭을 선택하는 것은 여러 가지 요인에 따라 달라집니다. 비즈니스 요구를 가장 잘 나타내는 메트릭을 선택하는 것이 가장 중요한 고려 사항입니다. 그런 다음 데이터 크기, 범위, 클래스 배포를 포함하여 해당 메트릭이 데이터 세트 프로필에 적합한지 고려합니다. 다음 섹션에는 작업 유형 및 비즈니스 시나리오에 따라 권장되는 기본 메트릭이 요약되어 있습니다.
이러한 메트릭의 구체적인 정의에 대해 알아보려면 AutoML 실험 결과 평가를 참조하세요.
다중 클래스 시나리오 분류를 위한 메트릭
이러한 메트릭은 테이블 형식 데이터, 이미지 또는 Computer Vision, NLP-텍스트(자연어 처리 텍스트)를 포함한 모든 분류 시나리오에 적용됩니다.
accuracy, recall_score_weighted, norm_macro_recall, precision_score_weighted와 같은 임계값 종속 메트릭은 데이터 세트가 작거나 클래스 기울이기(클래스 불균형)이 크거나 예상 메트릭 값이 0.0 또는 1.0에 매우 가까운 경우 최적화되지 않을 수 있습니다. 이러한 경우 기본 메트릭에 대해 AUC_weighted를 선택하는 것이 더 적합할 수 있습니다. AutoML이 완료되면 비즈니스 요구에 가장 적합한 메트릭을 기준으로 최적 모델을 선택할 수 있습니다.
| 메트릭 | 예제 사용 사례 |
|---|---|
accuracy |
이미지 분류, 정서 분석, 변동 예측 |
AUC_weighted |
부정 행위 탐지, 이미지 분류, 변칙 탐지/스팸 탐지 |
average_precision_score_weighted |
정서 분석 |
norm_macro_recall |
변동 예측 |
precision_score_weighted |
다중 레이블 시나리오 분류를 위한 메트릭
텍스트 분류 다중 레이블의 경우 현재 '정확도'가 지원되는 유일한 기본 메트릭입니다.
다중 레이블 이미지 분류의 경우 지원되는 기본 메트릭은 ClassificationMultilabelPrimaryMetrics 열거형에 정의되어 있습니다.
NLP 텍스트 명명된 엔터티 인식 시나리오에 대한 메트릭
NLP 텍스트 NER(명명된 엔터티 인식)의 경우 현재 '정확도'가 지원되는 유일한 기본 메트릭입니다.
회귀 시나리오에 대한 메트릭
r2_score, normalized_mean_absolute_error, normalized_root_mean_squared_error는 모두 예측 오류를 최소화하려고 시도합니다.
r2_score와 normalized_root_mean_squared_error는 모두 평균 제곱 오차를 최소화하는 반면 normalized_mean_absolute_error는 오차의 평균 절댓값을 최소화합니다. 절대값은 모든 크기의 오차를 동일하게 처리하고, 제곱 오차는 절댓값이 클수록 오차에 대한 페널티가 훨씬 더 큽니다. 더 큰 오류를 더 많이 처벌해야 하는지 여부에 따라 제곱 오차나 절대 오차를 최적화할 수 있습니다.
r2_score와 normalized_root_mean_squared_error의 주요 차이점은 정규화 방식과 의미입니다.
normalized_root_mean_squared_error는 범위를 기준으로 정규화되고 예측의 평균 오차 크기로 해석될 수 있는 제곱 평균 오차입니다.
r2_score는 데이터의 분산 추정치로 정규화된 평균 제곱 오차를 의미합니다. 이는 모델이 캡처할 수 있는 변화의 비율입니다.
참고
r2_score 및 normalized_root_mean_squared_error도 기본 메트릭과 비슷하게 동작합니다. 수정된 유효성 검사 집합을 적용하면 이 두 가지 메트릭은 동일한 대상, 평균 제곱 오차를 최적화하고 동일한 모델에 의해 최적화됩니다. 학습 집합만 사용 가능하고 교차 유효성 검사를 적용하는 경우에는 두 메트릭이 약간 다릅니다. normalized_root_mean_squared_error의 노멀라이저는 학습 집합의 범위로 고정되지만 r2_score의 노멀라이저는 모든 접기에 따라 달라질 수 있습니다(각 접기에 대한 분산이기 때문).
정확한 값 대신 순위가 중요한 경우 spearman_correlation이 더 나은 선택이 될 수 있습니다. 실제 값과 예측값 간의 순위 상관 관계를 측정합니다.
AutoML은 현재 예측과 관찰 간의 상대적 차이를 측정하는 기본 메트릭을 지원하지 않습니다. 메트릭 r2_score, normalized_mean_absolute_error 및 normalized_root_mean_squared_error는 모두 절대차의 척도입니다. 예를 들어, 예측이 관측치와 10단위만큼 다른 경우 관측치가 20단위 또는 20,000단위인 경우 이러한 메트릭은 동일한 값을 계산합니다. 대조적으로, 상대적 측정값인 백분율 차이는 각각 50%와 0.05%의 오류를 제공합니다! 상대적인 차이를 최적화하려면 지원되는 기본 메트릭을 사용하여 AutoML을 실행한 다음 가장 적합한 mean_absolute_percentage_error 또는 root_mean_squared_log_error를 사용하여 모델을 선택할 수 있습니다. 이러한 메트릭은 관찰 값이 0인 경우 정의되지 않으므로 항상 좋은 선택이 아닐 수 있습니다.
| 메트릭 | 예제 사용 사례 |
|---|---|
spearman_correlation |
|
normalized_root_mean_squared_error |
가격 예측(집/제품/팁), 점수 예측 검토 |
r2_score |
항공 지연, 급여 추정, 버그 해결 시간 |
normalized_mean_absolute_error |
시계열 예측 시나리오에 대한 메트릭
권장 사항은 회귀 시나리오에 대한 권장 사항과 유사합니다.
| 메트릭 | 예제 사용 사례 |
|---|---|
normalized_root_mean_squared_error |
가격 예측(예측), 재고 최적화, 수요 예측 |
r2_score |
가격 예측(예측), 재고 최적화, 수요 예측 |
normalized_mean_absolute_error |
이미지 개체 감지 시나리오에 대한 메트릭
이미지 개체 감지의 경우 지원되는 기본 메트릭은 ObjectDetectionPrimaryMetrics 열거형에 정의되어 있습니다.
이미지 인스턴스 분할 시나리오에 대한 메트릭
이미지 인스턴스 구분 시나리오의 경우 지원되는 기본 메트릭은 InstanceSegmentationPrimaryMetrics 열거형에 정의되어 있습니다.
데이터 기능화
모든 AutoML 실험에서 데이터는 자동으로 숫자와 숫자 벡터로 변환됩니다. 또한, 데이터는 서로 다른 규모의 기능에 중요한 알고리즘을 돕기 위해 크기 조정 및 정규화됩니다. 이러한 데이터 변환을 기능화라고 합니다.
참고
기능 정규화, 누락된 데이터 처리, 텍스트를 숫자로 변환하는 등의 AutoML 기능화 단계가 기본 모델의 일부가 됩니다. 예측을 위해 모델을 사용하면 학습 중에 적용된 동일한 기능화 단계가 입력 데이터에 자동으로 적용됩니다.
AutoML 작업을 구성할 때 featurization 설정을 사용하거나 사용하지 않도록 설정할 수 있습니다.
다음 표는 기능화에 대해 허용되는 설정을 보여 줍니다.
| 기능화 구성 | 설명 |
|---|---|
"mode": 'auto' |
전처리의 일부로 데이터 가드 레일 및 기능화 단계가 자동으로 수행됨을 나타냅니다. 이 값은 기본 설정입니다. |
"mode": 'off' |
기능화 단계를 자동으로 수행하면 안 된다는 것을 나타냅니다. |
"mode": 'custom' |
사용자 지정된 기능화 단계를 사용해야 함을 나타냅니다. |
다음 코드는 회귀 작업에 대해 사용자 지정 기능화를 제공하는 방법을 보여 줍니다.
from azure.ai.ml.automl import ColumnTransformer
transformer_params = {
"imputer": [
ColumnTransformer(fields=["CACH"], parameters={"strategy": "most_frequent"}),
ColumnTransformer(fields=["PRP"], parameters={"strategy": "most_frequent"}),
],
}
regression_job.set_featurization(
mode="custom",
transformer_params=transformer_params,
blocked_transformers=["LabelEncoding"],
column_name_and_types={"CHMIN": "Categorical"},
)
종료 기준
set_limits() 함수에서 몇 가지 옵션을 정의하여 작업이 완료되기 전에 실험을 종료할 수 있습니다.
| 조건 | 설명 |
|---|---|
| 조건 없음 | 종료 매개 변수를 정의하지 않으면 기본 메트릭에서 더 이상 진행되지 않을 때까지 실험이 계속됩니다. |
timeout |
실험을 계속 실행해야 하는 시간(분)을 정의합니다. 지정하지 않으면 기본 작업의 총 시간 제한은 6일(8,640분)입니다. 시간 제한을 1시간(60초) 이하로 지정하려면 데이터 세트의 크기가 10,000,000(행 X 열)보다 크지 않거나 오류가 발생하는지 확인하세요. 이 시간 제한에는 설정, 기능화 및 학습 실행이 포함되지만 모든 시도(자식 작업)가 완료된 후 이러한 작업이 발생해야 하므로 프로세스 마지막에 앙상블 및 모델 설명 실행은 포함되지 않습니다. |
trial_timeout_minutes |
각 시도(자식 작업)가 종료되기 전에 실행할 수 있는 최대 시간(분)입니다. 지정하지 않으면 AutoML은 1개월 또는 43,200분의 값을 사용합니다. |
enable_early_termination |
단기간에 점수가 개선되지 않을 경우 작업을 종료할지 여부 |
max_trials |
작업 중에 알고리즘과 하이퍼 매개 변수의 다른 조합을 사용하여 평가판할 수 있는 최대 평가판/실행 횟수. 시도 수를 지정하지 않으면 기본값은 1000입니다.
enable_early_termination을 사용하면 AutoML에서 더 적은 평가판이 사용될 수 있습니다. |
max_concurrent_trials |
병렬로 실행되는 최대 평가판(자식 작업) 수. 이 숫자를 클러스터 노드 수와 일치시키는 것이 좋습니다. |
실험 실행
실행하려는 실험을 제출하고 모델을 생성합니다.
참고
동일한 구성 설정과 기본 메트릭을 사용하여 여러 번 실험을 실행한 경우 각 실험의 최종 메트릭 점수 및 생성된 모델에 변동이 있을 가능성이 높습니다. AutoML이 채택하는 알고리즘에는 내재된 무작위성이 있어서 실험에 의한 모델 출력 및 권장된 모델의 최종 메트릭 점수(예: 정확도)에 약간의 변동을 일으킬 수 있습니다. 동일한 모델 이름이지만 사용된 하이퍼 매개 변수가 다른 결과가 나타날 수도 있습니다.
경고
작업 영역의 방화벽이나 네트워크 보안 그룹에 규칙을 설정한 경우 인바운드 및 아웃바운드 네트워크 트래픽 구성에 정의된 대로 인바운드 및 아웃바운드 네트워크 트래픽에 필요한 권한이 부여되었는지 확인합니다.
필수 조건에서 만들어진 MLClient를 사용하여 작업 영역에서 다음 명령을 실행할 수 있습니다.
# Submit the AutoML job
returned_job = ml_client.jobs.create_or_update(
classification_job
) # submit the job to the backend
print(f"Created job: {returned_job}")
# Get a URL for the status of the job
returned_job.services["Studio"].endpoint
클러스터에서 여러 자식 실행
이미 다른 실험을 실행 중인 클러스터에서 AutoML 실험 자식 실행을 실행할 수 있습니다. 타이밍은 클러스터에 포함된 노드 수와 해당 노드를 사용하여 다른 실험을 실행할 수 있는지 여부에 따라 달라집니다.
클러스터의 각 노드는 단일 학습 실행을 수행할 수 있는 개별 VM(가상 머신) 역할을 합니다. AutoML의 경우 이는 자식 실행을 의미합니다. 모든 노드가 사용 중이면 AutoML은 새 실험을 큐에 넣습니다. 사용 가능한 노드가 있는 경우, 새 실험은 사용 가능한 노드나 가상 머신에서 병렬로 자식 실행을 실행합니다.
자식 실행을 관리하고 실행 가능 시간을 확인하려면 실험별로 전용 클러스터를 만들고 실험의 max_concurrent_iterations 개수를 클러스터의 노드 개수와 일치시키는 것이 좋습니다. 이렇게 하면 원하는 수의 동시 자식 실행 및 반복을 통해 클러스터의 모든 노드를 동시에 사용할 수 있습니다.
max_concurrent_iterations 구성에서 limits를 구성합니다. 구성되지 않은 경우 기본적으로 실험당 하나의 동시 자식 실행/반복만 허용됩니다. 컴퓨팅 인스턴스의 경우 max_concurrent_trials를 컴퓨팅 인스턴스 가상 머신의 코어 수와 동일하게 설정할 수 있습니다.
모델 및 메트릭 탐색
AutoML은 학습 결과를 모니터링하고 평가할 수 있는 옵션을 제공합니다.
각 실행에 대해 제공되는 성능 차트와 메트릭의 정의와 예는 AutoML 실험 결과 평가를 참조하세요.
기능화 요약을 얻고 특정 모델에 추가된 기능을 이해하려면 기능화 투명도를 참조하세요.
Azure Machine Learning UI의 모델 페이지에서 특정 모델을 학습할 때 사용된 하이퍼 매개 변수를 볼 수 있으며, 사용된 내부 모델의 학습 코드를 보고 사용자 지정할 수도 있습니다.
모델 등록 및 배포
모델을 테스트하고 프로덕션에서 사용할 수 있는지 확인한 후에는 나중에 사용하기 위해 모델을 등록할 수 있습니다.
팁
등록된 모델의 경우 Azure Machine Learning 스튜디오를 사용하여 원클릭 배포를 사용할 수 있습니다. 모델 배포를 참조하세요.
파이프라인에서 AutoML 사용
Machine Learning Operations 워크플로에서 AutoML을 사용하려면 Azure Machine Learning 파이프라인에 AutoML 작업 단계를 추가하면 됩니다. 이 방식을 사용하면 데이터 준비 스크립트를 AutoML에 연결하여 전체 워크플로를 자동화할 수 있습니다. 그런 다음 결과로 나온 최상의 모델을 등록하고 유효성 검사합니다.
이 코드는 AutoML 분류 구성 요소와 결과 출력을 보여 주는 명령 구성 요소가 포함된 샘플 파이프라인입니다. 이 코드는 입력(학습 및 유효성 검사 데이터)과 출력(최적 모델)을 여러 단계로 참조하세요.
# Define pipeline
@pipeline(
description="AutoML Classification Pipeline",
)
def automl_classification(
classification_train_data,
classification_validation_data
):
# define the automl classification task with automl function
classification_node = classification(
training_data=classification_train_data,
validation_data=classification_validation_data,
target_column_name="y",
primary_metric="accuracy",
# currently need to specify outputs "mlflow_model" explictly to reference it in following nodes
outputs={"best_model": Output(type="mlflow_model")},
)
# set limits and training
classification_node.set_limits(max_trials=1)
classification_node.set_training(
enable_stack_ensemble=False,
enable_vote_ensemble=False
)
command_func = command(
inputs=dict(
automl_output=Input(type="mlflow_model")
),
command="ls ${{inputs.automl_output}}",
environment="AzureML-sklearn-0.24-ubuntu18.04-py37-cpu:latest"
)
show_output = command_func(automl_output=classification_node.outputs.best_model)
pipeline_job = automl_classification(
classification_train_data=Input(path="./training-mltable-folder/", type="mltable"),
classification_validation_data=Input(path="./validation-mltable-folder/", type="mltable"),
)
# set pipeline level compute
pipeline_job.settings.default_compute = compute_name
# submit the pipeline job
returned_pipeline_job = ml_client.jobs.create_or_update(
pipeline_job,
experiment_name=experiment_name
)
returned_pipeline_job
# ...
# Note that this is a snippet from the bankmarketing example you can find in our examples repo -> https://github.com/Azure/azureml-examples/tree/main/sdk/python/jobs/pipelines/1h_automl_in_pipeline/automl-classification-bankmarketing-in-pipeline
파이프라인에 AutoML을 포함하는 방법에 대한 자세한 내용은 리포지토리 예를 참조하세요.
대규모 AutoML 사용: 분산 학습
대규모 데이터 시나리오의 경우 AutoML은 제한된 모델 집합에 대한 분산 학습을 지원합니다.
| 분산 알고리즘 | 지원되는 작업 | 데이터 크기 제한(대략) |
|---|---|---|
| LightGBM | 분류, 회귀 | 1TB |
| TCNForecaster | 예측 | 200GB |
분산 학습 알고리즘은 모델 학습을 위해 여러 컴퓨팅 노드에 데이터를 자동으로 분할하고 배포합니다.
참고
교차 유효성 검사, 앙상블 모델, ONNX 지원 및 코드 생성은 현재 분산 학습 모드에서 지원되지 않습니다. 또한 AutoML은 유효성 검사, 설명 가능성 및 모델 평가에 사용되는 하위 샘플링 데이터 및 사용 가능한 기능을 제한하는 등의 선택을 할 수 있습니다.
분류 및 회귀를 위한 분산 학습
분류 또는 회귀에 분산 학습을 사용하려면 작업 개체의 training_mode 및 max_nodes 속성을 설정합니다.
| 속성 | 설명 |
|---|---|
| 훈련 모드 | 학습 모드를 나타냅니다. distributed 또는 non_distributed. 기본값은 non_distributed입니다. |
| 최대_노드 | 각 시행에서 학습에 사용할 노드 수. 이 설정은 4보다 크거나 같아야 합니다. |
다음 코드 샘플은 분류 작업에 대한 이러한 설정의 예를 보여 줍니다.
from azure.ai.ml.constants import TabularTrainingMode
# Set the training mode to distributed
classification_job.set_training(
allowed_training_algorithms=["LightGBM"],
training_mode=TabularTrainingMode.DISTRIBUTED
)
# Distribute training across 4 nodes for each trial
classification_job.set_limits(
max_nodes=4,
# other limit settings
)
참고
분류 및 회귀 작업을 위한 분산 학습은 현재 여러 동시 시도를 지원하지 않습니다. 모델 평가판은 max_nodes 노드를 사용하여 각 평가판마다 순차적으로 실행됩니다.
max_concurrent_trials 제한 설정은 현재 무시됩니다.
예측을 위한 분산 학습
예측 작업에 대한 분산 학습이 어떻게 작동하는지 알아보려면 대규모 예측을 참조하세요. 예측을 위해 분산 학습을 사용하려면 작업 개체의 training_mode, enable_dnn_training, max_nodes 및 선택적으로 max_concurrent_trials 속성을 설정해야 합니다.
| 속성 | 설명 |
|---|---|
| 훈련 모드 | 학습 모드를 나타냅니다. distributed 또는 non_distributed. 기본값은 non_distributed입니다. |
| enable_dnn_training | 심층 신경망 모델을 사용하도록 설정하는 플래그입니다. |
| max_concurrent_trials | 이 값은 병렬로 학습할 수 있는 최대 평가판 모델 수. 기본값은 1입니다. |
| 최대_노드 | 학습에 사용할 총 노드 수입니다. 이 설정은 2보다 크거나 같아야 합니다. 예측 작업의 경우 각 시험 모델은 $\text{max}\left(2, \text{floor}( \text{max_nodes} / \text{max_concurrent_trials}) \right)$ 노드를 사용하여 학습됩니다. |
다음 코드 샘플은 예측 작업에 대한 이러한 설정의 예를 보여 줍니다.
from azure.ai.ml.constants import TabularTrainingMode
# Set the training mode to distributed
forecasting_job.set_training(
enable_dnn_training=True,
allowed_training_algorithms=["TCNForecaster"],
training_mode=TabularTrainingMode.DISTRIBUTED
)
# Distribute training across 4 nodes
# Train 2 trial models in parallel => 2 nodes per trial
forecasting_job.set_limits(
max_concurrent_trials=2,
max_nodes=4,
# other limit settings
)
전체 구성 코드 샘플은 구성 및 작업 제출에 대한 이전 섹션을 참조하세요.
관련 콘텐츠
- 모델 배포 방법 및 위치에 대해 자세히 알아봅니다.
- 시계열 예측 모델 학습을 위해 AutoML을 설정하는 방법에 대해 자세히 알아봅니다.