次の方法で共有


Azure Machine Learning パイプラインで AutoML を使用する

適用対象:Azure Machine Learning SDK v1 for Python

重要

この記事では、Azure Machine Learning SDK v1 の使用に関する情報を提供します。 SDK v1 は 2025 年 3 月 31 日の時点で非推奨となり、サポートは 2026 年 6 月 30 日に終了します。 SDK v1 は、その日付までインストールして使用できます。

2026 年 6 月 30 日より前に SDK v2 に移行することをお勧めします。 SDK v2 の詳細については、「 Azure Machine Learning Python SDK v2SDK v2 リファレンスとは」を参照してください。

Azure Machine Learning の自動機械学習 (AutoML) 機能は、すべての可能なアプローチを再実装することなく、高パフォーマンスのモデルを検出するのに役立ちます。 Azure Machine Learning パイプラインと組み合わせることで、データに最適なアルゴリズムをすばやく検出するデプロイ可能なワークフローを作成できます。

この記事では、Python を使用して、データ準備ステップを自動化された機械学習ステップに効率的に参加させる方法について説明します。 AutoML は、データに最適なアルゴリズムをすばやく検出しながら、パイプラインを使用した MLOps とモデル ライフサイクルの運用化に進むことができます。

前提条件

AutoML の中央クラスを確認する

パイプライン内の自動機械学習は、 AutoMLStep オブジェクトによって表されます。 AutoMLStep クラスは PipelineStep のサブクラスです。 PipelineStep オブジェクトのグラフでは、Pipeline を定義します。

PipelineStep にはいくつかのサブクラスがあります。 この記事では、 AutoMLStepに加えて、データ準備の PythonScriptStep と、モデルを登録するための別の方法を示します。

最初 に機械学習パイプライン にデータを移動する推奨される方法は、 Dataset オブジェクトを使用することです。 ステップ でデータを移動し、実行からのデータ出力を保存するには、 OutputFileDatasetConfig オブジェクトと OutputTabularDatasetConfig オブジェクトを使用することをお勧めします。 AutoMLStep で使用するには、PipelineData オブジェクトを PipelineOutputTabularDataset オブジェクトに変換する必要があります。 詳細については、「 ML パイプラインステップ間でのデータの移動」を参照してください。

AutoMLStepAutoMLConfig オブジェクトを通じて構成されます。 AutoMLConfig は、 実験設定の構成に関するセクションで説明されているように、柔軟なクラスです。

PipelineExperiment 内で実行されます。 パイプライン Run には、ステップごとに子の StepRun があります。 自動機械学習 StepRun の出力は、トレーニング メトリックと最もパフォーマンスの高いモデルです。

具体的には、この記事では分類タスクのシンプルなパイプラインを作成します。 課題はタイタニック号の生存を予測することですが、話が進むたびにデータや課題について触れることはありません。

はじめに

初期データセットを取得する

多くの場合、機械学習ワークフローは、既存のベースライン データから始まります。 これは、登録済みのデータセットに適したシナリオです。 データセットは、ワークスペース全体で表示され、バージョン管理をサポートし、対話形式で探索することができます。 「Azure Machine Learning データセットを作成する」で説明されているように、データセットを作成して設定するさまざまな方法があります。 Python SDK を使用してパイプラインを作成するため、SDK を使用してベースライン データをダウンロードし、 titanic_dsという名前で登録します。

from azureml.core import Workspace, Dataset

ws = Workspace.from_config()
if not 'titanic_ds' in ws.datasets.keys() :
    # create a TabularDataset from Titanic training data
    web_paths = ['https://dprepdata.blob.core.windows.net/demo/Titanic.csv',
                 'https://dprepdata.blob.core.windows.net/demo/Titanic2.csv']
    titanic_ds = Dataset.Tabular.from_delimited_files(path=web_paths)

    titanic_ds.register(workspace = ws,
                                     name = 'titanic_ds',
                                     description = 'Titanic baseline data',
                                     create_new_version = True)

titanic_ds = Dataset.get_by_name(ws, 'titanic_ds')

コードは、最初に config.jsonで定義されている Azure Machine Learning ワークスペースにログインします。 構成ファイルを作成する方法については、「 ワークスペース構成ファイルの作成」を参照してください。 'titanic_ds' という名前のデータセットがまだ登録されていない場合は、1 つ作成されます。 このコードは、Web から CSV データをダウンロードし、 TabularDatasetをインスタンス化してから、データセットをワークスペースに登録します。 最後に、関数 Dataset.get_by_name()Datasettitanic_ds に割り当てます。

ストレージおよびコンピューティング ターゲットを構成する

パイプラインに必要なその他のリソースは、ストレージと、通常は Azure Machine Learning コンピューティング リソースです。

from azureml.core import Datastore
from azureml.core.compute import AmlCompute, ComputeTarget

datastore = ws.get_default_datastore()

compute_name = 'cpu-cluster'
if not compute_name in ws.compute_targets :
    print('creating a new compute target...')
    provisioning_config = AmlCompute.provisioning_configuration(vm_size='STANDARD_D2_V2',
                                                                min_nodes=0,
                                                                max_nodes=1)
    compute_target = ComputeTarget.create(ws, compute_name, provisioning_config)

    compute_target.wait_for_completion(
        show_output=True, min_node_count=None, timeout_in_minutes=20)

    # Show the result
    print(compute_target.get_status().serialize())

compute_target = ws.compute_targets[compute_name]

データ準備と AutoML ステップの間の中間データはワークスペースの既定のデータストアに格納できるため、get_default_datastore() オブジェクトでWorkspaceを呼び出す以上の操作を行う必要はありません。

その後、このコードでは、Azure Machine Learning コンピューティング ターゲットの 'cpu-cluster' が既に存在するかどうかを確認します。 そうでない場合は、小さな CPU ベースのコンピューティング ターゲットが必要であることを指定します。 AutoML のディープ ラーニング機能 (たとえば、DNN サポートを使用したテキスト特徴量化) を使用する場合は、「 GPU 最適化仮想マシンのサイズ」で説明されているように、強力な GPU サポートを持つコンピューティングを選択する必要があります。

このコードでは、ターゲットがプロビジョニングされるまでブロックし、作成されたばかりのコンピューティング ターゲットの詳細をいくつか出力します。 最後に、名前が指定されたコンピューティング ターゲットがワークスペースから取得され、compute_target に割り当てられます。

トレーニングの実行を構成する

ランタイム コンテキストを設定するには、RunConfiguration オブジェクトを作成して構成します。 ここでは、コンピューティング先を設定します。

from azureml.core.runconfig import RunConfiguration
from azureml.core.conda_dependencies import CondaDependencies

aml_run_config = RunConfiguration()
# Use just-specified compute target ("cpu-cluster")
aml_run_config.target = compute_target

# Specify CondaDependencies obj, add necessary packages
aml_run_config.environment.python.conda_dependencies = CondaDependencies.create(
    conda_packages=['pandas','scikit-learn'], 
    pip_packages=['azureml-sdk[automl]', 'pyarrow'])

AutoML のデータを準備する

データ準備コードを書き込む

ベースラインのタイタニック号データセットは、数値とテキスト データが混在したもので構成され、一部の値が欠落しています。 自動機械学習用に準備するには、データ準備パイプラインの手順を次に示します。

  • 見つからないデータに、ランダム なデータまたは Unknown に対応するカテゴリを入力します。
  • カテゴリ データを整数に変換する
  • 使用しない列を削除する
  • データをトレーニング セットとテスト セットに分割します
  • 変換されたデータを OutputFileDatasetConfig 出力パスに書き込みます
%%writefile dataprep.py
from azureml.core import Run

import pandas as pd 
import numpy as np 
import argparse

RANDOM_SEED=42

def prepare_age(df):
    # Fill in missing Age values from distribution of present Age values 
    mean = df["Age"].mean()
    std = df["Age"].std()
    is_null = df["Age"].isnull().sum()
    # compute enough (== is_null().sum()) random numbers between the mean, std
    rand_age = np.random.randint(mean - std, mean + std, size = is_null)
    # fill NaN values in Age column with random values generated
    age_slice = df["Age"].copy()
    age_slice[np.isnan(age_slice)] = rand_age
    df["Age"] = age_slice
    df["Age"] = df["Age"].astype(int)
    
    # Quantize age into 5 classes
    df['Age_Group'] = pd.qcut(df['Age'],5, labels=False)
    df.drop(['Age'], axis=1, inplace=True)
    return df

def prepare_fare(df):
    df['Fare'].fillna(0, inplace=True)
    df['Fare_Group'] = pd.qcut(df['Fare'],5,labels=False)
    df.drop(['Fare'], axis=1, inplace=True)
    return df 

def prepare_genders(df):
    genders = {"male": 0, "female": 1, "unknown": 2}
    df['Sex'] = df['Sex'].map(genders)
    df['Sex'].fillna(2, inplace=True)
    df['Sex'] = df['Sex'].astype(int)
    return df

def prepare_embarked(df):
    df['Embarked'].replace('', 'U', inplace=True)
    df['Embarked'].fillna('U', inplace=True)
    ports = {"S": 0, "C": 1, "Q": 2, "U": 3}
    df['Embarked'] = df['Embarked'].map(ports)
    return df
    
parser = argparse.ArgumentParser()
parser.add_argument('--output_path', dest='output_path', required=True)
args = parser.parse_args()
    
titanic_ds = Run.get_context().input_datasets['titanic_ds']
df = titanic_ds.to_pandas_dataframe().drop(['PassengerId', 'Name', 'Ticket', 'Cabin'], axis=1)
df = prepare_embarked(prepare_genders(prepare_fare(prepare_age(df))))

df.to_csv(os.path.join(args.output_path,"prepped_data.csv"))

print(f"Wrote prepped data to {args.output_path}/prepped_data.csv")

上記のコード スニペットは、タイタニックデータのデータ準備の完全な例ですが、最小限です。 スニペットは Jupyter magic コマンド で始まり、コードをファイルに出力します。 Jupyter Notebook を使用しない場合は、その行を削除し、手動でファイルを作成します。

スニペットのさまざまな prepare_ 関数によって、入力データセット内の関連する列が変更されます。 これらの関数は、Pandas の DataFrame オブジェクトに変更されたデータで動作します。 いずれの場合も、欠損データには、代表的なランダム データまたは 不明を示すカテゴリ データが入力されます。 テキストベースのカテゴリ データは整数にマップされます。 不要な列は上書きまたは削除されます。

コードでは、データ準備関数を定義した後、入力引数を解析します。これは、データの書き込み先のパスです。 (これらの値は、次の手順で説明する OutputFileDatasetConfig オブジェクトによって決まります)。このコードは、登録済みの 'titanic_cs'Datasetを取得し、Pandas DataFrameに変換して、さまざまなデータ準備関数を呼び出します。

output_path はディレクトリであるため、to_csv() の呼び出しでファイル名 prepped_data.csv を指定します。

データ準備パイプライン ステップ (PythonScriptStep) を書き込む

説明されているデータ準備コードは、パイプラインで使用する PythonScriptStep オブジェクトに関連付ける必要があります。 CSV 出力が書き込まれる先のパスは、OutputFileDatasetConfig オブジェクトによって生成されます。 ComputeTargetRunConfig'titanic_ds' Dataset など、事前に準備されたリソースを使用して指定を完了します。

from azureml.data import OutputFileDatasetConfig
from azureml.pipeline.steps import PythonScriptStep

prepped_data_path = OutputFileDatasetConfig(name="output_path")

dataprep_step = PythonScriptStep(
    name="dataprep", 
    script_name="dataprep.py", 
    compute_target=compute_target, 
    runconfig=aml_run_config,
    arguments=["--output_path", prepped_data_path],
    inputs=[titanic_ds.as_named_input('titanic_ds')],
    allow_reuse=True
)

prepped_data_path オブジェクトは、ディレクトリを指す OutputFileDatasetConfig 型です。 arguments パラメーターで指定されていることに注意してください。 前の手順を確認すると、データ準備コード内で、引数 '--output_path' の値が、CSV ファイルが書き込まれたディレクトリ パスであることがわかります。

AutoMLStep でトレーニングする

自動機械学習パイプライン ステップの構成は、 AutoMLConfig クラスで行います。 この柔軟なクラスの詳細については、「 AutoMLConfig クラス」を参照してください。 データの入力と出力は、機械学習パイプラインで特別な注意を必要とする構成の唯一の側面です。 パイプライン内の AutoMLConfig の入力と出力については、この記事の後半で説明します。 データだけでなく、機械学習パイプラインの利点は、異なるステップに異なるコンピューティング ターゲットを使用できることです。 自動化された機械学習プロセスにのみ、より強力な ComputeTarget を使用することもできます。 これは、AutoMLConfig オブジェクトの run_configuration パラメーターにより強力な RunConfiguration を割り当てるのと同じように簡単です。

AutoMLStep にデータを送信する

機械学習パイプラインでは、入力データは Dataset オブジェクトである必要があります。 パフォーマンスが最も高い方法は、OutputTabularDatasetConfig オブジェクトの形式で入力データを提供することです。 prepped_data_pathprepped_data_path オブジェクトなど、その型のオブジェクトを作成するには、OutputFileDatasetConfigread_delimited_files() を使用します。

# type(prepped_data) == OutputTabularDatasetConfig
prepped_data = prepped_data_path.read_delimited_files()

そのほか、ワークスペースに登録されている Dataset オブジェクトを使用することもできます。

prepped_data = Dataset.get_by_name(ws, 'Data_prepared')

2 つの手法の比較:

手法 利点と欠点
OutputTabularDatasetConfig パフォーマンスが高い
OutputFileDatasetConfig からの自然なルート
パイプライン実行後にデータが永続化されない
登録済み Dataset パフォーマンスが低い
さまざまな方法で生成できる
データが永続化され、ワークスペース全体で表示される
登録済み Dataset 手法を示すノートブック

AutoML 出力を指定する

AutoMLStep の出力は、高パフォーマンス モデルとそのモデル自体の最終的なメトリック スコアです。 これらの出力を以降のパイプライン ステップで使用するには、それらを受け取るように OutputFileDatasetConfig オブジェクトを準備します。

from azureml.pipeline.core import TrainingOutput, PipelineData

metrics_data = PipelineData(name='metrics_data',
                            datastore=datastore,
                            pipeline_output_name='metrics_output',
                            training_output=TrainingOutput(type='Metrics'))

model_data = PipelineData(name='best_model_data',
                          datastore=datastore,
                          pipeline_output_name='model_output',
                          training_output=TrainingOutput(type='Model'))

このスニペットは、メトリックとモデル出力用の 2 つの PipelineData オブジェクトを作成します。 それぞれに名前が付けられ、前に取得した既定のデータストアに割り当てられ、AutoMLStep からの特定の typeTrainingOutput に関連付けられます。 これらのpipeline_output_name オブジェクトにPipelineDataを割り当てるので、「パイプラインの結果を調べる」セクションで後述するように、それらの値は個々のパイプライン ステップだけでなく、パイプライン全体からも使用できます。

AutoML パイプライン ステップを構成して作成する

入力と出力が定義されたら、次は AutoMLConfigAutoMLStep を作成します。 構成の詳細は、「Python を使用した AutoML トレーニングの設定」の説明に従って、タスクによって異なります。 次のスニペットでは、タイタニック号の生存者分類タスクについて、シンプルな構成を示しています。

from azureml.train.automl import AutoMLConfig
from azureml.pipeline.steps import AutoMLStep

# Change iterations to a reasonable number (50) to get better accuracy
automl_settings = {
    "iteration_timeout_minutes" : 10,
    "iterations" : 2,
    "experiment_timeout_hours" : 0.25,
    "primary_metric" : 'AUC_weighted'
}

automl_config = AutoMLConfig(task = 'classification',
                             path = '.',
                             debug_log = 'automated_ml_errors.log',
                             compute_target = compute_target,
                             run_configuration = aml_run_config,
                             featurization = 'auto',
                             training_data = prepped_data,
                             label_column_name = 'Survived',
                             **automl_settings)

train_step = AutoMLStep(name='AutoML_Classification',
    automl_config=automl_config,
    passthru_automl_config=False,
    outputs=[metrics_data,model_data],
    enable_default_model_output=False,
    enable_default_metrics_output=False,
    allow_reuse=True)

このスニペットは、AutoMLConfig で一般的に使用される表現形式を示しています。 より流動的な (ハイパーパラメーターのような) 引数は個別の辞書で指定されますが、変更される可能性の低い値は AutoMLConfig コンストラクターで直接指定されます。 この場合、 automl_settings は簡単な実行を指定します。実行は、2 回の反復または 15 分後のいずれか早い方で停止します。

