Azure Machine Learning CLI と Python SDK を使用して表形式データの AutoML トレーニングを設定する

適用対象:Azure CLI ml extension v2 (現行)Python SDK azure-ai-ml v2 (現行)

この記事では、Azure Machine Learning Python SDK v2 を使用して、自動機械学習 (AutoML) のトレーニング ジョブを設定する方法を説明します。 自動 ML では、ユーザーに代わってアルゴリズムとハイパーパラメーターを選択し、デプロイ可能なモデルを生成します。 この記事では、自動機械学習実験の構成に使用できるさまざまなオプションについて詳しく説明しています。

コードなしのエクスペリエンスの場合、スタジオ UI を使用して表形式データのコードなしの自動機械学習トレーニングを設定することもできます。

前提条件

SDK 情報を使用するには、Azure Machine Learning SDK v2 for Pythonをインストールします。

SDK をインストールするには、次のいずれかを行います。

ワークスペースのセットアップ

ワークスペースに接続するには、サブスクリプション、リソース グループ、ワークスペースを指定する必要があります。

ワークスペースの詳細は、必要な Azure Machine Learning ワークスペースへのハンドルを取得するために、azure.ai.ml から MLClient で使用されます。

次の例では、既定のワークスペース構成、またはフォルダー構造内の config.json ファイルの構成で、既定の Azure 認証を使用します。 config.json が見つからない場合は、MLClient を作成するときに、サブスクリプション ID、リソース グループ、ワークスペースを手動で導入する必要があります。

from azure.identity import DefaultAzureCredential
from azure.ai.ml import MLClient

credential = DefaultAzureCredential()
ml_client = None
try:
    ml_client = MLClient.from_config(credential)
except Exception as ex:
    print(ex)
    # Enter details of your Azure Machine Learning workspace
    subscription_id = "<SUBSCRIPTION_ID>"
    resource_group = "<RESOURCE_GROUP>"
    workspace = "<AZUREML_WORKSPACE_NAME>"
    ml_client = MLClient(credential, subscription_id, resource_group, workspace)

データ ソースと形式を指定する

トレーニング データを SDK v2 に提供するには、"MLTable" を介してクラウドにアップロードする必要があります。

MLTable にデータを読み込むための要件:

  • データは表形式である必要があります。
  • 予測する値、"ターゲット列" は、データ内にある必要があります。

トレーニング データにリモート コンピューティングからアクセスできる必要があります。 自動 ML v2 (Python SDK および CLI/YAML) は、MLTable データ資産 (v2) を受け入れます。 下位互換性のために、同じ入力データセット プロパティを使用して v1 (登録済み表形式データセット) の v1 表形式データセットもサポートします。 v2 で使用できる MLTable を使用することをお勧めします。 この例では、データはローカル パス (./train_data/bank_marketing_train_data.csv) に格納されます。

次の例に示すように、mltable Python SDK を使用して MLTable を作成できます。

import mltable

paths = [
    {'file': './train_data/bank_marketing_train_data.csv'}
]

train_table = mltable.from_delimited_files(paths)
train_table.save('./train_data')

このコードは、ファイル形式と読み込み手順を含む新しいファイル ./train_data/MLTable を作成します。

これで、"./train_data" フォルダーには、MLTable 定義ファイルとデータ ファイル "bank_marketing_train_data.csv" があります。

MLTable の詳細については、「Azure Machine Learning でのテーブルの操作」を参照してください。

トレーニング、検証、テストのデータ

トレーニング データと検証データ セットは、個別に指定できます。 トレーニング データは、自動機械学習ジョブのファクトリ関数の training_data パラメーターに提供する必要があります。

validation_data または n_cross_validation パラメーターを明示的に指定しない場合、自動機械学習では、デフォルトの手法を適用して検証の実行方法を決定します。 この決定は、training_data パラメーターに割り当てられたデータセット内の行の数によって異なります。

トレーニング データのサイズ 検証の方法
20,000 行を超える トレーニングと検証データの分割が適用されます。 既定では、初期トレーニング データ セットの 10% が検証セットとして取得されます。 次に、その検証セットがメトリックの計算に使用されます。
20,000 行以下 クロス検証アプローチが適用されます。 フォールドの既定の数は行数によって異なります。
データセットが 1,000 行よりも少ない場合は、10 個のフォールドが使用されます。
行数が 1,000 以上 20,000 以下である場合は、3 個のフォールドが使用されます。

