创建和使用计算群集
试验和开发之后,你希望代码可供生产使用。 在生产环境中运行代码时,最好使用脚本而不是笔记本。 运行脚本时,你希望使用可缩放的计算目标。
在 Azure 机器学习中,计算群集非常适合运行脚本。 可以使用 Azure 命令行接口 (CLI) 或 Python 软件开发工具包 (SDK) 在 Azure 机器学习工作室中创建计算群集。
使用 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 机器学习工作室运行设计器管道作业和自动化机器学习作业。 通过工作室提交作业时,可以将计算目标设置为创建的计算群集。
如果首选代码优先方法,可以使用 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)
提交使用计算群集的作业后,计算群集将会横向扩展到一个或多个节点。 调整大小需要几分钟时间,在预配必要的节点后,作业将开始运行。 当作业的状态为“正在准备”时,则表明正在准备计算群集。 当状态为“正在运行”时,则表明计算群集已准备就绪,作业正在运行。