針對批次部署使用低優先順序 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 入口網站中檢視這些計量:
- 在 Azure 入口網站,移至 Azure Machine Learning 工作區。
- 從 [監視] 區段選取 [計量]。
- 從 [計量] 清單中選取您所需的計量。