Python을 사용하여 AutoML 학습 설정

적용 대상:Python SDK azureml v1

이 가이드에서는 Azure Machine Learning 자동화된 ML을 사용하여 Azure Machine Learning Python SDK로 AutoML(자동화된 ML) 학습 실행을 설정하는 방법을 알아봅니다. 자동화된 ML은 알고리즘과 하이퍼 매개 변수를 자동으로 선택하고 배포할 준비가 된 모델을 생성합니다. 이 가이드에서는 자동화된 ML 실험을 구성하는 데 사용할 수 있는 다양한 옵션에 대해 자세히 설명합니다.

엔드투엔드 예제는 자습서: AutoML - 회귀 모델 학습을 참조하세요.

코드 없는 환경을 선호하는 경우 Azure Machine Learning 스튜디오에서 코드 없는 AutoML 학습을 설정할 수도 있습니다.

필수 조건

이 문서의 내용을 진행하려면 다음 항목이 필요합니다.

실험 유형 선택

실험을 시작하기 전에 해결하려는 기계 학습 문제의 종류를 결정해야 합니다. 자동화된 Machine Learning은 classification, regressionforecasting의 작업 유형을 지원합니다. 작업 유형에 대해 자세히 알아보세요.

참고 항목

NLP(자연어 처리) 작업에 대한 지원: 이미지 분류(다중 클래스 및 다중 레이블) 및 명명된 엔터티 인식은 공개 미리 보기에서 사용할 수 있습니다. AutoML의 NLP 작업에 대해 자세히 알아보기.

이러한 미리 보기 기능은 서비스 수준 계약 없이 제공됩니다. 특정 기능이 지원되지 않거나 기능이 제한될 수 있습니다. 자세한 내용은 Microsoft Azure Preview에 대한 추가 사용 약관을 참조하세요.

다음 코드는 AutoMLConfig 생성자에서 task 매개 변수를 사용하여 실험 형식을 classification으로 지정합니다.

from azureml.train.automl import AutoMLConfig

# task can be one of classification, regression, forecasting
automl_config = AutoMLConfig(task = "classification")

데이터 원본 및 형식

자동화된 Machine Learning은 로컬 데스크톱 또는 Azure Blob Storage와 같은 클라우드의 데이터를 지원합니다. 데이터를 Pandas 데이터 프레임 또는 Azure Machine Learning TabularDataset로 읽어 들일 수 있습니다. 데이터 세트에 대해 자세히 알아보세요.

기계 학습에서 데이터 학습을 위한 요구 사항:

  • 데이터는 테이블 형식이어야 합니다.
  • 예측하려는 값(대상 열)이 데이터에 있어야 합니다.

Important

자동화된 ML 실험은 ID 기반 데이터 액세스를 사용하는 데이터 세트에 대한 학습을 지원하지 않습니다.

원격 실험의 경우 원격 컴퓨팅에서 학습 데이터에 액세스할 수 있어야 합니다. 자동화된 ML은 원격 컴퓨팅에서 작업하는 경우에만 Azure Machine Learning TabularDatasets를 허용합니다.

Azure Machine Learning 데이터 세트는 다음과 같은 기능을 보여줍니다.

  • 정적 파일 또는 URL 원본에서 작업 영역으로 데이터를 손쉽게 전송합니다.
  • 클라우드 컴퓨팅 리소스에서 실행할 때 데이터를 학습 스크립트에 사용 가능 Dataset 클래스를 사용하여 원격 컴퓨팅 대상에 데이터를 탑재하는 예제는 데이터 세트를 사용하여 학습하는 방법을 참조하세요.

다음 코드는 웹 URL에서 TabularDataset을 만듭니다. 로컬 파일 및 데이터 저장소와 같은 다른 원본에서 데이터 세트를 만드는 방법에 대한 코드 예제는 TabularDataset 만들기를 참조하세요.

from azureml.core.dataset import Dataset
data = "https://automlsamplenotebookdata.blob.core.windows.net/automl-sample-notebook-data/creditcard.csv"
dataset = Dataset.Tabular.from_delimited_files(data)

로컬 컴퓨팅 실험의 경우 처리 시간을 단축하기 위해 pandas 데이터 프레임을 권장합니다.

import pandas as pd
from sklearn.model_selection import train_test_split

df = pd.read_csv("your-local-file.csv")
train_data, test_data = train_test_split(df, test_size=0.1, random_state=42)
label = "label-col-name"

학습, 유효성 검사 및 테스트 데이터

