バッチ デプロイで低優先度の VM を使用する

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

Important

優先順位の低い仮想マシン (VM) は、2026 年 3 月 31 日にAzure Machine Learningで廃止されました。 tier: low_priorityを指定するコンピューティング クラスターは引き続き検証に合格し、ジョブを実行しますが、Azure Batchは、システムによって開始された移行を通じてノードをスポット VM として割り当てるようになりました。 スポット価格とスポット削除の動作は、提供終了日の前または後に作成したかどうかにかかわらず、この記事で説明されているすべてのクラスターに適用されます。 Batch レベルの詳細については、 コスト効率の高いスポット VM での Batch ワークロードの実行に関するページを参照してください。

Azure Batchデプロイでは、優先順位の低い VM がサポートされ、バッチ推論ワークロードのコストが削減されます。 低優先度の VM を使用すると、大量のコンピューティング能力を低コストで使用できます。 優先順位の低い VM では、Azureの余分な容量を利用します。 プールで低優先度の VM を指定すると、Azure は可能な場合にこの余剰分を使用します。

ヒント

低優先度の VM を使用する場合のトレードオフは、使用できる容量に応じて、いつでもそれらの仮想マシンが使用できなくなったり、割り込まれたりする可能性がある点です。 このため、このアプローチが最も適しているのは、ジョブの完了時間に融通が利き、作業が多数の仮想マシンに分散されているバッチや非同期処理ワークロードです。

これらのノードはスポット VM として割り当てられるようになったため、クラスターが実行されているリージョンの VM サイズに対して現在のスポット レートが課金されます。 このレートは固定割引ではなく可変です。 リージョンと需要に応じて変化し、リージョンの余力が少ない場合は従量課金制の価格に近づくことができます。 同じ VM サイズに対して従量課金制の料金を超える料金が発生することはありません。 詳細については、「スポット Virtual Machines Azure」を参照してください。

リージョンを選択する前に、VM のサイズとリージョンの現在のレートを確認します。 Azure料金計算ツールまたは Azure 小売価格 API で確認できます。 一般的な価格の詳細については、Azure Machine Learning価格に関するページを参照してください。

Azure Batchはスポット VM の最大価格の設定をサポートしていないため、コンピューティング クラスターの料金を上限にすることはできません。 ノードは容量上の理由だけで削除され、価格が理由で削除されることはありません。 コスト効率の高いスポット VM での Batch ワークロードの実行に関する説明を参照してください。

低優先度の VM でのバッチデプロイのしくみ

Azure Machine Learning Batch デプロイには、低優先度の VM を使用してメリットを享受するためのいくつかの機能が用意されています。

  • バッチ デプロイ ジョブでは、低優先度の VM で作成された Azure Machine Learning コンピューティング クラスターで実行することで、低優先度の VM を使用します。 デプロイが低優先度の VM のクラスターに関連付けられると、そのようなデプロイによって生成されるすべてのジョブで低優先度の VM が使用されます。 ジョブごとの構成はできません。
  • バッチ デプロイ ジョブは、送信するタスクの数に基づいて、使用可能なコンピューティング クラスター内の VM のターゲット数を自動的にシークします。 VM が割り込まれているか使用できない場合、バッチ デプロイ ジョブは、障害が発生したタスクをクラスターにキューイングし、失われた容量を置き換えようとします。
  • 低優先度の VM には、専用 VM とは異なる別個の vCPU クォータがあります。 リージョンあたりの低優先度のコアには、サブスクリプションに応じて、100 から 3,000 の既定の制限があります。 サブスクリプションあたりの優先順位の低いコアの数は増やすことができ、VM ファミリ全体で 1 つの値になります。 Azure Machine Learning コンピューティング クォータに関する記事を参照してください。

考慮事項とユース ケース

多くのバッチ ワークロードは、低優先度の VM に適しています。 低優先度の VM を使用すると、VM の割り当て解除が発生したときに実行の遅延が発生する可能性があります。 ジョブを完了する必要がある時間に融通が利く場合は、容量の低下の可能性を許容できる可能性があります。

バッチ エンドポイントでモデルをデプロイする場合は、ミニバッチ レベルで再スケジュールできます。 このアプローチには、割り当て解除は、現在処理されており、影響を受けるノードで完了していないミニバッチにしか影響しないという利点があります。 完了した進行状況はすべて保持されます。

制限事項

  • デプロイが低優先度の VM のクラスターに関連付けられると、そのようなデプロイによって生成されるすべてのジョブで低優先度の VM が使用されます。 ジョブごとの構成はできません。
  • 再スケジュールは、進行状況に関係なく、ミニバッチ レベルで行われます。 チェックポイント機能は提供されません。
  • クラスターの電源がオンになっている間は、クラスター内のすべてのノードに対して課金されます。これには、作業が完了する前に削除されたノードや、各交換ノードの起動に費やされた時間が含まれます。 削除では払い戻しやクレジットは生成されません。スポット VM には SLA は含まれません。 Azure Batchの仮想マシンの状態と課金の状態ベスト プラクティスを参照してください。
  • 頻繁に削除すると、同じワークロードに対してクラスターコストが dedicated クラスターよりも大きくなることがあります。特に、スポットレートが従量課金制料金に近いリージョンでは発生します。

警告

クラスター全体に対して割り込みが発生している、または単一ノード クラスターで実行されている場合、ジョブを実行できる容量がないため、ジョブは取り消されます。 この場合は再送信が必要です。

低優先度の VM を使用するバッチ デプロイを作成する

バッチ デプロイ ジョブでは、低優先度の VM で作成された Azure Machine Learning コンピューティング クラスターで実行することで、低優先度の VM を使用します。

デプロイが低優先度の VM のクラスターに関連付けられると、そのようなデプロイによって生成されるすべてのジョブで低優先度の VM が使用されます。 ジョブごとの構成はできません。

低優先度の Azure Machine Learning コンピューティング クラスターは、次のように作成できます。

次のようなコンピューティング定義 YAML (low-pri-cluster.yml) を作成します。

$schema: https://azuremlschemas.azureedge.net/latest/amlCompute.schema.json 
name: low-pri-cluster
type: amlcompute
size: STANDARD_DS3_v2
min_instances: 0
max_instances: 2
idle_time_before_scale_down: 120
tier: low_priority

次のコマンドを使って、コンピューティングを作成します。

az ml compute create -f low-pri-cluster.yml

新しいコンピューティングを作成したら、新しいクラスターを使用するようにデプロイを作成または更新できます。

新しいコンピューティング クラスターでデプロイを作成または更新するには、YAML 構成ファイル (endpoint.yml) を作成します。

$schema: https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json
endpoint_name: heart-classifier-batch
name: classifier-xgboost
description: A heart condition classifier based on XGBoost
type: model
model: azureml:heart-classifier@latest
compute: azureml:low-pri-cluster
resources:
  instance_count: 2
settings:
  max_concurrency_per_instance: 2
  mini_batch_size: 2
  output_action: append_row
  output_file_name: predictions.csv
  retry_settings:
    max_retries: 3
    timeout: 300

次に、次のコマンドを使ってデプロイを作成します。

az ml batch-endpoint create -f endpoint.yml

ノードの割り当て解除を表示し監視する

低優先度の VM を監視するための、低優先度の VM 用の新しいメトリックが Azure portal で利用できます。 これらのメトリックは次のとおりです。

  • Preempted Node (割り込まれたノード)
  • 割り込まれたコア

Azure portal でこれらのメトリックを表示するには、次の手順を実行します。

  1. Azure portal で Azure Machine Learning ワークスペースに移動します。
  2. [監視] セクションから [メトリック] を選択します。
  3. [メトリック] 一覧から目的のメトリックを選択します。

リソース監視ペインの [メトリック] セクションのスクリーンショット。低優先度の VM に関連するメトリックが表示されています。