針對批次部署使用低優先順序 VM

適用於:Azure CLI ml 延伸模組 v2 (目前)Python SDK azure-ai-ml v2 (目前)

Important

低優先權虛擬機(VM)於 2026 年 3 月 31 日因 Azure Machine Learning 而退役。 指定運算tier: low_priority叢集仍能通過驗證並執行工作,但 Azure Batch 現在透過系統發起的遷移,將節點分配為 Spot VM。 即期定價與即時驅逐行為適用於本文所述的每個群組,無論你是在退休日前還是之後建立。 關於批次層級的細節,請參見「 在具成本效益的即時虛擬機上執行批次工作負載」。

Azure Batch 部署支援低優先權虛擬機,以降低批次推論工作負載的成本。 低優先順序 VM 可讓您以較低的成本運用大量計算能力。 低優先權虛擬機利用 Azure 的多餘容量。 當您指定集區中的低優先順序 VM 時,Azure 就會在有多餘的容量時加以使用。

提示

使用低優先順序 VM 的代價是,這些 VM 可能無法使用,或可能隨時會有高優先順序的 VM 先佔,視可用容量而定。 基於此原因,此方法最適合用於批次和非同步處理的工作負載,這種工作負載的作業完成時間很有彈性,且工作會分散於許多虛擬機器上。

因為這些節點現在被分配為 Spot 虛擬機,你將依據叢集所在區域的虛擬機大小,依照目前的即時存取速率收費。 這個利率是浮動的,而非固定折扣。 隨著地區和需求而變動,當區域產能過剩不足時,價格可能接近現用付費。 你從不會被收取超過相同虛擬機容量的隨用隨付價格。 欲了解更多資訊,請參閱 Azure Spot 虛擬機器。

在選擇區域前,先確認你的虛擬機大小和地區的當前速率。 你可以在 Azure 價格計算器或 Azure 零售價格 API 中查詢。 一般價格詳情請參見 Azure Machine Learning 定價。

注意

Azure Batch 不支援設定即時虛擬機的最高價格,所以你無法限制運算叢集支付的費率。 節點被淘汰只是因為容量限制,絕非價格問題。 請參閱成本效益 高的即時虛擬機執行批次工作負載。

批次部署如何與低優先順序 VM 搭配運作

Azure Machine Learning Batch 部署提供多項功能,能讓使用者輕鬆使用及受益於低優先順序的 VM:

  • 在以低優先順序 VM 建立的 Azure Machine Learning 計算叢集上執行,批次部署作業會耗用低優先順序的 VM。 當部署與低優先順序 VM 的叢集相關聯後,這類部署所產生的所有作業都會使用低優先順序的 VM。 無法進行個別作業設定。
  • 批次部署作業會根據要提交的工作數目,自動搜尋可用計算叢集中的目標 VM 數目。 如果 VM 已被優先佔用或無法使用,批次部署作業會嘗試將失敗的工作排入叢集,以取代遺失的容量。
  • 低優先順序的 VM 有不同於專用 VM 的 vCPU 配額。 根據您的訂用帳戶而定,每個區域的低優先順序核心數預設限制為 100 到 3,000 個。 您可以增加每個訂用帳戶的低優先順序核心數目,而這是跨 VM 系列的單一值。 請參閱 Azure Machine Learning 計算配額。

考量和使用案例

許多批次工作負載都很適合於低優先順序 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

檢視和監視節點解除配置

Azure 入口網站有新的計量可供低優先順序 VM 監視低優先順序 VM。 這些計量包括:

  • 先佔節點
  • 已被優先佔用的核心

在 Azure 入口網站中檢視這些計量:

  1. 在 Azure 入口網站,移至 Azure Machine Learning 工作區。
  2. 從 [監視] 區段選取 [計量]。
  3. 從 [計量] 清單中選取您所需的計量。

資源監視窗格中 [計量] 區段的螢幕擷取畫面,其中顯示低優先順序 VM 的相關計量。