実験を実行するために計算する

Python SDK v2 (または CLI v2) を使用する自動機械学習ジョブが現在サポートされるのは、Azure Machine Learning リモート コンピューティング クラスターまたはコンピューティング インスタンスのみです。 Python SDKv2 または CLIv2 を使用したコンピューティングの作成の詳細については、「Azure Machine Learning CLI、SDK、REST API を使用してモデルをトレーニングする」を参照してください。

実験の設定を構成する

自動機械学習の実験を構成するために使用できるオプションがいくつかあります。 これらの構成パラメーターは、タスク メソッドに設定されます。 また、traininglimits の設定を使用して、ジョブのトレーニング設定と終了基準を設定することもできます。

次の例は、正確性をプライマリ メトリックと 5 分割交差検証として指定する分類タスクの必須パラメーターを示しています。

from azure.ai.ml.constants import AssetTypes
from azure.ai.ml import automl, Input

# note that this is a code snippet -- you might have to modify the variable values to run it successfully

# make an Input object for the training data
my_training_data_input = Input(
    type=AssetTypes.MLTABLE, path="./data/training-mltable-folder"
)

# configure the classification job
classification_job = automl.classification(
    compute=my_compute_name,
    experiment_name=my_exp_name,
    training_data=my_training_data_input,
    target_column_name="y",
    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,
    enable_early_termination=True,
)

# Training properties are optional
classification_job.set_training(
    blocked_training_algorithms=["logistic_regression"], 
    enable_onnx_compatible_models=True
)

機械学習タスクの種類を選択する

自動機械学習ジョブを送信する前に、解決する機械学習の問題の種類を特定します。 この問題により、ジョブで使用される関数と、適用されるモデル アルゴリズムが決まります。

自動機械学習では、さまざまな種類のタスクがサポートされます。

  • 表形式データ ベースのタスク

    • 分類
    • 回帰
    • 予測
  • Computer Vision タスク (次を含む)

    • 画像の分類
    • オブジェクトの検出
  • 自然言語処理タスク (次を含む)

    • テキスト分類
    • エンティティの認識

詳細については、「タスクの種類」をご覧ください。 予測ジョブの設定の詳細については、時系列予測モデルをトレーニングするための自動機械学習の設定に関する記事を参照してください。

サポートされているアルゴリズム

自動機械学習によって、自動化とチューニングのプロセス中にさまざまなモデルとアルゴリズムが試行されます。 ユーザーとして、アルゴリズムを指定する必要はありません。

タスク メソッドによって、適用するアルゴリズムまたはモデルの一覧が決まります。 使用可能なモデルを含めるか除外してイテレーションをさらに変更するには、ジョブの training 構成で allowed_training_algorithms パラメーターまたは blocked_training_algorithms パラメーターを使用します。

次の表では、機械学習タスクごとにサポートされているアルゴリズムを示しています。

分類 回帰 時系列予測
ロジスティック回帰* Elastic Net* AutoARIMA
Light GBM* Light GBM* Prophet
勾配ブースティング* 勾配ブースティング* Elastic Net
デシジョン ツリー* デシジョン ツリー* Light GBM
K ニアレスト ネイバー* K ニアレスト ネイバー* K ニアレスト ネイバー
Linear SVC* LARS Lasso* デシジョン ツリー
サポート ベクター分類 (SVC)* 確率的勾配降下法 (SGD)* Arimax
ランダム フォレスト* ランダム フォレスト LARS Lasso
Extremely Randomized Trees* Extremely Randomized Trees* Extremely Randomized Trees*
Xgboost* Xgboost* ランダム フォレスト
単純ベイズ* Xgboost TCNForecaster
確率的勾配降下法 (SGD)* 確率的勾配降下法 (SGD) 勾配ブースティング
ExponentialSmoothing
SeasonalNaive
Average
Naive
SeasonalAverage

その他のアルゴリズムの場合:

各タスクの種類のノートブックの例については、「automl-standalone-jobs」を参照してください。

主要メトリック

primary_metric パラメーターによって、モデルのトレーニング中に最適化のために使用されるメトリックが決まります。 選択するタスクの種類によって、選択できるメトリックが決まります。

自動機械学習を最適化するための主要メトリックの選択は、多くの要因に基づきます。 最優先の考慮事項としてお勧めするのは、ビジネス ニーズを最も適切に表すメトリックを選択することです。 次に、メトリックがデータセット プロファイル (データのサイズ、範囲、クラスの分布など) に適しているかどうかを考慮します。 次のセクションでは、タスクの種類とビジネス シナリオに基づいて、推奨される主要メトリックをまとめています。

これらのメトリックの具体的な定義については、「自動機械学習実験の結果を評価」を参照してください。

分類の多クラス シナリオのメトリック

これらのメトリックは、表形式データ、画像または Computer Vision や自然言語処理テキスト (NLP テキスト) など、すべての分類シナリオに適用されます。

accuracyrecall_score_weightednorm_macro_recallprecision_score_weighted などのしきい値に依存するメトリックでは、データセットが小さい場合や大きいクラス傾斜 (クラスの不均衡) がある場合、または予期されるメトリック値が 0.0 または 1.0 に非常に近い場合に、適切に最適化されないことがあります。 このような場合、主要メトリックには AUC_weighted が適しています。 自動機械学習の完了後、ビジネス ニーズに最も適したメトリックに基づいて、優先されるモデルを選択できます。

メトリック ユース ケースの例
accuracy 画像分類、感情分析、チャーン予測
AUC_weighted 不正行為の検出、画像分類、異常検出/スパム検出
average_precision_score_weighted センチメント分析
norm_macro_recall チャーン予測
precision_score_weighted

分類の多ラベル シナリオのメトリック

テキスト分類の多ラベルでは、現在サポートされている唯一の主要なメトリックは "正確性" です。

画像分類の多ラベルでは、サポートされる主要なメトリックが ClassificationMultilabelPrimaryMetrics 列挙型に定義されます。

NLP テキスト固有表現認識シナリオのメトリック

NLP テキスト固有表現認識 (NER) では、現在サポートされている唯一の主要メトリックは "正確性" です。

回帰シナリオのメトリック

r2_scorenormalized_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 はデータの分散の推定値で正規化された平均二乗誤差です。 これは、モデルがキャプチャできる変動の割合です。

Note

r2_scorenormalized_root_mean_squared_error はプライマリ メトリックと同様に動作します。 固定の検証セットが適用されている場合、これら 2 つのメトリックによって同じターゲットである平均二乗誤差が最適化され、同じモデルによって最適化されます。 トレーニング セットのみが使用可能であり、相互検証が適用される場合、normalized_root_mean_squared_error のノーマライザーはトレーニング セットの範囲として固定されていますが、r2_score のノーマライザーは各フォールドの変性であるため、フォールドごとに異なり、両者は若干異なります。

正確な値でなくランクが重要である場合は、spearman_correlation を選択することをお勧めします。 これは、実際の値と予測の間のランクの相関関係を測定します。

現在自動機械学習では、予測値と観測値の "相対" 差を測定するプライマリ メトリックはサポートされていません。 メトリック r2_scorenormalized_mean_absolute_errornormalized_root_mean_squared_error はすべて、絶対差の尺度です。 たとえば、予測値が観測値と 10 単位だけ異なる場合、観測値が 20 単位または 20,000 単位であるとき、これらのメトリックは同じ値を計算します。 これに対して、相対尺度である割合の差では、それぞれ 50% と 0.05% の誤差が得られます。 相対差として最適化するには、サポートされているプライマリ メトリックを使用して自動機械学習を実行し、mean_absolute_percentage_error または root_mean_squared_log_error が最適なモデルを選択できます。 すべての観測値が 0 である場合、これらのメトリックは定義されていないため、必ずしも適切な選択肢ではありません。

メトリック ユース ケースの例
spearman_correlation
normalized_root_mean_squared_error 価格の予測 (家/製品/チップ)、レビュー スコアの予測
r2_score 飛行機の遅延、給与の見積もり、バグの解決時間
normalized_mean_absolute_error

時系列予測シナリオのメトリック

この推奨事項は、回帰シナリオの場合の推奨事項と似ています。

メトリック ユース ケースの例
normalized_root_mean_squared_error 価格の予測 (予想)、在庫の最適化、需要の予測
r2_score 価格の予測 (予想)、在庫の最適化、需要の予測
normalized_mean_absolute_error

画像物体検出シナリオのメトリック

画像物体検出の場合、サポートされる主要メトリックは、ObjectDetectionPrimaryMetrics 列挙型で定義されます。

画像インスタンス セグメント化シナリオのメトリック

画像インスタンス セグメント化シナリオの場合、サポートされる主要メトリックは、InstanceSegmentationPrimaryMetrics 列挙型で定義されます。

データの特徴付け

すべての自動機械学習実験では、データは自動的に数値と数値のベクトルに変換されます。 また、異なる尺度に基づく特徴量の影響を受けるアルゴリズムが適切に機能するように、データは尺度が調整されて正規化されます。 これらのデータ変換は、特徴量化と呼ばれます。

Note

自動機械学習の特徴量化の手順 (機能の正規化、欠損データの処理、テキストから数値への変換など) は、基になるモデルの一部になります。 このモデルを予測に使用する場合、トレーニング中に適用されたのと同じ特徴量化の手順がご自分の入力データに自動的に適用されます。

自動機械学習ジョブを構成するときに、featurization 設定は有効または無効にできます。

次の表は、特徴付けで許可されている設定です。

特徴付けの構成 説明
"mode": 'auto' 前処理の一環として、データ ガードレールと特徴量化の手順が自動的に実行されることを示します。 この値が既定値です。
"mode": 'off' 特徴量化の手順が自動的には実行されないことを示します。
"mode": 'custom' カスタマイズされた特徴付け手順を使用する必要があることを示します。

次のコードは、このケースでは回帰ジョブに対して、カスタム特徴化を提供する方法を示しています。

from azure.ai.ml.automl import ColumnTransformer

transformer_params = {
    "imputer": [
        ColumnTransformer(fields=["CACH"], parameters={"strategy": "most_frequent"}),
        ColumnTransformer(fields=["PRP"], parameters={"strategy": "most_frequent"}),
    ],
}
regression_job.set_featurization(
    mode="custom",
    transformer_params=transformer_params,
    blocked_transformers=["LabelEncoding"],
    column_name_and_types={"CHMIN": "Categorical"},
)

終了基準

ジョブの完了前に実験を終了するために、set_limits() 関数に定義できるオプションがいくつかあります。

基準 description
基準なし 終了パラメーターを定義しない場合、実験は、主なメトリックでそれ以上の進歩が見られなくなるまで続けられます。
timeout 実験の実行を継続する時間を分単位で定義します。 指定されていない場合、デフォルト ジョブの合計タイムアウトは 6 日間 (8,640 分) です。 1 時間 (60 分) 以下のタイムアウトを指定するには、データセットのサイズが 10,000,000 (行と列の積) を超えていないことを確認します。それ以外の場合、エラーが発生します。

このタイムアウトには、セットアップ、特徴量化、トレーニングの実行が含まれますが、プロセスの最後に実行されるアンサンブルとモデル説明の実行は含まれません。これらのアクションは、すべての試行 (子ジョブ) が完了した後で実行される必要があるためです。
trial_timeout_minutes 各試行 (子ジョブ) が終了前に実行できる最大時間 (分)。 指定しない場合は、1 か月、すなわち 43200 分の値が使用されます。
enable_early_termination 短期間でスコアが向上していない場合に、ジョブを終了するかどうか。
max_trials それぞれ、ジョブ中に試行するためのアルゴリズムとハイパーパラメーターの組み合わせが異なる、試行または実行の最大数。 指定しない場合、既定値は 1,000 回の試行です。 enable_early_termination を使用すると、試行回数を減らすことができます。
max_concurrent_trials 並列で実行される試行 (子ジョブ) の最大数を表します。 この数とクラスターのノード数を一致させるのが適切な方法です。

実験を実行する

実験を送信して実行し、モデルを生成します。

Note

同じ構成設定とプライマリ メトリックを使用して実験を複数回実行した場合、各実験の最終的なメトリック スコアおよび生成されるモデルに変動が見られる可能性があります。 自動機械学習が採用するアルゴリズムには、固有のランダム性があり、実験によって出力されるモデルおよび推奨モデルの最終的なメトリック スコア (正確性など) にわずかな変動が生じる可能性があります。 また、同じモデル名であっても、異なるハイパーパラメーターが使用された結果が表れる可能性もあります。

