建立和使用計算叢集
實驗和開發之後,您希望您的程式碼能夠準備好用於生產環境。 當您在生產環境中執行程序代碼時,最好使用腳本而非筆記本。 當您執行文稿時,您想要使用可調整的計算目標。
在 Azure Machine Learning 中,計算叢集 非常適合執行腳本。 您可以使用 Azure 命令行介面 (CLI) 或 Python 軟體開發工具包 (SDK) 在 Azure Machine Learning Studio 中建立計算叢集。
使用 Python SDK 建立計算叢集
若要使用 Python SDK 建立計算叢集,您可以使用下列程式代碼:
from azure.ai.ml.entities import AmlCompute
cluster_basic = AmlCompute(
name="cpu-cluster",
type="amlcompute",
size="STANDARD_DS3_v2",
location="westus",
min_instances=0,
max_instances=2,
idle_time_before_scale_down=120,
tier="low_priority",
)
ml_client.begin_create_or_update(cluster_basic).result()
若要瞭解 AmlCompute
類別預期哪些參數,您可以檢閱 參考檔案。
當您建立計算叢集時,需要考慮三個主要參數:
-
size
:指定計算叢集中每個節點的 虛擬機類型。 根據 Azure 中虛擬機器的大小。 在大小旁邊,您也可以指定是否要使用 CPU 或 GPU。 -
max_instances
:指定您的計算叢集可以擴展至的最大 節點數目。 計算叢集可以處理的平行工作負載數目,類似於叢集可調整的節點數目。 -
tier
:指定您的虛擬機器是屬於 低優先順序 還是 專用。 設定為低優先順序可能會降低成本,因為您不保證可用性。
使用計算叢集
有三個主要案例可讓您使用計算叢集:
- 執行您在設計師工具中建置的管線工作。
- 執行自動化機器學習作業。
- 以作業的形式執行腳本。
在每個這些情境中,計算叢集都是理想的選擇,因為計算叢集會在提交作業時自動擴展,並在作業完成時自動關閉。
計算叢集也可讓您平行定型多個模型,這是使用自動化機器學習時常見的作法。
您可以透過 Azure Machine Learning Studio 執行設計工具管線作業和自動化 Machine Learning 作業。 當您透過 Studio 提交作業時,您可以將計算目標設定為您建立的計算叢集。
當您偏好程式代碼優先方法時,您可以使用 Python SDK,將計算目標設定為計算叢集。
例如,當您以命令作業身分執行腳本時,可以使用下列程式代碼,將計算目標設定為計算叢集:
from azure.ai.ml import command
# configure job
job = command(
code="./src",
command="python diabetes-training.py",
environment="AzureML-sklearn-0.24-ubuntu18.04-py37-cpu@latest",
compute="cpu-cluster",
display_name="train-with-cluster",
experiment_name="diabetes-training"
)
# submit job
returned_job = ml_client.create_or_update(job)
aml_url = returned_job.studio_url
print("Monitor your job at", aml_url)
提交使用計算叢集的作業之後,計算叢集會相應放大至一或多個節點。 調整大小需要幾分鐘,而您的作業會在配置必要的節點後開始執行。 當作業的狀態是 準備時,計算資源叢集正在準備中。 當狀態 執行時,計算叢集已就緒,且作業正在執行。