建立和使用計算叢集

已完成

實驗和開發之後,您希望您的程式碼能夠準備好用於生產環境。 當您在生產環境中執行程序代碼時,最好使用腳本而非筆記本。 當您執行文稿時,您想要使用可調整的計算目標。

在 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)

提交使用計算叢集的作業之後,計算叢集會相應放大至一或多個節點。 調整大小需要幾分鐘,而您的作業會在配置必要的節點後開始執行。 當作業的狀態是 準備時,計算資源叢集正在準備中。 當狀態 執行時,計算叢集已就緒,且作業正在執行。