警告

ワークスペースを介してファイアウォールやネットワーク セキュリティ グループに規則を設定している場合は、「ネットワークの着信トラフィックおよび送信トラフィックを構成する」で定義されている受信および送信ネットワーク トラフィックに必要なアクセス許可が付与されていることを確認します。

前提条件で MLClientが作成された場合、ワークスペースで次のコマンドを実行できます。


# Submit the AutoML job
returned_job = ml_client.jobs.create_or_update(
    classification_job
)  # submit the job to the backend

print(f"Created job: {returned_job}")

# Get a URL for the status of the job
returned_job.services["Studio"].endpoint

クラスターでの複数回の子実行

自動 ML での子実行の実験は、既に別の実験が実行されているクラスターで実行することができます。 ただし、タイミングは、クラスターに含まれるノード数によって、および別の実験を実行するためにそれらのノードを使用できるかどうかによって異なります。

クラスター内の各ノードは、1 回のトレーニング実行を完了できる個別の仮想マシン (VM) として機能します。 自動機械学習の場合、これは子実行を意味します。 すべてのノードがビジー状態である場合は、新しい実験がキューに登録されます。 空きノードがある場合は、使用可能なノードまたは仮想マシンで、新しい実験によって子実行が並行して実行されます。

子実行とそれが実行されるタイミングを管理するには、実験ごとに専用のクラスターを作成し、実験の max_concurrent_iterations 数をクラスター内のノード数と一致させることをお勧めします。 このようにして、必要な同時子実行とイテレーションの数で、クラスターのノードをすべて同時に使用します。

max_concurrent_iterationslimits 構成で構成します。 構成されていない場合は、1 回の実験につき 1 回の同時子実行とイテレーションのみが既定で許可されます。 コンピューティング インスタンスの場合、max_concurrent_trials をコンピューティング インスタンス仮想マシン上のコア数と同じに設定できます。

モデルとメトリックを探索する

自動 ML では、トレーニング結果を監視および評価するためのオプションが提供されます。

モデルのページにある Azure Machine Learning UI から、特定のモデルのトレーニングに使用したハイパーパラメーターを表示でき、使用した内部モデルのトレーニング コードを表示してカスタマイズすることもできます。

モデルを登録してデプロイする

モデルをテストし、運用環境で使うことを決めたら、後で使用できるようにモデルを登録することができます。

ヒント

登録済みモデルの場合、Azure Machine Learning スタジオを使用してワンクリックでデプロイできます。 「モデルをデプロイする」を参照してください。

パイプラインでの自動機械学習を使用する

機械学習操作ワークフローで自動機械学習を使用するには、Azure Machine Learning パイプラインに自動機械学習ジョブ ステップを追加します。 この方法では、データ準備スクリプトを自動機械学習に接続することで、ワークフロー全体を自動化できます。 次に、結果として得られる最適なモデルを登録して検証します。

このコードは、自動機械学習分類コンポーネントと、結果の出力を示すコマンド コンポーネントが含まれたサンプル パイプラインです。 このコードでは、さまざまな手順で入力 (トレーニング データと検証データ) と出力 (最適なモデル) を参照しています。

# Define pipeline
@pipeline(
    description="AutoML Classification Pipeline",
    )
def automl_classification(
    classification_train_data,
    classification_validation_data
):
    # define the automl classification task with automl function
    classification_node = classification(
        training_data=classification_train_data,
        validation_data=classification_validation_data,
        target_column_name="y",
        primary_metric="accuracy",
        # currently need to specify outputs "mlflow_model" explictly to reference it in following nodes 
        outputs={"best_model": Output(type="mlflow_model")},
    )
    # set limits and training
    classification_node.set_limits(max_trials=1)
    classification_node.set_training(
        enable_stack_ensemble=False,
        enable_vote_ensemble=False
    )

    command_func = command(
        inputs=dict(
            automl_output=Input(type="mlflow_model")
        ),
        command="ls ${{inputs.automl_output}}",
        environment="AzureML-sklearn-0.24-ubuntu18.04-py37-cpu:latest"
    )
    show_output = command_func(automl_output=classification_node.outputs.best_model)


pipeline_job = automl_classification(
    classification_train_data=Input(path="./training-mltable-folder/", type="mltable"),
    classification_validation_data=Input(path="./validation-mltable-folder/", type="mltable"),
)

