AutoML을 SDK v2로 업그레이드

SDK v2에서 "실험"과 "실행"은 작업으로 통합됩니다.

SDK v1에서 AutoML은 주로 AutoMLConfig 클래스를 사용하여 구성 및 실행되었습니다. SDK v2에서 이 클래스는 AutoML 작업으로 변환되었습니다. 구성 옵션에는 몇 가지 차이점이 있지만, 이름 지정 및 기능은 V2에서 유지되었습니다.

이 문서에서는 SDK v1과 SDK v2의 시나리오를 비교합니다.

AutoML 실행 제출

  • SDK v1: 다음은 샘플 AutoML 분류 작업입니다. 전체 코드는 리포지토리 예를 확인하세요.

    # Imports
    
    import azureml.core
    from azureml.core.experiment import Experiment
    from azureml.core.workspace import Workspace
    from azureml.core.dataset import Dataset
    from azureml.train.automl import AutoMLConfig
    from azureml.train.automl.run import AutoMLRun   
    
    # Load tabular dataset
    data = "<url_to_data>"
    dataset = Dataset.Tabular.from_delimited_files(data)
    training_data, validation_data = dataset.random_split(percentage=0.8, seed=223)
    label_column_name = "Class"
    
    # Configure Auto ML settings
    automl_settings = {
        "n_cross_validations": 3,
        "primary_metric": "average_precision_score_weighted",
        "enable_early_stopping": True,
        "max_concurrent_iterations": 2,  
        "experiment_timeout_hours": 0.25,  
        "verbosity": logging.INFO,
    }
    
    # Put together an AutoML job constructor
    automl_config = AutoMLConfig(
        task="classification",
        debug_log="automl_errors.log",
        compute_target=compute_target,
        training_data=training_data,
        label_column_name=label_column_name,
        **automl_settings,
    )
    
    # Submit run
    remote_run = experiment.submit(automl_config, show_output=False)
    azureml_url = remote_run.get_portal_url()
    print(azureml_url)
    
  • SDK v2: 다음은 샘플 AutoML 분류 작업입니다. 전체 코드는 리포지토리 예를 확인하세요.

    # Imports
    from azure.ai.ml import automl, Input, MLClient
    
    from azure.ai.ml.constants import AssetTypes
    from azure.ai.ml.automl import (
        classification,
        ClassificationPrimaryMetrics,
        ClassificationModels,
    )
    
    
    # Create MLTables for training dataset
    # Note that AutoML Job can also take in tabular data
    my_training_data_input = Input(
        type=AssetTypes.MLTABLE, path="./data/training-mltable-folder"
    )
    
    # Create the AutoML classification job with the related factory-function.
    classification_job = automl.classification(
        compute="<compute_name>",
        experiment_name="<exp_name?",
        training_data=my_training_data_input,
        target_column_name="<name_of_target_column>",
        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,
        max_concurrent_trials = 4,
        max_cores_per_trial= 1,
        enable_early_termination=True,
    )
    
    # Training properties are optional
    classification_job.set_training(
        blocked_training_algorithms=["LogisticRegression"],
        enable_onnx_compatible_models=True,
    )
    
    # Submit the AutoML job
    returned_job = ml_client.jobs.create_or_update(classification_job)  
    returned_job
    

SDK v1 및 SDK v2의 주요 기능 매핑

SDK v1의 기능 SDK v2의 대략적인 매핑
SDK v1의 메서드/API(참조 문서 링크 사용) SDK v2의 메서드/API(참조 문서 링크 사용)

다음 단계

자세한 내용은 다음을 참조하세요.