Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
In SDK v2, jobs consolidate "experiments" and "runs".
In SDK v1, you primarily configure and run AutoML by using the AutoMLConfig class. In SDK v2, this class is now an AutoML job. Although some configuration options differ, most naming and functionality is preserved in V2.
This article compares scenarios in SDK v1 and SDK v2.
Submit AutoML run
Important
Azure Machine Learning SDK v1 was deprecated on March 31, 2025. Support ends on June 30, 2026. Migrate to SDK v2 before that date. For more information, see What is Azure Machine Learning CLI and Python SDK v2?
SDK v1: The following example shows an AutoML classification task. For the complete code, see the examples repo.
# Imports import logging 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 # 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: The following example shows an AutoML classification task. For the complete code, see the examples repo.
# Imports from azure.ai.ml import automl, Input, MLClient from azure.ai.ml.constants import AssetTypes # 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
Mapping of key functionality in SDK v1 and SDK v2
| Functionality in SDK v1 | Rough mapping in SDK v2 |
|---|---|
AutoMLConfig |
automl.classification() / automl.regression() / automl.forecasting() |
experiment.submit(automl_config) |
ml_client.jobs.create_or_update(job) |
remote_run.get_portal_url() |
returned_job.services["Studio"].endpoint |
AutoMLConfig(enable_early_stopping=True) |
job.set_limits(enable_early_termination=True) |
AutoMLConfig(blocked_models=[...]) |
job.set_training(blocked_training_algorithms=[...]) |
AutoMLConfig(n_cross_validations=N) |
automl.classification(n_cross_validations=N) |
Next steps
For more information, see: