AmlCompute 类

在 Azure 机器学习中管理 Azure 机器学习计算。

Azure 机器学习计算(AmlCompute)是一种托管计算基础结构,可用于轻松创建单节点或多节点计算。 计算在工作区区域中创建为可与其他用户共享的资源。 有关详细信息,请参阅 什么是 Azure 机器学习中的计算目标?

类 ComputeTarget 构造函数。

检索与提供的工作区关联的计算对象的云表示形式。 返回与检索的计算对象的特定类型对应的子类的实例。

构造函数

AmlCompute(workspace, name)

参数

名称 说明
workspace
必需

包含要检索的 AmlCompute 对象的工作区对象。

name
必需
str

要检索的 AmlCompute 对象的名称。

workspace
必需

包含要检索的 Compute 对象的工作区对象。

name
必需
str

要检索的 Compute 对象的名称。

注解

在以下示例中,将创建由 AmlCompute 其预配的持久性计算目标。 此示例中的参数的类型 的子类


   from azureml.core.compute import ComputeTarget, AmlCompute
   from azureml.core.compute_target import ComputeTargetException

   # Choose a name for your CPU cluster
   cpu_cluster_name = "cpu-cluster"

   # Verify that cluster does not exist already
   try:
       cpu_cluster = ComputeTarget(workspace=ws, name=cpu_cluster_name)
       print('Found existing cluster, use it.')
   except ComputeTargetException:
       compute_config = AmlCompute.provisioning_configuration(vm_size='STANDARD_D2_V2',
                                                              max_nodes=4)
       cpu_cluster = ComputeTarget.create(ws, cpu_cluster_name, compute_config)

   cpu_cluster.wait_for_completion(show_output=True)

完整示例可从 https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/training/train-on-amlcompute/train-on-amlcompute.ipynb

方法

add_identity

为此 AmlCompute 目标添加标识类型和/或标识 ID。

delete

从其关联的工作区中删除 AmlCompute 对象。

deserialize

将 JSON 对象转换为 AmlCompute 对象。

detach

AmlCompute 对象不支持 Detach。 请改用 delete

get

返回计算对象。

get_active_runs

返回此计算的运行生成器。

get_status

检索 AmlCompute 群集的当前详细状态。

list_nodes

获取计算目标中所有计算节点的详细信息(例如 IP 地址、端口等)。

list_quotas

根据给定工作区和订阅的 VMFamily 获取当前分配的工作区配额。

list_usages

获取当前使用情况信息以及给定工作区和订阅的 AML 资源限制。

provisioning_configuration

创建用于预配 AmlCompute 目标的配置对象。

refresh_state

对对象的属性执行就地更新。

此方法根据相应云对象的当前状态更新属性。 这主要用于手动轮询计算状态。

remove_identity

删除计算中的标识。

serialize

将此 AmlCompute 对象转换为 JSON 序列化字典。

supported_vmsizes

列出区域中支持的 VM 大小。

update

更新 ScaleSettings 此 AmlCompute 目标。

update_quotas

更新工作区中 VM 系列的配额。

wait_for_completion

等待 AmlCompute 群集完成预配。

这可以配置为等待最少的节点数,并在一定时间段后超时。

add_identity

为此 AmlCompute 目标添加标识类型和/或标识 ID。

add_identity(identity_type, identity_id=None)

参数

名称 说明
identity_type
必需

可能的值为:

  • SystemAssigned - 系统分配的标识

  • UserAssigned - 用户分配的标识。 要求设置标识 ID。

identity_id

用户分配标识的资源 ID 列表。 例如 ['/subscriptions//resourceGroups//providers/Microsoft.ManagedIdentity /userAssignedIdentities/']

默认值: None

注解

仅当 identity_type == UserAssigned 时,才应指定identity_id

delete

从其关联的工作区中删除 AmlCompute 对象。

delete()

例外

类型 说明

注解

如果此对象是通过 Azure 机器学习创建的,则也会删除相应的基于云的对象。 如果此对象是在外部创建的,并且仅附加到工作区,则此方法将引发且 ComputeTargetException 不会更改任何内容。

deserialize

将 JSON 对象转换为 AmlCompute 对象。

static deserialize(workspace, object_dict)

参数

名称 说明
workspace
必需

与 AmlCompute 对象关联的工作区对象。

object_dict
必需

要转换为 AmlCompute 对象的 JSON 对象。

返回

类型 说明

提供的 JSON 对象的 AmlCompute 表示形式。

例外

类型 说明

注解

如果提供的工作区不是计算与之关联的工作区,则引发该 ComputeTargetException 工作区。

detach

AmlCompute 对象不支持 Detach。 请改用 delete

detach()

例外

类型 说明

get

返回计算对象。

get()

get_active_runs

返回此计算的运行生成器。

get_active_runs(type=None, tags=None, properties=None, status=None)

参数

名称 说明
type
str

按提供的类型筛选返回的运行生成器。 请参阅 add_type_provider 创建运行类型。

默认值: None
tags
strdict

按“tag”或 {“tag”: “value”} 筛选运行

默认值: None
properties
strdict

筛选器按“property”或 {“property”: “value”} 运行

默认值: None
status
str

运行状态 - “正在运行” 或 “已排队”

默认值: None

返回

类型 说明
<xref:builtin.generator>

~_restclient.models.RunDto 的生成器

get_status

检索 AmlCompute 群集的当前详细状态。

get_status()

返回

类型 说明

群集的详细状态对象

list_nodes

获取计算目标中所有计算节点的详细信息(例如 IP 地址、端口等)。

list_nodes()

返回

类型 说明

计算目标中所有计算节点的详细信息。

list_quotas

根据给定工作区和订阅的 VMFamily 获取当前分配的工作区配额。

static list_quotas(workspace, ___location=None)

参数

名称 说明
workspace
必需
___location
str

配额的位置。 如果未指定,则默认为工作区位置。

默认值: None

返回

类型 说明

基于 VMFamily 的当前分配的工作区配额列表

list_usages

获取当前使用情况信息以及给定工作区和订阅的 AML 资源限制。

static list_usages(workspace, show_all=False, ___location=None)

参数

名称 说明
workspace
必需
show_all

指定是否需要子资源的详细使用情况。 默认为 False

默认值: False
___location
str

资源的位置。 如果未指定,则默认为工作区位置。

默认值: None

返回

类型 说明

当前使用情况信息列表以及 AML 资源的限制

provisioning_configuration

创建用于预配 AmlCompute 目标的配置对象。

static provisioning_configuration(vm_size='', vm_priority='dedicated', min_nodes=0, max_nodes=None, idle_seconds_before_scaledown=1800, admin_username=None, admin_user_password=None, admin_user_ssh_key=None, vnet_resourcegroup_name=None, vnet_name=None, subnet_name=None, tags=None, description=None, remote_login_port_public_access='NotSpecified', identity_type=None, identity_id=None, ___location=None, enable_node_public_ip=True)

参数

名称 说明
vm_size
必需
str

代理 VM 的大小。 可在以下位置找到更多详细信息:https://aka.ms/azureml-vm-details。 请注意,并非所有大小都可用于所有区域,如上一链接中所述。 如果未指定,则默认为Standard_NC6。

vm_priority
str

VM 优先级、 专用低优先级

默认值: dedicated
min_nodes
int

群集上使用的最小节点数。 如果未指定,则默认为 0。

默认值: 0
max_nodes
int

群集上使用的最大节点数。 如果未指定,则默认为 4。

默认值: None
idle_seconds_before_scaledown
int

在缩减群集之前,节点空闲时间(以秒为单位)。 如果未指定,则默认值为 1800。

默认值: 1800
admin_username
str

可用于通过 SSH 连接到节点的管理员用户帐户的名称。

默认值: None
admin_user_password
str

管理员用户帐户的密码。

默认值: None
admin_user_ssh_key
str

管理员用户帐户的 SSH 公钥。

默认值: None
vnet_resourcegroup_name
str

虚拟网络所在的资源组的名称。

默认值: None
vnet_name
str

虚拟网络的名称。

默认值: None
subnet_name
str

VNet 中子网的名称。

默认值: None
tags

要提供给计算对象的键值标记的字典。

默认值: None
description
str

用于向计算对象提供的说明。

默认值: None
remote_login_port_public_access
str

公共 SSH 端口的状态。 可能的值为:

  • 已禁用 - 指示公共 SSH 端口在群集的所有节点上关闭。

  • 已启用 - 指示公共 ssh 端口在群集的所有节点上处于打开状态。

  • NotSpecified - 指示如果定义了 VNet,则群集的所有节点上关闭公共 SSH 端口,否则将打开所有公共节点。 它只能在群集创建期间使用此默认值。 创建后,将启用或禁用它。

默认值: NotSpecified
identity_type

可能的值为:

  • SystemAssigned - 系统分配的标识

  • UserAssigned - 用户分配的标识。 要求设置标识 ID。

默认值: None
identity_id

用户分配标识的资源 ID 列表。 例如 ['/subscriptions//resourceGroups//providers/Microsoft.ManagedIdentity/userAssignedIdentities/']

默认值: None
___location
str

要在其中预配群集的位置。

默认值: None
enable_node_public_ip

启用节点公共 IP。 可能的值为:

  • True - 启用节点公共 IP。

  • False - 禁用节点公共 IP。

  • NotSpecified - 启用节点公共 IP。

默认值: True

返回

类型 说明

创建计算对象时要使用的配置对象。

例外

类型 说明

refresh_state

对对象的属性执行就地更新。

此方法根据相应云对象的当前状态更新属性。 这主要用于手动轮询计算状态。

refresh_state()

remove_identity

删除计算中的标识。

remove_identity(identity_id=None)

参数

名称 说明
identity_id

用户分配的标识

默认值: None

注解

如果未指定identity_id,系统分配的标识将自动删除

serialize

将此 AmlCompute 对象转换为 JSON 序列化字典。

serialize()

返回

类型 说明

此 AmlCompute 对象的 JSON 表示形式。

supported_vmsizes

列出区域中支持的 VM 大小。

static supported_vmsizes(workspace, ___location=None)

参数

名称 说明
workspace
必需
___location
str

群集的位置。 如果未指定,则默认为工作区位置。

默认值: None

返回

类型 说明

区域中支持的 VM 大小列表,其中包含 VM、VCPU 和 RAM 的名称。

update

更新 ScaleSettings 此 AmlCompute 目标。

update(min_nodes=None, max_nodes=None, idle_seconds_before_scaledown=None)

参数

名称 说明
min_nodes
int

群集上使用的最小节点数。

默认值: None
max_nodes
int

群集上使用的最大节点数。

默认值: None
idle_seconds_before_scaledown
int

在缩减群集之前,节点空闲时间(以秒为单位)。

默认值: None

update_quotas

更新工作区中 VM 系列的配额。

static update_quotas(workspace, vm_family, limit=None, ___location=None)

参数

名称 说明
workspace
必需
vm_family
必需
str

VM 系列名称

limit
int

资源允许的最大配额

默认值: None
___location
str

配额的位置。 如果未指定,则默认为工作区位置。

默认值: None

wait_for_completion

等待 AmlCompute 群集完成预配。

这可以配置为等待最少的节点数,并在一定时间段后超时。

wait_for_completion(show_output=False, min_node_count=None, timeout_in_minutes=25, is_delete_operation=False)

参数

名称 说明
show_output

用于提供更详细输出的布尔值。

默认值: False
min_node_count
int

在考虑预配完成之前,要等待的最小节点数。 这不必等于为其预配计算的最小节点数,但不应大于该数目。

默认值: None
timeout_in_minutes
int

在考虑预配失败之前等待的持续时间(以分钟为单位)。

默认值: 25
is_delete_operation

指示作是否用于删除。

默认值: False

例外

类型 说明