建立 Azure Machine Learning 計算叢集
適用於:Azure CLI ml 延伸模組 v2 (目前)
Python SDK azure-ai-ml v2 (目前)
了解如何在您的 Azure Machine Learning 工作區中建立和管理計算叢集。
您可以使用 Azure Machine Learning 計算叢集,將定型或批次推斷程序散發到雲端中 CPU 或 GPU 計算節點的叢集。 如需包含 GPU 的 VM 大小有關的詳細資訊,請參閱 GPU 最佳化虛擬機器大小。
在本文中,了解如何:
- 建立計算叢集
- 以低優先順序的 VM 降低計算叢集成本
- 為叢集設定受控識別
Prerequisites
Azure Machine Learning 工作區。 如需詳細資訊,請參閱建立 Azure Machine Learning 工作區。
適用於 Machine Learning 服務 (v2) 的 Azure CLI 延伸模組、Azure Machine Learning Python SDK 或 Azure Machine Learning Visual Studio Code 延伸模組。
如果使用 Python SDK,請使用工作區設定您的開發環境。 設定環境之後,連結至您的 Python 指令碼中的工作區:
適用於:
Python SDK azure-ai-ml v2 (目前)
執行此程式碼以連線至您的 Azure ML 工作區。
在下方的程式碼中替換為您的訂閱識別碼、資源群組名稱和工作區名稱。 若要尋找這些值:
- 登入 Azure Machine Learning Studio。
- 開啟您要使用的工作區。
- 在右上方的 Azure Machine Learning 工作室工具列中,選取您的工作區名稱。
- 將工作區、資源群組和訂閱識別碼的值複製至程式碼。
- 如果您使用 Studio 中的筆記本,則須複製值、關閉區域並貼上,然後返回複製下一個值。
# Enter details of your AML workspace subscription_id = "<SUBSCRIPTION_ID>" resource_group = "<RESOURCE_GROUP>" workspace = "<AML_WORKSPACE_NAME>"
# get a handle to the workspace from azure.ai.ml import MLClient from azure.identity import DefaultAzureCredential ml_client = MLClient( DefaultAzureCredential(), subscription_id, resource_group, workspace )
ml_client
是工作區的處理常式,用來管理其他資源和作業。
什麼是計算叢集?
Azure Machine Learning 計算叢集是一種受控的計算基礎結構,可讓您輕鬆建立單一或多重節點計算。 計算叢集是可以與您工作區中的其他使用者共用的資源。 計算會在提交作業時自動相應增加,而且可以放在 Azure 虛擬網路中。 計算叢集 也不支援虛擬網路中的公用 IP 部署。 計算會在容器化環境中執行,並在 Docker 容器中封裝模型的相依性。
計算叢集可在虛擬網路環境中安全地執行作業,而無須企業開啟 SSH 連接埠。 作業會在容器化環境中執行,並在 Docker 容器中封裝模型的相依性。
限制
本文件中列出的某些案例會標示為預覽。 預覽功能是在沒有服務等級協定的情況下提供,不建議用於生產工作負載。 可能不支援特定功能,或可能已經限制功能。 如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款。
您可以在工作區以外的不同區域中建立計算叢集。 這項功能目前為預覽版本,且僅適用於計算叢集,而非計算執行個體。 如果您使用已啟用私人端點的工作區,則無法使用此預覽。
警告
在與您的工作區或資料存放區不同區域中使用計算叢集時,您可能會看到網路延遲和資料傳輸成本增加。 建立叢集以及在叢集上執行作業時,可能會產生延遲和成本。
我們目前僅支援透過 ARM 範本來建立 (而不是更新) 叢集。 若要更新計算,目前建議您使用 SDK、Azure CLI 或 UX。
Azure Machine Learning Compute 有預設限制,例如可配置的核心數目。 如需詳細資訊,請參閱管理和要求 Azure 資源的配額。
Azure 可讓您對資源施加鎖定,使其無法被刪除,或處於唯讀狀態。 請勿將資源鎖定套用至包含您工作區的資源群組。 將鎖定套用至包含您工作區的資源群組,將可防止調整 Azure Machine Learning 計算叢集的作業。 如需鎖定資源的詳細資訊,請參閱鎖定資源以防止非預期的變更。
建立
估計時間:約 5 分鐘。
Azure Machine Learning Compute 可以跨回合重複使用。 計算可與工作區中的其他使用者共用,並在回合之間保留,且會根據所提交的回合數目以及叢集上設定的 max_nodes 自動擴大或縮小節點。 min_nodes 設定可以控制可用的節點數目下限。
適用於計算叢集建立的專用核心每個區域、VM 系列配額與總計區域配額會統一,並與 Azure Machine Learning 定型計算叢集配額共用。
重要
若要避免在未執行作業時產生費用,請將節點數下限設定為 0。 這項設定可讓 Azure Machine Learning 將未使用的節點解除配置。 任何大於 0 的值都會保持執行該數量的節點,即使不使用節點也一樣。
未使用時,計算會自動向下調整為零節點。 視需要建立專用的虛擬機器以執行您的作業。
建立計算叢集的最快方式是遵循快速入門:建立使用 Azure Machine Learning 所需的工作區資源。
或使用下列範例,建立包含更多選項的計算叢集:
若要使用 Python 建立持續性 Azure Machine Learning Compute 資源,請指定 size 和 max_instances 屬性。 Azure Machine Learning 接著會對於其他屬性使用智慧型預設值。
- size*:Azure Machine Learning Compute 建立的 VM 系列節點。
- *max_instances:在 Azure Machine Learning Compute 上執行作業時,自動擴大的最大節點數。
適用於:Python SDK azure-ai-ml v2 (目前)
from azure.ai.ml.entities import AmlCompute
cluster_basic = AmlCompute(
name="basic-example",
type="amlcompute",
size="STANDARD_DS3_v2",
location="westus",
min_instances=0,
max_instances=2,
idle_time_before_scale_down=120,
)
ml_client.begin_create_or_update(cluster_basic).result()
建立 Azure Machine Learning Compute 時,您也可以設定多個進階屬性。 這些屬性可讓您建立固定大小的持續性叢集,也可以在您訂用帳戶中現有的 Azure 虛擬網路內建立。 如需詳細資料,請參閱 AmlCompute 類別。
警告
設定 location
參數時,如果其在與您的工作區或資料存放區不同的區域,您可能會看到網路延遲和資料傳輸成本增加。 建立叢集以及在叢集上執行作業時,可能會產生延遲和成本。
以低優先順序的 VM 降低計算叢集成本
您也可以選擇使用低優先順序的 VM 來執行部分或所有的工作負載。 這些 VM 沒有保證可用性,可能會在使用時被佔用。 您將必須重新啟動先佔作業。
使用 Azure 低優先順序的虛擬機器可讓您使用 Azure 未使用的容量,大幅節省成本。 任何時候只要 Azure 需要這些容量,Azure 基礎結構就會收回 Azure 低優先順序的虛擬機器。 因此,Azure 低優先順序的虛擬機器非常適合可處理中斷的工作負載使用。 可用的容量數量取決於大小、區域、時段等因素。 部署 Azure 低優先順序的虛擬機器時,如果有可用的容量,則 Azure 將會配置 VM,但這些 VM 沒有服務等級協定 (SLA)。 Azure 低優先順序的虛擬機器不提供高可用性保證。 任何時候只要 Azure 需要這些容量,Azure 基礎結構就會收回 Azure 低優先順序的虛擬機器
使用下列任何一種方式來指定低優先順序的 VM:
適用於:Python SDK azure-ai-ml v2 (目前)
from azure.ai.ml.entities import AmlCompute
cluster_low_pri = AmlCompute(
name="low-pri-example",
size="STANDARD_DS3_v2",
min_instances=0,
max_instances=2,
idle_time_before_scale_down=120,
tier="low_priority",
)
ml_client.begin_create_or_update(cluster_low_pri).result()
設定受控身分識別
如需如何使用計算叢集設定受控識別的資訊,請參閱設定 Azure Machine Learning 與其他服務之間的驗證。
疑難排解
在 GA 發行之前就從 Azure 入口網站建立 Azure Machine Learning 工作區的部分使用者,可能會無法在該工作區上建立 AmlCompute。 您可以對該服務提出支援要求,或透過入口網站或 SDK 來建立新的工作區,以立即自行解除鎖定。
停滯在調整大小
如果您的 Azure Machine Learning 計算叢集在調整大小時出現停滯 (0-> 0) 的節點狀態,這可能是因為 Azure 資源鎖定所致。
Azure 可讓您對資源施加鎖定,使其無法被刪除,或處於唯讀狀態。 鎖定資源可能會導致非預期的結果。 某些看似不會修改資源的作業,實際上需要會被鎖定封鎖的動作。
有了 Azure Machine Learning,將刪除鎖定套用至工作區的資源群組,將會防止 Azure ML 計算叢集的調整作業。 若要解決此問題,建議您從資源群組中移除鎖定,並改為將其套用至群組中的個別項目。
重要
請勿將鎖定套用至下列資源:
資源名稱 | 資源類型 |
---|---|
<GUID>-azurebatch-cloudservicenetworksecurityggroup |
網路安全性群組 |
<GUID>-azurebatch-cloudservicepublicip |
公用 IP 位址 |
<GUID>-azurebatch-cloudserviceloadbalancer |
負載平衡器 |
這些資源是用來與計算叢集進行通訊及執行調整規模等作業。 從這些資源中移除資源鎖定應該會允許您的計算叢集進行自動調整。
如需資源鎖定的詳細資訊,請參閱鎖定資源以防止非預期的變更。
後續步驟
使用您的計算叢集,以便: