建立和使用計算叢集
實驗和開發之後,您希望您的程式碼能夠準備好用於生產環境。 當您在生產環境中執行程序代碼時,最好使用腳本而非筆記本。 當您執行文稿時,您想要使用可調整的計算目標。
在 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:指定虛擬機器是 低優先順序 還是 專用。 設定為低優先順序可能會降低成本,因為您不保證可用性。
使用計算叢集
有三個主要案例可讓您使用計算叢集:
- 執行您在 Designer 中建置的管線作業。
- 執行自動化機器學習作業。
- 以作業的形式執行指令碼。
在每個這些情境中,計算叢集都是理想的選擇,因為計算叢集會在提交作業時自動擴展,並在作業完成時自動關閉。
計算叢集也可讓您平行定型多個模型,這是使用自動化機器學習時常見的作法。
您可以透過 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)
提交使用計算叢集的作業之後,計算叢集會相應放大至一或多個節點。 調整大小需要幾分鐘的時間,而您的作業會在佈建必要的節點之後開始執行。 當作業的狀態為準備時,計算叢集正在被準備。 當狀態正在 執行時,計算叢集已就緒,且作業正在執行中。