automl_settings 辞書は、AutoMLConfig コンストラクターに kwargs として渡されます。 その他のパラメーターは複雑ではありません。

  • この例では、taskclassification に設定されています。 その他の有効な値は regressionforecasting です。
  • pathdebug_log、プロジェクトへのパスと、デバッグ情報が書き込まれるローカル ファイルについて説明します。
  • compute_target は以前に定義された compute_target です。この例では、低コストの CPU ベースのコンピューターです。 AutoML のディープ ラーニング機能を使用している場合は、コンピューティング ターゲットを GPU ベースに変更する必要があります。
  • featurizationauto に設定されています。 詳細については、AutoML 構成ドキュメントの 「データの特徴付け 」セクションを参照してください。
  • label_column_name は、予測したい列を示します。
  • training_data は、データ準備ステップの出力から作成された OutputTabularDatasetConfig オブジェクトに設定されます。

AutoMLStep 自体では AutoMLConfig を受け取り、メトリックおよびモデル データを保持するために出力として PipelineData オブジェクトが作成されます。

重要

AutoMLStepRun を使用している場合にのみ、enable_default_model_outputenable_default_metrics_outputTrue に設定する必要があります。

この例では、AutoML プロセスは、 training_dataに対してクロス検証を実行します。 n_cross_validations 引数を使用して、クロス検証の数を制御できます。 データ準備ステップの一部としてトレーニング データを既に分割している場合は、validation_data をその独自の Dataset に設定できます。

データフィーチャに X を使用したり、データ ラベルに y を使用したりすることがあります。 この手法は非推奨であり、入力には training_data を使用する必要があります。

AutoML によって生成されたモデルを登録する

単純な機械学習パイプラインの最後の手順は、作成されたモデルを登録することです。 ワークスペースのモデル レジストリにモデルを追加することで、Azure portal で使用でき、バージョン管理できます。 モデルを登録するには、AutoMLStepmodel_data 出力を受け取る別の PythonScriptStep を書き込みます。

モデルを登録するコードを書き込む

モデルは Workspace に登録されます。 Workspace.from_config()を使用してローカル コンピューター上のワークスペースにサインインする方法に慣れているでしょうが、実行中の機械学習パイプライン内からワークスペースを取得する別の方法があります。 Run.get_context() では、アクティブな run を取得します。 この run オブジェクトでは、ここで使用される Workspace を含む、多くの重要なオブジェクトへのアクセスが提供されます。

%%writefile register_model.py
from azureml.core.model import Model, Dataset
from azureml.core.run import Run, _OfflineRun
from azureml.core import Workspace
import argparse

parser = argparse.ArgumentParser()
parser.add_argument("--model_name", required=True)
parser.add_argument("--model_path", required=True)
args = parser.parse_args()

print(f"model_name : {args.model_name}")
print(f"model_path: {args.model_path}")

run = Run.get_context()
ws = Workspace.from_config() if type(run) == _OfflineRun else run.experiment.workspace

model = Model.register(workspace=ws,
                       model_path=args.model_path,
                       model_name=args.model_name)

print("Registered version {0} of model {1}".format(model.version, model.name))

PythonScriptStep コードを書き込む

警告

Azure Machine Learning SDK v1 を使用していて、ワークスペースがネットワーク分離用に構成されている場合は、この手順の実行時にエラーが発生する可能性があります。 詳細については、「HyperdriveStep と AutoMLStep がネットワークの分離で失敗する」を参照してください。

モデル登録 PythonScriptStep では、その引数の 1 つに PipelineParameter が使用されます。 パイプライン パラメーターはパイプラインの引数であり、実行の送信時に簡単に設定できます。 これらは、宣言すると通常の引数として渡されます。


from azureml.pipeline.core.graph import PipelineParameter

# The model name with which to register the trained model in the workspace.
model_name = PipelineParameter("model_name", default_value="TitanicSurvivalInitial")

register_step = PythonScriptStep(script_name="register_model.py",
                                       name="register_model",
                                       allow_reuse=False,
                                       arguments=["--model_name", model_name, "--model_path", model_data],
                                       inputs=[model_data],
                                       compute_target=compute_target,
                                       runconfig=aml_run_config)

AutoML パイプラインを作成して実行する

AutoMLStep を含むパイプラインを作成して実行することは、通常のパイプラインと何ら違いはありません。

from azureml.pipeline.core import Pipeline
from azureml.core import Experiment

pipeline = Pipeline(ws, [dataprep_step, train_step, register_step])

experiment = Experiment(workspace=ws, name='titanic_automl')

run = experiment.submit(pipeline, show_output=True)
run.wait_for_completion()

