Поделиться через


Обновление AutoML до пакета SDK версии 2

В пакете SDK версии 2 "эксперименты" и "запуски" объединяются в задания.

В пакете SDK версии 1 autoML была в основном настроена и запущена AutoMLConfig с помощью класса. В пакете SDK версии 2 этот класс был преобразован в AutoML задание. Хотя существуют некоторые различия в параметрах конфигурации, по большому счету, именование и функциональные возможности сохранены в версии 2.

В этой статье приводится сравнение сценариев в пакете SDK версии 1 и пакете SDK версии 2.

Отправка запуска AutoML

  • Пакет SDK версии 1. Ниже приведен пример задачи классификации 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 версии 2. Ниже приведен пример задачи классификации 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 версии 1 и пакете SDK версии 2

Функции пакета SDK версии 1 Грубое сопоставление в пакете SDK версии 2
Метод или API в пакете SDK версии 1 (используйте ссылки на документы ref) Метод или API в пакете SDK версии 2 (используйте ссылки на документы ref)

Дальнейшие действия

Дополнительные сведения см. в разделе: