共用方式為


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

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

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

提示

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

比起專用的虛擬機器,低優先順序的虛擬機器的價格較低。 如需價格詳細資料,請參閱 Azure Machine Learning 價格

批次部署如何與低優先順序 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。 無法進行個別作業設定。
  • 不論進度為何,都會在迷你批次層級完成重新排程。 未提供檢查點功能。

警告

如果整個叢集已被優先佔用 (或在單一節點叢集上執行),作業會取消,因為沒有任何容量可供其執行。 在此案例中會需要重新提交。

建立使用低優先順序 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 的相關計量。