# set pipeline level compute
pipeline_job.settings.default_compute = compute_name

# submit the pipeline job
returned_pipeline_job = ml_client.jobs.create_or_update(
    pipeline_job,
    experiment_name=experiment_name
)
returned_pipeline_job

# ...
# Note that this is a snippet from the bankmarketing example you can find in our examples repo -> https://github.com/Azure/azureml-examples/tree/main/sdk/python/jobs/pipelines/1h_automl_in_pipeline/automl-classification-bankmarketing-in-pipeline

パイプラインに自動機械学習を含める方法の詳しい例については、「サンプル リポジトリ」を参照してください。

大規模な自動機械学習を使用する: 分散トレーニング

大規模なデータのシナリオの場合、自動機械学習では、限られたモデル セットに対する分散トレーニングがサポートされます。

分散アルゴリズム サポートされているタスク データ サイズの制限 (概算)
LightGBM 分類、回帰 1 TB
TCNForecaster 予測 200 GB

分散トレーニングのアルゴリズムでは、モデルのトレーニングのために、データを自動的にパーティション分割し、複数のコンピューティング ノードにわたって分散させます。

注意

分散トレーニング モードでは現在、クロス検証、アンサンブル モデル、ONNX サポート、コード生成はサポートされていません。 また、自動機械学習で、使用可能な特徴抽出器の制限や、検証、説明可能性、モデル評価に使用されるデータのサブサンプリングなどの選択が行われる可能性もあります。

分類と回帰のための分散トレーニング

分類または回帰のための分散トレーニングを使用するには、ジョブ オブジェクトの training_mode プロパティおよび max_nodes プロパティを設定します。

プロパティ 説明
training_mode distributed または non_distributed のトレーニング モードを示します。 既定値は non_distributed です。
max_nodes 各試行によるトレーニングに使用するノードの数。 この設定は 4 以上である必要があります。

次のコード サンプルは、分類ジョブに対するこれらの設定の例を示しています。

from azure.ai.ml.constants import TabularTrainingMode

# Set the training mode to distributed
classification_job.set_training(
    allowed_training_algorithms=["LightGBM"],
    training_mode=TabularTrainingMode.DISTRIBUTED
)

# Distribute training across 4 nodes for each trial
classification_job.set_limits(
    max_nodes=4,
    # other limit settings
)

注意

分類および回帰タスクに対する分散トレーニングでは現在、複数の同時実行試行はサポートされていません。 モデルの試行は、max_nodes ノードを使用して、試行ごとに順番に実行されます。 max_concurrent_trials の制限設定は現在、無視されます。

予測のための分散トレーニング

予測タスクに対して分散トレーニングがどのように動作するかを学習するには、「大規模な予測」を参照してください。 予測のための分散トレーニングを使用するには、ジョブ オブジェクトの training_modeenable_dnn_trainingmax_nodes の各プロパティ、さらにオプションで max_concurrent_trials プロパティを設定する必要があります。

プロパティ 説明
training_mode distributed または non_distributed のトレーニング モードを示します。 既定値は non_distributed です。
enable_dnn_training ディープ ニューラル ネットワーク モデルを有効にするフラグ。
max_concurrent_trials この値は、並列にトレーニングする試行モデルの最大数です。 既定値は 1 です。
max_nodes トレーニングに使用するノードの合計数。 この設定は 2 以上である必要があります。 予測タスクの場合、各試行モデルは $\text{max}\left(2, \text{floor}(\text{max_nodes} / \text{max_concurrent_trials}) \right)$ ノードを使用してトレーニングされます。

次のコード サンプルは、予測ジョブに対するこれらの設定の例を示しています。

from azure.ai.ml.constants import TabularTrainingMode

# Set the training mode to distributed
forecasting_job.set_training(
    enable_dnn_training=True,
    allowed_training_algorithms=["TCNForecaster"],
    training_mode=TabularTrainingMode.DISTRIBUTED
)

# Distribute training across 4 nodes
# Train 2 trial models in parallel => 2 nodes per trial
forecasting_job.set_limits(
    max_concurrent_trials=2,
    max_nodes=4,
    # other limit settings
)

完全な構成コードのサンプルについては、構成ジョブの送信に関する前のセクションを参照してください。