このコードは、データ準備、自動化された機械学習、モデル登録の手順を Pipeline オブジェクトに結合します。 その後、Experiment オブジェクトを作成します。 Experiment コンストラクターは、名前付き実験が存在する場合は取得するか、必要に応じて作成します。 PipelineExperimentに送信し、パイプラインを非同期的に実行するRun オブジェクトを作成します。 wait_for_completion() 関数では、実行が完了するまでブロックします。

パイプラインの結果を確認する

run が完了したら、PipelineData が割り当てられている pipeline_output_name オブジェクトを取得できます。 結果をダウンロードして読み込み、さらに処理することができます。

metrics_output_port = run.get_pipeline_output('metrics_output')
model_output_port = run.get_pipeline_output('model_output')

metrics_output_port.download('.', show_progress=True)
model_output_port.download('.', show_progress=True)

ダウンロードされたファイルは、azureml/{run.id}/ サブディレクトリに書き込まれます。 メトリック ファイルは JSON 形式であり、確認のために Pandas データフレームに変換できます。

ローカル処理では、Pandas、Pickle、Azure Machine Learning SDK などの関連パッケージのインストールが必要になる場合があります。 この例では、自動機械学習で見つかった最適なモデルが XGBoost に依存している可能性があります。

!pip install xgboost==0.90
import pandas as pd
import json

metrics_filename = metrics_output._path_on_datastore
# metrics_filename = path to downloaded file
with open(metrics_filename) as f:
   metrics_output_result = f.read()
   
deserialized_metrics_output = json.loads(metrics_output_result)
df = pd.DataFrame(deserialized_metrics_output)
df

このコード スニペットは、Azure データストア上の場所から読み込まれているメトリック ファイルを示しています。 また、コメントに示されているように、ダウンロードされたファイルから読み込むこともできます。 逆シリアル化して Pandas DataFrame に変換すると、自動化された機械学習ステップの各イテレーションの詳細なメトリックを確認できます。

モデル ファイルは、Model オブジェクトに逆シリアル化でき、これを推論や詳細なメトリック分析などのために使用することができます。

import pickle

model_filename = model_output._path_on_datastore
# model_filename = path to downloaded file

with open(model_filename, "rb" ) as f:
    best_model = pickle.load(f)

# ... inferencing code not shown ...

既存のモデルの読み込みと操作の詳細については、「 機械学習モデルを Azure にデプロイする」を参照してください。

AutoML 実行の結果をダウンロードする

この記事と共にフォローしている場合は、インスタンス化された Run オブジェクトがあります。 しかし、Experiment オブジェクトを使用して、完了した Run オブジェクトを Workspace から取得することもできます。

ワークスペースには、すべての実験と実行の完全なレコードが含まれています。 ポータルを使用して、実験の出力を見つけてダウンロードすることも、コードを使用することもできます。 履歴実行からレコードにアクセスするには、Azure Machine Learning を使用して、関心のある実行の ID を見つけます。 その ID では、WorkspaceExperiment を使用して、特定の run を選択することができます。

# Retrieved from Azure Machine Learning web UI
run_id = 'aaaaaaaa-bbbb-cccc-dddd-0123456789AB'
experiment = ws.experiments['titanic_automl']
run = next(run for run in ex.get_runs() if run.id == run_id)

前のコードの run_id 文字列を、実行履歴の特定の ID に変更する必要があります。 このスニペットは、通常のwsを使用して、関連するWorkspacefrom_config()を割り当てたことを前提としています。 目的の実験が直接取得されてから、コードでは、run.id 値を照合することによって目的の Run を見つけます。

Run オブジェクトが作成されたら、メトリックとモデルをダウンロードできます。

automl_run = next(r for r in run.get_children() if r.name == 'AutoML_Classification')
outputs = automl_run.get_outputs()
metrics = outputs['default_metrics_AutoML_Classification']
model = outputs['default_model_AutoML_Classification']

metrics.get_port_data_reference().download('.')
model.get_port_data_reference().download('.')

Run オブジェクトには、個々のパイプライン ステップの実行に関する情報を含む StepRun オブジェクトがあります。 run では、AutoMLStepStepRun オブジェクトが検索されます。 メトリックとモデルは、その既定の名前を使用して取得されます。これは、AutoMLStepoutputs パラメーターに PipelineData オブジェクトを渡さない場合でも使用できます。

最後に、「 パイプラインの結果の確認 」セクションで説明したように、実際のメトリックとモデルがローカル コンピューターにダウンロードされます。