별도의 학습 데이터 및 유효성 검사 데이터 세트AutoMLConfig 생성자에서 직접 지정할 수 있습니다. AutoML 실험에 대한 학습, 유효성 검사, 교차 유효성 검사 및 테스트 데이터를 구성하는 방법을 자세히 알아보세요.

validation_data 또는 n_cross_validation 매개 변수를 명시적으로 지정하지 않는 경우 자동화된 ML은 유효성 검사가 수행되는 방식을 결정하는 기본 기술을 적용합니다. 이러한 결정은 training_data 매개 변수에 할당된 데이터 세트의 행 수에 따라 달라집니다.

학습 데이터 크기 유효성 검사 기법
20,000개 행 이상인 경우 학습/유효성 검사 데이터 분할이 적용됩니다. 기본값은 초기 학습 데이터 세트의 10%를 유효성 검사 세트로 사용하는 것입니다. 그러면 해당 유효성 검사 집합이 메트릭 계산에 사용됩니다.
20,000개 행 이하인 경우 교차 유효성 검사 방법이 적용됩니다. 기본 접기 횟수는 행의 수에 따라 달라집니다.
데이터 세트의 행이 1,000개 이하인 경우 10겹 접기가 사용됩니다.
행이 1,000 ~ 2만 개 사이인 경우 세 개의 접기가 사용됩니다.

자동화된 ML이 생성한 모델을 평가하는 테스트 데이터(미리 보기)를 업로드할 수 있습니다. 이러한 기능은 실험적 미리 보기 기능이며 언제든지 변경될 수 있습니다. 다음의 방법을 알아보세요.

코드 없는 환경을 선호하는 경우 스튜디오 UI를 사용하여 AutoML 설정의 12단계를 참조하세요.

큰 데이터

자동화된 ML은 작은 가상 머신에서 빅 데이터에 대한 모델을 성공적으로 빌드할 수 있는 큰 데이터 학습에 대해 제한된 수의 알고리즘을 지원합니다. 자동화된 ML 추론은 데이터 크기, 가상 머신 메모리 크기, 실험 시간 제한, 기능화 설정과 같은 속성에 따라 이러한 큰 데이터 알고리즘을 적용해야 하는지 여부를 결정합니다. 자동화된 ML에서 지원되는 모델에 대해 자세히 알아보세요.

이러한 추론을 재정의하려면 다음 설정을 적용하세요.

작업 설정 주의
데이터 스트리밍 알고리즘 차단 AutoMLConfig 개체의 blocked_models이며 사용하지 않으려는 모델을 나열합니다. 실행이 실패하거나 실행 시간이 길어집니다.
데이터 스트리밍 알고리즘 사용 AutoMLConfig 개체의 allowed_models이며 사용하려는 모델을 나열합니다.
데이터 스트리밍 알고리즘 사용
(Studio UI 실험)
사용하려는 빅 데이터 알고리즘을 제외한 모든 모델을 차단합니다.

실험 실행 컴퓨팅

다음으로, 모델을 학습할 위치를 결정합니다. 자동화된 ML 학습 실험은 다음과 같은 컴퓨팅 옵션에서 실행할 수 있습니다.

  • 로컬 컴퓨팅 선택: 작은 데이터와 짧은 학습을 사용하는 초기 검색 또는 데모(예: 자식 실행당 몇 초 또는 몇 분)에 대한 시나리오인 경우 로컬 컴퓨터에 대한 학습이 더 적합할 수 있습니다. 설치 시간이 없으며, 인프라 리소스(PC 또는 VM)를 직접 사용할 수 있습니다. 로컬 계산 예는 이 Notebook 을 참조하세요.

  • 원격 ML 컴퓨팅 클러스터 선택: 더 긴 학습이 필요한 모델을 생성하는 프로덕션 교육처럼 대규모 데이터세트를 사용하여 교육하는 경우, AutoML이 클러스터 노드 간에 학습을 병렬화하므로 원격 컴퓨팅은 엔드투엔드 시간 성능을 훨씬 더 향상할 수 있습니다. 원격 컴퓨팅에서 내부 인프라의 시작 시간은 자식 실행당 약 1.5분, VM이 아직 가동되지 않은 경우 클러스터 인프라의 시간이 추가됩니다. Azure Machine Learning Managed Compute는 Azure 가상 머신의 클러스터에서 기계 학습 모델을 학습시킬 수 있는 관리되는 서비스입니다. 컴퓨팅 인스턴스도 컴퓨팅 대상으로 지원됩니다.

  • Azure 구독의 Azure Databricks 클러스터. 자세한 내용은 자동화된 ML에 대한 Azure Databricks 클러스터 설정에서 확인할 수 있습니다. Azure Databricks를 사용하는 Notebook의 예는 이 GitHub 사이트를 참조하세요.

컴퓨팅 대상을 선택하는 경우 고려해야 하는 요소는 다음과 같습니다.

장점 단점
로컬 컴퓨팅 대상
  • 환경 시작 시간 없음
  • 기능의 하위 세트
  • 실행을 병렬화할 수 없음
  • 큰 데이터의 경우 더 심각함
  • 학습 중 데이터 스트리밍 없음
  • DNN 기반 기능화 없음
  • Python SDK만 해당
  • 원격 ML 컴퓨팅 클러스터
  • 전체 기능 세트
  • 자식 실행 병렬화
  • 큰 데이터 지원
  • DNN 기반 기능화
  • 주문형 컴퓨팅 클러스터의 동적 확장성
  • 코드리스 환경(웹 UI)도 사용할 수 있음
  • 클러스터 노드의 시작 시간
  • 각 자식 실행의 시작 시간
  • 실험 설정 구성

    자동화된 ML 실험을 구성하는 데 사용할 수 있는 몇 가지 옵션이 있습니다. 이러한 매개 변수는 AutoMLConfig 개체를 인스턴스화하여 설정됩니다. 매개 변수의 전체 목록은 AutoMLConfig 클래스를 참조하세요.

    다음은 분류 작업을 위한 예제입니다. 실험에서는 AUC 가중치를 기본 메트릭으로 사용하고 실험 시간 제한이 30분으로 설정되고 교차 유효성 검사 접기가 2회로 설정됩니다.

        automl_classifier=AutoMLConfig(task='classification',
                                       primary_metric='AUC_weighted',
                                       experiment_timeout_minutes=30,
                                       blocked_models=['XGBoostClassifier'],
                                       training_data=train_data,
                                       label_column_name=label,
                                       n_cross_validations=2)
    

    추가로 설치해야 하는 예측 작업을 구성할 수도 있습니다. 자세한 내용은 시계열 예측을 위한 AutoML 설정 문서를 참조하세요.

        time_series_settings = {
                                'time_column_name': time_column_name,
                                'time_series_id_column_names': time_series_id_column_names,
                                'forecast_horizon': n_test_periods
                               }
        
        automl_config = AutoMLConfig(
                                     task = 'forecasting',
                                     debug_log='automl_oj_sales_errors.log',
                                     primary_metric='normalized_root_mean_squared_error',
                                     experiment_timeout_minutes=20,
                                     training_data=train_data,
                                     label_column_name=label,
                                     n_cross_validations=5,
                                     path=project_folder,
                                     verbosity=logging.INFO,
                                     **time_series_settings
                                    )
    

    지원되는 모델

    자동화된 Machine Learning은 자동화 및 튜닝 프로세스 동안 다양한 모델 및 알고리즘을 지원합니다. 사용자는 알고리즘을 지정할 필요가 없습니다.

    적용할 알고리즘 또는 모델의 목록을 결정하는 세 가지 서로 다른 task 매개 변수 값이 있습니다. allowed_models 또는 blocked_models 매개 변수를 사용하여 가용 모델을 포함 또는 제외하도록 반복을 추가로 수정합니다. 다음 표에는 작업 유형별로 지원되는 모델이 요약되어 나와 있습니다.

    참고 항목

    자동화된 ML에서 만든 모델을 ONNX 모델로 내보내려는 경우 별표(*)가 표시된 알고리즘만 ONNX 형식으로 변환할 수 있습니다. 모델을 ONNX로 변환하는 방법에 대해 자세히 알아보세요.

    ONNX는 현재 분류 및 회귀 작업만 지원한다는 사실도 기억하세요.

    분류 회귀 시계열 예측
    로지스틱 회귀* Elastic Net* AutoARIMA
    Light GBM* Light GBM* Prophet
    경사 부스팅* 경사 부스팅* Elastic Net
    의사 결정 트리* 의사 결정 트리* Light GBM
    K Nearest Neighbors* K Nearest Neighbors* 경사 부스팅
    Linear SVC* LARS Lasso* 의사 결정 트리
    SVC(Support Vector Classification)* SGD(Stochastic Gradient Descent)* Arimax
    임의 포리스트* Random Forest LARS Lasso
    Extremely Randomized Trees* Extremely Randomized Trees* SGD(Stochastic Gradient Descent)
    Xgboost* Xgboost* Random Forest
    평균 퍼셉트론 분류자 온라인 그라데이션 하강 회귀 변수 Xgboost
    Naive Bayes* 고속 선형 회귀 변수 ForecastTCN
    SGD(Stochastic Gradient Descent)* Naive
    선형 SVM 분류자* SeasonalNaive
    평균
    SeasonalAverage
    ExponentialSmoothing

    기본 메트릭

    primary_metric 매개 변수는 최적화를 위해 모델을 학습시키는 동안 사용할 메트릭을 결정합니다. 사용할 수 있는 메트릭은 선택한 작업 유형에 따라 결정됩니다.

    자동화된 ML을 통해 최적화할 기본 메트릭 선택은 다양한 요인에 따라 달라집니다. 비즈니스 요구를 가장 잘 나타내는 메트릭을 선택하는 것이 가장 중요한 고려 사항입니다. 그런 다음, 메트릭이 데이터 세트 프로필(데이터 크기, 범위, 클래스 분포 등)에 적합한지를 고려합니다. 다음 섹션에는 작업 유형 및 비즈니스 시나리오에 따라 권장되는 기본 메트릭이 요약되어 있습니다.

    자동화된 Machine Learning 결과 이해에서 이러한 메트릭의 정의에 대해 알아보세요.

    분류 시나리오에 대한 메트릭

    accuracy, recall_score_weighted, norm_macro_recallprecision_score_weighted와 같은 임계값 종속 메트릭은 데이터 세트가 작거나, 클래스 오차(클래스 불균형)가 매우 크거나, 예상된 메트릭 값이 0.0 또는 1.0에 매우 근접한 경우에도 최적화되지 않을 수 있습니다. 이러한 경우 기본 메트릭에 대해 AUC_weighted를 선택하는 것이 더 적합할 수 있습니다. 자동화된 ML이 완료되면 비즈니스 요구에 가장 적합한 메트릭을 기준으로 최적 모델을 선택할 수 있습니다.

    메트릭 사용 사례 예제
    accuracy 이미지 분류, 정서 분석, 변동 예측
    AUC_weighted 부정 행위 탐지, 이미지 분류, 변칙 탐지/스팸 탐지
    average_precision_score_weighted 관심도 분석
    norm_macro_recall 변동 예측
    precision_score_weighted

    회귀 시나리오에 대한 메트릭

    r2_score, normalized_mean_absolute_errornormalized_root_mean_squared_error는 모두 예측 오류를 최소화하려고 합니다. r2_scorenormalized_root_mean_squared_error는 모두 평균 제곱 오차를 최소화하는 반면 normalized_mean_absolute_error는 오차의 평균 절대값을 최소화합니다. 절대 값은 모든 크기의 오차를 동일하게 취급하고 제곱 오차는 오차의 절대값이 클수록 페널티가 커집니다. 오차가 클수록 페널티도 커야 하는지 여부에 따라 제곱 오차 또는 절대 오차를 최적화하도록 선택할 수 있습니다.

    r2_scorenormalized_root_mean_squared_error의 주요 차이점은 정규화되는 방법 및 그 의미입니다. normalized_root_mean_squared_error는 범위를 기준으로 정규화되고 예측의 평균 오차 크기로 해석될 수 있는 제곱 평균 오차입니다. r2_score는 데이터의 분산 추정치로 정규화된 평균 제곱 오차를 의미합니다. 이는 모델에서 캡처할 수 있는 변화의 비율입니다.

    참고 항목

    r2_scorenormalized_root_mean_squared_error도 기본 메트릭과 비슷하게 동작합니다. 고정 유효성 검사 집합을 적용하는 경우 이 두 메트릭은 동일한 대상, 즉 평균 제곱 오차를 최적화하며, 동일한 모델에 의해 최적화됩니다. 학습 집합만 사용 가능하고 교차 유효성 검사를 적용하는 경우에는 두 메트릭이 약간 다릅니다. normalized_root_mean_squared_error의 노멀라이저는 학습 집합의 범위로 고정되지만 r2_score의 노멀라이저는 모든 접기에 따라 달라질 수 있습니다(각 접기에 대한 분산이기 때문).

    정확한 값 대신 순위가 중요한 경우에는 spearman_correlation이 실제 값과 예측 간의 순위 상관 관계를 측정하므로 더 적합할 수 있습니다.

    그러나 현재 회귀에 대한 기본 메트릭은 상대 차이를 해결하지 않습니다. r2_score, normalized_mean_absolute_errornormalized_root_mean_squared_error는 두 데이터 요소가 회귀 분석을 위한 동일한 데이터 세트에 속하거나 시계열 식별자로 지정된 동일한 시계열인 경우, 2만 달러 예측 오차를 급여가 3만 달러인 작업자나 수입이 2천만 달러인 작업자 모두 동일하게 처리합니다. 실제로는 3만 달러에서 2만 달러를 예측하는 것은 근접하지 않은 반면(상대 오차가 67%로 큼), 2천만 달러 급여에서 2만 달러를 예측하는 것은 매우 근접합니다(상대 오차가 0.1%로 적음). 상대 차이의 문제를 해결하려면 사용 가능한 기본 메트릭을 사용하여 모델을 학습한 다음 최선의 mean_absolute_percentage_error 또는 root_mean_squared_log_error를 갖는 모델을 선택할 수 있습니다.

    메트릭 사용 사례 예제
    spearman_correlation
    normalized_root_mean_squared_error 가격 예측(집/제품/팁), 점수 예측 검토
    r2_score 항공 지연, 급여 추정, 버그 해결 시간
    normalized_mean_absolute_error

    시계열 예측 시나리오에 대한 메트릭

    권장 사항은 회귀 시나리오에서 언급된 사항과 유사합니다.

    메트릭 사용 사례 예제
    normalized_root_mean_squared_error 가격 예측(예측), 재고 최적화, 수요 예측
    r2_score 가격 예측(예측), 재고 최적화, 수요 예측
    normalized_mean_absolute_error

    데이터 기능화

    모든 자동화된 ML 실험에서는 규모가 서로 다른 기능에 중요한 ‘특정’ 알고리즘을 지원할 수 있도록 데이터가 자동으로 스케일링 및 정규화됩니다. 이러한 스케일링 및 정규화를 기능화라고 합니다. 자세한 내용 및 코드 예제는 AutoML의 기능화를 참조하세요.

    참고 항목

    자동화된 Machine Learning 기능화 단계(기능 정규화, 누락된 데이터 처리, 텍스트를 숫자로 변환 등)는 기본 모델의 일부가 됩니다. 예측에 모델을 사용하는 경우 학습 중에 적용되는 동일한 기능화 단계가 입력 데이터에 자동으로 적용됩니다.

    AutoMLConfig 개체에서 실험을 구성할 때 featurization 설정을 사용하거나 사용하지 않도록 설정할 수 있습니다. 다음 표는 AutoMLConfig 개체에서 기능화에 허용되는 설정을 보여 줍니다.

    기능화 구성 설명
    "featurization": 'auto' 전처리의 일부로 데이터 가드 레일 및 기능화 단계가 자동으로 수행된다는 것을 나타냅니다. 기본 설정.
    "featurization": 'off' 기능화 단계를 자동으로 수행하면 안 된다는 것을 나타냅니다.
    "featurization": 'FeaturizationConfig' 사용자 지정된 기능화 단계를 사용해야 한다는 것을 나타냅니다. 기능화를 사용자 지정하는 방법을 알아보세요.

    앙상블 구성

    앙상블 모델은 기본적으로 사용하도록 설정되며, AutoML 실행에서 최종 실행 반복으로 표시됩니다. 현재 VotingEnsembleStackEnsemble이 지원됩니다.

    투표는 가중치 평균을 사용하는 소프트 투표를 구현합니다. 스택 구현은 2계층 구현을 사용하는데, 여기서 첫 번째 계층은 투표 앙상블과 동일한 모델을 사용하고, 두 번째 계층 모델은 첫 번째 계층에서 최적의 모델 조합을 찾는 데 사용됩니다.

    ONNX 모델을 사용하는 경우 또는 모델 설명 가능성을 사용하도록 설정한 경우 스택이 사용되지 않고 투표만 사용됩니다.

    앙상블 학습은 enable_voting_ensembleenable_stack_ensemble 부울 매개 변수를 사용하여 비활성화할 수 있습니다.

    automl_classifier = AutoMLConfig(
                                     task='classification',
                                     primary_metric='AUC_weighted',
                                     experiment_timeout_minutes=30,
                                     training_data=data_train,
                                     label_column_name=label,
                                     n_cross_validations=5,
                                     enable_voting_ensemble=False,
                                     enable_stack_ensemble=False
                                    )
    

    기본 앙상블 동작을 변경하기 위해 AutoMLConfig 개체에 kwargs로 제공할 수 있는 여러 기본 인수가 있습니다.

    Important

    다음 매개 변수는 AutoMLConfig 클래스의 명시적 매개 변수가 아닙니다.

    • ensemble_download_models_timeout_sec: VotingEnsembleStackEnsemble 모델이 생성되는 동안 이전 자식 실행에서 여러 맞춤 모델이 다운로드됩니다. AutoMLEnsembleException: Could not find any models for running ensembling 오류가 발생할 경우 모델 다운로드 시간을 더 길게 해야 할 수도 있습니다. 모델을 병렬로 다운로드하는 기본값은 300초이고 최대 시간 제한은 없습니다. 시간이 더 필요한 경우 이 매개 변수를 300초보다 큰 값으로 구성합니다.

      참고 항목

      시간 제한에 도달했을 때 다운로드된 모델이 있으면 그때까지 다운로드된 모델을 사용하여 앙상블이 진행됩니다. 시간 제한 내에 완료하려면 반드시 모든 모델을 다운로드해야 하는 것은 아닙니다. 다음 매개 변수는 StackEnsemble 모델에만 적용됩니다.

    • stack_meta_learner_type: 메타 학습자은 개별 이기종 모델의 출력에 대해 학습된 모델입니다. 기본 메타 학습자는 분류 작업인 경우 LogisticRegression(또는 교차 유효성 검사를 사용하는 경우 LogisticRegressionCV)이고, 회귀/예측 작업인 경우 ElasticNet(교차 유효성 검사를 사용하는 경우 ElasticNetCV)입니다. 이 매개 변수는 문자열 LogisticRegression, LogisticRegressionCV, LightGBMClassifier, ElasticNet, ElasticNetCV, LightGBMRegressor 또는 LinearRegression 중 하나입니다.

    • stack_meta_learner_train_percentage: (학습의 학습 및 유효성 검사 유형을 선택할 때) 메타 학습자의 학습을 위해 예약할 학습 세트의 비율을 지정합니다. 기본값은 0.2여야 합니다.

    • stack_meta_learner_kwargs: 메타 학습자의 이니셜라이저에 전달할 선택적 매개 변수입니다. 이러한 매개 변수 및 매개 변수 형식은 해당 모델 생성자의 매개 변수 및 매개 변수 형식을 미러링하며, 모델 생성자에 전달됩니다.

    다음 코드는 AutoMLConfig 개체에서 사용자 지정 앙상블 동작을 지정하는 예를 보여줍니다.

    ensemble_settings = {
                         "ensemble_download_models_timeout_sec": 600
                         "stack_meta_learner_type": "LogisticRegressionCV",
                         "stack_meta_learner_train_percentage": 0.3,
                         "stack_meta_learner_kwargs": {
                                                        "refit": True,
                                                        "fit_intercept": False,
                                                        "class_weight": "balanced",
                                                        "multi_class": "auto",
                                                        "n_jobs": -1
                                                      }
                        }
    automl_classifier = AutoMLConfig(
                                     task='classification',
                                     primary_metric='AUC_weighted',
                                     experiment_timeout_minutes=30,
                                     training_data=train_data,
                                     label_column_name=label,
                                     n_cross_validations=5,
                                     **ensemble_settings
                                    )
    

    종료 기준

    실험을 종료하도록 AutoMLConfig에서 정의할 수 있는 몇 가지 옵션이 있습니다.

    조건 description
    조건 없음 종료 매개 변수를 정의하지 않으면 기본 메트릭에서 더 이상 진행되지 않을 때까지 실험이 계속됩니다.
    일정 시간 후 설정에서 experiment_timeout_minutes를 사용하여 실험을 계속 실행해야 하는 시간(분)을 정의합니다.

    실험 시간 초과 실패를 방지하기 위해 최소 15분, 또는 행 * 열 크기가 1000만을 초과할 경우 60분으로 설정됩니다.
    특정 점수에 도달함 experiment_exit_score를 사용하면 지정한 기본 메트릭 점수에 도달한 후 실험이 완료됩니다.

    실험 실행

    Warning

    동일한 구성 설정과 기본 메트릭을 사용하여 여러 번 실험을 실행한 경우 각 실험의 최종 메트릭 점수 및 생성된 모델에 변동이 있을 가능성이 높습니다. 자동화된 ML이 채택하는 알고리즘에는 내재된 무작위성이 있어서 실험에 의한 모델 출력 및 권장된 모델의 최종 메트릭 점수(예: 정확도)에 약간의 변동을 일으킬 수 있습니다. 모델 이름이 동일한 결과가 표시될 수도 있지만 다른 하이퍼 매개 변수가 사용되었습니다.

    자동화된 ML의 경우 실험을 실행하는 데 사용되는 Workspace의 명명된 개체인 Experiment 개체를 만들 수 있습니다.

    from azureml.core.experiment import Experiment
    
    ws = Workspace.from_config()
    
    # Choose a name for the experiment and specify the project folder.
    experiment_name = 'Tutorial-automl'
    project_folder = './sample_projects/automl-classification'
    
    experiment = Experiment(ws, experiment_name)
    

    실행하려는 실험을 제출하고 모델을 생성합니다. AutoMLConfigsubmit 메서드에 전달하여 모델을 생성합니다.

    run = experiment.submit(automl_config, show_output=True)
    

    참고 항목

    새 머신에 먼저 종속성이 설치됩니다. 출력이 표시되는 데 최대 10분이 걸릴 수 있습니다. show_outputTrue로 설정하면 출력이 콘솔에 표시됩니다.

    클러스터에서 여러 자식 실행

    자동화된 ML 실험 자식 실행은 이미 다른 실험을 실행하고 있는 클러스터에서 수행할 수 있습니다. 그러나 타이밍은 클러스터에 포함된 노드 수와 해당 노드를 사용하여 다른 실험을 실행할 수 있는지 여부에 따라 달라집니다.

    클러스터의 각 노드는 단일 학습 실행을 달성할 수 있는 개별 VM(가상 머신)의 역할을 합니다. 자동화된 ML의 경우 이는 자식 실행을 의미합니다. 모든 노드가 사용 중이면 새 실험은 큐에 추가됩니다. 그러나 무료 노드가 있는 경우 새 실험은 사용 가능한 노드/VM에서 병렬로 자동화된 ML 자식 실행을 실행합니다.

    자식 실행 및 수행 가능한 시기를 관리하는 데 도움이 되도록 실험당 전용 클러스터를 만들고 실험의 max_concurrent_iterations 수를 클러스터의 노드 수와 일치시키는 것이 좋습니다. 이러한 방식으로 클러스터의 모든 노드를 동시에 사용하여 원하는 동시 자식 실행/반복 횟수를 지정할 수 있습니다.

    AutoMLConfig 개체에서 max_concurrent_iterations을 구성합니다. 구성되지 않은 경우에는 기본적으로 실험당 하나의 동시 자식 실행/반복만 허용됩니다. 컴퓨팅 인스턴스의 경우 max_concurrent_iterations를 컴퓨팅 인스턴스 VM의 코어 수와 동일하게 설정할 수 있습니다.

    모델 및 메트릭 탐색

    자동화된 ML은 학습 결과를 모니터링하고 평가할 수 있는 옵션을 제공합니다.

    사용자 지정 코드 솔루션 print_model()을 사용하여 특정 자동화된 ML 실행에 적용되는 하이퍼 매개 변수, 스케일링 및 정규화 기술 및 알고리즘을 볼 수 있습니다.

    자동화된 ML을 사용하면 Auto ML 학습 모델에 대해 생성된 모델 학습 코드를 확인할 수도 있습니다. 이 기능은 공개 미리 보기로 제공되며 언제든지 변경될 수 있습니다.

    자동화된 Machine Learning 실행 모니터링

    자동화된 ML 실행에서 이전 실행의 차트에 액세스하려면 <<experiment_name>>을 적절한 실험 이름으로 바꿉니다.

    from azureml.widgets import RunDetails
    from azureml.core.run import Run
    
    experiment = Experiment (workspace, <<experiment_name>>)
    run_id = 'autoML_my_runID' #replace with run_ID
    run = Run(experiment, run_id)
    RunDetails(run).show()
    

    Jupyter notebook widget for Automated Machine Learning

    모델 테스트(미리 보기)

    Important

    자동화된 ML이 생성한 모델을 평가하기 위해 테스트 데이터 세트를 사용하여 모델을 테스트하는 기능은 미리 보기입니다. 이 기능은 실험적인 미리 보기 기능으로, 언제든지 변경할 수 있습니다.

    test_data 또는 test_size 매개 변수를 AutoMLConfig에 전달하면 제공된 테스트 데이터를 사용하는 원격 테스트 실행을 자동으로 트리거하여 실험 완료 시 자동화된 ML에서 권장하는 최상의 모델을 평가합니다. 이 원격 테스트 실행은 실험의 끝부분에서 최상의 모델이 결정되면 수행됩니다. 테스트 데이터를 AutoMLConfig에 전달하는 방법을 참조하세요.

    테스트 작업 결과 가져오기

    Azure Machine Learning 스튜디오에서 또는 다음 코드를 사용하여 원격 테스트 작업의 예측 및 메트릭을 가져올 수 있습니다.

    best_run, fitted_model = remote_run.get_output()
    test_run = next(best_run.get_children(type='automl.model_test'))
    test_run.wait_for_completion(show_output=False, wait_post_processing=True)
    
    # Get test metrics
    test_run_metrics = test_run.get_metrics()
    for name, value in test_run_metrics.items():
        print(f"{name}: {value}")
    
    # Get test predictions as a Dataset
    test_run_details = test_run.get_details()
    dataset_id = test_run_details['outputDatasets'][0]['identifier']['savedId']
    test_run_predictions = Dataset.get_by_id(workspace, dataset_id)
    predictions_df = test_run_predictions.to_pandas_dataframe()
    
    # Alternatively, the test predictions can be retrieved via the run outputs.
    test_run.download_file("predictions/predictions.csv")
    predictions_df = pd.read_csv("predictions.csv")
    
    

    모델 테스트 작업은 predictions.csv 파일을 생성하여 작업 영역을 사용하여 만든 기본 데이터 저장소에 저장합니다. 이 데이터 저장소는 동일한 구독의 모든 사용자에게 표시됩니다. 테스트 작업에 사용되거나 테스트 작업에 의해 만들어진 정보가 비공개로 유지되어야 하는 경우 테스트 작업은 시나리오에 권장되지 않습니다.

    기존의 자동화된 ML 모델 테스트

    기존에 빌드한 다른 자동화된 ML 모델, 최상의 작업 또는 자식 작업을 테스트하려면 주 AutoML 실행이 완료된 후 ModelProxy()를 사용하여 모델을 테스트합니다. ModelProxy()는 이미 예측 및 메트릭을 반환하며 출력을 검색하는 데 추가 처리가 필요하지 않습니다.

    참고 항목

    ModelProxy는 실험적 미리 보기 클래스이며 언제든지 변경될 수 있습니다.

    다음 코드에서는 ModelProxy.test() 메서드를 사용하여 모든 실행에서 모델을 테스트하는 방법을 보여줍니다. test() 메서드에는 include_predictions_only 매개 변수를 사용하여 테스트 실행의 예측만 확인할지 여부를 지정하는 옵션이 있습니다.

    from azureml.train.automl.model_proxy import ModelProxy
    
    model_proxy = ModelProxy(child_run=my_run, compute_target=cpu_cluster)
    predictions, metrics = model_proxy.test(test_data, include_predictions_only= True
    )
    

    모델 등록 및 배포

    모델을 테스트하고 프로덕션에서 사용할 수 있는지 확인한 후에는 나중에 사용하기 위해 모델을 등록할 수 있습니다.

    자동화된 ML 실행에서 모델을 등록하려면 register_model() 메서드를 사용합니다.

    
    best_run = run.get_best_child()
    print(fitted_model.steps)
    
    model_name = best_run.properties['model_name']
    description = 'AutoML forecast example'
    tags = None
    
    model = run.register_model(model_name = model_name, 
                                      description = description, 
                                      tags = tags)
    

    배포 구성을 만들고 웹 서비스에 등록된 모델을 배포하는 방법에 대한 자세한 내용은 모델을 배포하는 방법 및 위치를 참조하세요.

    등록된 모델의 경우 Azure Machine Learning 스튜디오를 통해 한 번 클릭으로 배포를 사용할 수 있습니다. 스튜디오에서 등록된 모델을 배포하는 방법을 참조하세요.

    모델 해석력

    모델 해석력을 통해 모델이 예측을 수행한 이유와 기본 기능 중요도 값을 이해할 수 있습니다. SDK에는 로컬 모델과 배포된 모델의 학습 및 유추 시간에 모델 해석력 기능을 사용할 수 있도록 다양한 패키지가 포함되어 있습니다.

    특히 자동화된 ML 실험 내에서 해석력 기능을 사용하도록 설정하는 방법을 참조하세요.

    자동화된 Machine Learning 외부의 다른 SDK 영역에서 모델 설명 및 기능 중요도를 사용하는 방법에 대한 일반적인 내용은 해석력에 대한 개념 문서를 참조하세요.

    참고 항목

    ForecastTCN 모델은 현재 설명 클라이언트에서 지원되지 않습니다. 이 모델은 최상의 모델로 반환되고 주문형 설명 실행을 지원하지 않는 경우 설명 대시보드를 반환하지 않습니다.

    다음 단계