Workspace 类
定义用于管理训练和部署项目的 Azure 机器学习资源。
工作区是 Azure 机器学习中的机器学习的基础资源。 可以使用工作区来试验、训练和部署机器学习模型。 每个工作区与某个 Azure 订阅和资源组相关联,并具有关联的 SKU。
有关工作区的详细信息,请参阅:
用于加载现有 Azure 机器学习工作区的类工作区构造函数。
- 继承
-
builtins.objectWorkspace
构造函数
Workspace(subscription_id, resource_group, workspace_name, auth=None, _location=None, _disable_service_check=False, _workspace_id=None, sku='basic', tags=None, _cloud='AzureCloud')
参数
身份验证对象。 有关更多详细信息,请参阅 https://aka.ms/aml-notebook-auth。如果为 None,则将使用默认的 Azure CLI 凭据,或者 API 将提示输入凭据。
- workspace_name
- str
工作区名称。 名称的长度必须介于 2 到 32 个字符之间。 名称的第一个字符必须是字母数字(字母或数字),但名称的其余部分可以包含字母数字、连字符和下划线字符。 不含空格。
身份验证对象。 有关更多详细信息,请参阅 https://aka.ms/aml-notebook-auth。如果为 None,则将使用默认的 Azure CLI 凭据,或者 API 将提示输入凭据。
注解
下面的示例演示如何创建工作区。
from azureml.core import Workspace
ws = Workspace.create(name='myworkspace',
subscription_id='<azure-subscription-id>',
resource_group='myresourcegroup',
create_resource_group=True,
location='eastus2'
)
如果需要将一个现有的 Azure 资源组用于该工作区,请将 create_resource_group
设置为 False。
若要在多个环境中使用同一工作区,请创建一个 JSON 配置文件。 该配置文件会保存订阅、资源和工作区名称,以便可以轻松加载。 若要保存配置,请使用 write_config 方法。
ws.write_config(path="./file-path", file_name="ws_config.json")
有关配置文件的示例,请参阅创建工作区配置文件。
若要从配置文件加载工作区,请使用 from_config 方法。
ws = Workspace.from_config()
ws.get_details()
或者,使用 get 方法加载现有工作区,而无需使用配置文件。
ws = Workspace.get(name="myworkspace",
subscription_id='<azure-subscription-id>',
resource_group='myresourcegroup')
以上示例可能使用交互式登录对话框提示提供 Azure 身份验证凭据。 对于其他用例,包括使用 Azure CLI 进行身份验证和自动化工作流中的身份验证,请参阅 Azure 机器学习中的身份验证。
方法
add_private_endpoint |
向工作区添加专用终结点。 |
create |
创建新的 Azure 机器学习工作区。 如果工作区已存在或未满足任何工作区要求,则会引发异常。 |
delete |
删除 Azure 机器学习工作区关联的资源。 |
delete_connection |
删除工作区的连接。 |
delete_private_endpoint_connection |
删除工作区的专用终结点连接。 |
diagnose_workspace |
诊断工作区设置问题。 |
from_config |
返回现有 Azure 机器学习工作区中的工作区对象。 从文件读取工作区配置。 如果找不到配置文件,将引发异常。 该方法提供了一种在多个 Python 笔记本或项目之间重用同一工作区的简单方式。 用户可以使用 write_config 方法来保存工作区 Azure 资源管理器 (ARM) 属性,并使用此方法在不同的 Python 笔记本或项目中加载相同的工作区,而无需重新键入工作区 ARM 属性。 |
get |
返回现有 Azure 机器学习工作区的工作区对象。 如果工作区不存在,或者必填字段不能唯一标识工作区,则会引发异常。 |
get_connection |
获取工作区的连接。 |
get_default_compute_target |
获取工作区的默认计算目标。 |
get_default_datastore |
获取工作区的默认数据存储。 |
get_default_keyvault |
获取工作区的默认密钥保管库对象。 |
get_details |
返回工作区的详细信息。 |
get_mlflow_tracking_uri |
获取工作区的 MLflow 跟踪 URI。 MLflow (https://mlflow.org/) 是用于跟踪机器学习试验和管理模型的开源平台。 可将 MLflow 日志记录 API 与 Azure 机器学习结合使用,以便将指标、模型和项目记录到 Azure 机器学习工作区。 |
get_run |
返回工作区中具有指定 run_id 的运行。 |
list |
列出订阅中用户有权访问的所有工作区。 可以根据资源组筛选工作区列表。 |
list_connections |
列出此工作区下的连接。 |
list_keys |
列出当前工作区的键。 |
set_connection |
添加或更新工作区下的连接。 |
set_default_datastore |
设置工作区的默认数据存储。 |
setup |
创建新的工作区或检索现有的工作区。 |
sync_keys |
触发工作区以立即同步密钥。 如果工作区中任何资源的密钥发生更改,则可能需要一小时左右才能自动更新。 此函数可根据请求更新密钥。 一个示例场景是在重新生成存储密钥后需要立即访问存储。 |
update |
更新易记名称、说明、标记、映像生成计算以及与工作区关联的其他设置。 |
update_dependencies |
在以下情况下,更新工作区的现有关联资源。 a) 用户意外删除了现有的关联资源,并想使用新的资源进行更新,而不必重新创建整个工作区。 b) 用户具有现有的关联资源,并希望替换当前与工作区关联的资源。 c) 尚未创建关联的资源,并希望使用已具有的现有资源(仅适用于容器注册表)。 |
write_config |
将工作区 Azure 资源管理器 (ARM) 属性写入配置文件。 稍后可以使用 from_config 方法加载工作区 ARM 属性。 该方法提供了一种在多个 Python 笔记本或项目之间重用同一工作区的简单方式。 用户可以使用此函数来保存工作区 ARM 属性,并使用 from_config 在不同的 Python 笔记本或项目中加载相同的工作区,而无需重新键入工作区 ARM 属性。 |
add_private_endpoint
向工作区添加专用终结点。
add_private_endpoint(private_endpoint_config, private_endpoint_auto_approval=True, location=None, show_output=True, tags=None)
参数
- private_endpoint_auto_approval
- bool
布尔标志,指示专用终结点创建是应自动批准,还是从 Azure 专用链接中心手动批准。 如果是手动批准,则用户可以在专用链接门户中查看待处理请求以批准/拒绝该请求。
返回
创建的 PrivateEndPoint 对象。
返回类型
create
创建新的 Azure 机器学习工作区。
如果工作区已存在或未满足任何工作区要求,则会引发异常。
static create(name, auth=None, subscription_id=None, resource_group=None, location=None, create_resource_group=True, sku='basic', tags=None, friendly_name=None, storage_account=None, key_vault=None, app_insights=None, container_registry=None, adb_workspace=None, primary_user_assigned_identity=None, cmk_keyvault=None, resource_cmk_uri=None, hbi_workspace=False, default_cpu_compute_target=None, default_gpu_compute_target=None, private_endpoint_config=None, private_endpoint_auto_approval=True, exist_ok=False, show_output=True, user_assigned_identity_for_cmk_encryption=None, system_datastores_auth_mode='accessKey', v1_legacy_mode=None)
参数
- name
- str
新工作区名称。 名称的长度必须介于 2 到 32 个字符之间。 名称的第一个字符必须是字母数字(字母或数字),但名称的其余部分可以包含字母数字、连字符和下划线字符。 不含空格。
身份验证对象。 有关更多详细信息,请参阅 https://aka.ms/aml-notebook-auth。如果为 None,则将使用默认的 Azure CLI 凭据,或者 API 将提示输入凭据。
- key_vault
- str
Azure 资源 ID 格式的现有密钥保管库。 有关 Azure 资源 ID 格式的详细信息,请参阅下面的示例代码。 工作区将使用密钥保管库来存储用户添加到工作区的凭据。 如果为 None,将创建一个新的密钥保管库。
- app_insights
- str
Azure 资源 ID 格式的现有 Application Insights。 有关 Azure 资源 ID 格式的详细信息,请参阅下面的示例代码。 工作区将使用 Application Insights 来记录 webservices 事件。 如果为 None,将创建新的 Application Insights。
- container_registry
- str
Azure 资源 ID 格式的现有容器注册表(有关 Azure 资源 ID 格式的详细信息,请参阅下面的示例代码)。 工作区将使用容器注册表来拉取并推送试验和 webservices 映像。 如果为 None,则仅在需要时创建新的容器注册表,而不会与工作区创建一起创建。
- adb_workspace
- str
Azure 资源 ID 格式的现有 Adb 工作区(有关 Azure 资源 ID 格式的详细信息,请参阅下面的示例代码)。 Adb 工作区将用于与工作区链接。 如果为 None,则不会发生工作区链接。
- cmk_keyvault
- str
包含 Azure 资源 ID 格式的客户管理的密钥的密钥保管库:/subscriptions/<azure-subscription-id>/resourcegroups/<azure-resource-group>/providers/microsoft.keyvault/vaults/<azure-keyvault-name>
例如:“/subscriptions/d139f240-94e6-4175-87a7-954b9d27db16/resourcegroups/myresourcegroup/providers/microsoft.keyvault/vaults/mykeyvault”。有关 Azure 资源 ID 格式的更多详细信息,请参阅下面注解中的示例代码。
- resource_cmk_uri
- str
客户管理的密钥的密钥 URI,用于静态数据加密。
URI 格式为:https://<keyvault-dns-name>/keys/<key-name>/<key-version>
。
例如,“https://mykeyvault.vault.azure.net/keys/mykey/bc5dce6d01df49w2na7ffb11a2ee008b”。
有关如何创建密钥并获取其 URI 的步骤,请参阅 https://docs.microsoft.com/azure-stack/user/azure-stack-key-vault-manage-portal。
- hbi_workspace
- bool
指定工作区是否包含高业务影响 (HBI) 的数据,即包含敏感业务信息。 此标志只能在创建工作区期间设置。 在创建工作区后,无法更改其值。 默认值为 False。
如果该项设置为 True,将执行进一步的加密步骤,并根据 SDK 组件的不同,在内部收集的遥测数据中生成经过编辑的信息。 有关详细信息,请参阅数据加密。
当此标志设置为 True 时,一个可能的影响是增加了排查问题的难度。 这可能是因为某些遥测数据未发送给 Microsoft,并且对成功率或问题类型的可见性较低,因此当此标志为 True 时,可能无法主动作出反应。 建议对此标志使用默认值 False,除非严格要求设置为 True。
- default_cpu_compute_target
- AmlComputeProvisioningConfiguration
(已弃用)将用于创建 CPU 计算的配置。 参数默认为 {min_nodes=0, max_nodes=2, vm_size="STANDARD_DS2_V2", vm_priority="dedicated"}。如果为 None,则不会创建任何计算。
- default_gpu_compute_target
- AmlComputeProvisioningConfiguration
(已弃用)将用于创建 GPU 计算的配置。 参数默认为 {min_nodes=0, max_nodes=2, vm_size="STANDARD_NC6", vm_priority="dedicated"}。如果为 None,则不会创建任何计算。
- private_endpoint_auto_approval
- bool
布尔标志,指示专用终结点创建是应自动批准,还是从 Azure 专用链接中心手动批准。 如果是手动批准,则用户可以在专用链接门户中查看待处理请求以批准/拒绝该请求。
- exist_ok
- bool
指示如果工作区已存在,此方法是否成功。 如果工作区存在,则在该项为 False 时,此方法将失败。 如果工作区存在,则在该项为 True 时,此方法将返回现有工作区。
- system_datastores_auth_mode
- str
确定是否对工作区的系统数据存储“workspaceblobstore”和“workspacefilestore”使用凭据。 默认值为“accessKey”,在这种情况下,工作区将创建具有凭据的系统数据存储。 如果设置为“identity”,工作区将创建没有凭据的系统数据存储。
返回
工作区对象。
返回类型
例外
引发了有关创建工作区的问题。
注解
第一个示例只需最低限度的规范,并且系统会自动创建所有依赖资源和资源组。
from azureml.core import Workspace
ws = Workspace.create(name='myworkspace',
subscription_id='<azure-subscription-id>',
resource_group='myresourcegroup',
create_resource_group=True,
location='eastus2')
以下示例演示如何使用 Azure 资源 ID 格式重用现有的 Azure 资源。 可以通过 Azure 门户或 SDK 检索特定的 Azure 资源 ID。 此示例假设资源组、存储帐户、密钥保管库、App Insights 和容器注册表已存在。
import os
from azureml.core import Workspace
from azureml.core.authentication import ServicePrincipalAuthentication
service_principal_password = os.environ.get("AZUREML_PASSWORD")
service_principal_auth = ServicePrincipalAuthentication(
tenant_id="<tenant-id>",
username="<application-id>",
password=service_principal_password)
ws = Workspace.create(name='myworkspace',
auth=service_principal_auth,
subscription_id='<azure-subscription-id>',
resource_group='myresourcegroup',
create_resource_group=False,
location='eastus2',
friendly_name='My workspace',
storage_account='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.storage/storageaccounts/mystorageaccount',
key_vault='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.keyvault/vaults/mykeyvault',
app_insights='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.insights/components/myappinsights',
container_registry='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.containerregistry/registries/mycontainerregistry',
exist_ok=False)
delete
删除 Azure 机器学习工作区关联的资源。
delete(delete_dependent_resources=False, no_wait=False)
参数
- delete_dependent_resources
- bool
是否删除与工作区关联的资源,即容器注册表、存储帐户、密钥保管库和 Application Insights。 默认值为 False。 如果设置为 True,则会删除这些资源。
返回
如果成功,则为 None;否则将引发错误。
返回类型
delete_connection
delete_private_endpoint_connection
删除工作区的专用终结点连接。
delete_private_endpoint_connection(private_endpoint_connection_name)
参数
diagnose_workspace
诊断工作区设置问题。
diagnose_workspace(diagnose_parameters)
参数
- diagnose_parameters
- <xref:_restclient.models.DiagnoseWorkspaceParameters>
用于诊断工作区运行状况的参数
返回
返回 DiagnoseResponseResult 的 AzureOperationPoller 的实例
返回类型
from_config
返回现有 Azure 机器学习工作区中的工作区对象。
从文件读取工作区配置。 如果找不到配置文件,将引发异常。
该方法提供了一种在多个 Python 笔记本或项目之间重用同一工作区的简单方式。 用户可以使用 write_config 方法来保存工作区 Azure 资源管理器 (ARM) 属性,并使用此方法在不同的 Python 笔记本或项目中加载相同的工作区,而无需重新键入工作区 ARM 属性。
static from_config(path=None, auth=None, _logger=None, _file_name=None)
参数
身份验证对象。 有关更多详细信息,请参阅 https://aka.ms/aml-notebook-auth。如果为 None,则将使用默认的 Azure CLI 凭据,或者 API 将提示输入凭据。
返回
现有 Azure ML 工作区的工作区对象。
返回类型
get
返回现有 Azure 机器学习工作区的工作区对象。
如果工作区不存在,或者必填字段不能唯一标识工作区,则会引发异常。
static get(name, auth=None, subscription_id=None, resource_group=None, location=None, cloud='AzureCloud', id=None)
参数
身份验证对象。 有关更多详细信息,请参阅 https://aka.ms/aml-notebook-auth。如果为 None,则将使用默认的 Azure CLI 凭据,或者 API 将提示输入凭据。
- cloud
- str
目标云的名称。 可以是“AzureCloud”、“AzureChinaCloud”或“AzureUSGovernment”之一。 如果未指定云,则使用“AzureCloud”。
返回
工作区对象。
返回类型
get_connection
get_default_compute_target
获取工作区的默认计算目标。
get_default_compute_target(type)
参数
返回
给定计算类型的默认计算目标。
返回类型
get_default_datastore
get_default_keyvault
get_details
返回工作区的详细信息。
get_details()
返回
字典格式的工作区详细信息。
返回类型
注解
返回的字典包含以下键值对。
id:指向此工作区资源的 URI,包含订阅 ID、资源组和工作区名称。
name:此工作区的名称。
location:工作区区域。
type:“{providerName}/workspaces”格式的 URI。
tags:目前不使用。
workspaceid:此工作区的 ID。
description:目前不使用。
friendlyName:UI 中显示的工作区的易记名称。
creationTime:创建此工作区的时间,格式为 ISO8601。
containerRegistry:用于拉取和推送试验和 webservices 映像的工作区容器注册表。
keyVault:用于存储用户添加到工作区的凭据的工作区密钥保管库。
applicationInsights:工作区将使用该 Application Insights 来记录 webservices 事件。
identityPrincipalId:
identityTenantId
identityType
storageAccount:工作区将使用该存储来保存运行输出、代码、日志等。
sku:工作区 SKU(也称为版本)。 该参数用于实现后向兼容性,将被忽略。
resourceCmkUri:客户管理的密钥的密钥 URI,用于静态数据加密。 有关如何创建密钥并获取其 URI 的步骤,请参阅 https://docs.microsoft.com/en-us/azure-stack/user/azure-stack-key-vault-manage-portal?view=azs-1910。
hbiWorkspace:指定客户数据是否具有高业务影响。
imageBuildCompute:映像生成的计算目标。
systemDatastoresAuthMode:确定是否对工作区的系统数据存储“workspaceblobstore”和“workspacefilestore”使用凭据。 默认值为“accessKey”,在这种情况下,工作区将创建具有凭据的系统数据存储。 如果设置为“identity”,工作区将创建没有凭据的系统数据存储。
有关这些键值对的详细信息,请参阅 create。
get_mlflow_tracking_uri
获取工作区的 MLflow 跟踪 URI。
MLflow (https://mlflow.org/) 是用于跟踪机器学习试验和管理模型的开源平台。 可将 MLflow 日志记录 API 与 Azure 机器学习结合使用,以便将指标、模型和项目记录到 Azure 机器学习工作区。
get_mlflow_tracking_uri(_with_auth=False)
参数
返回
与 MLflow 兼容的跟踪 URI。
返回类型
注解
使用以下示例配置 MLflow 跟踪,以将数据发送到 Azure ML 工作区:
import mlflow
from azureml.core import Workspace
workspace = Workspace.from_config()
mlflow.set_tracking_uri(workspace.get_mlflow_tracking_uri())
get_run
list
列出订阅中用户有权访问的所有工作区。
可以根据资源组筛选工作区列表。
static list(subscription_id, auth=None, resource_group=None)
参数
身份验证对象。 有关更多详细信息,请参阅 https://aka.ms/aml-notebook-auth。如果为 None,则将使用默认的 Azure CLI 凭据,或者 API 将提示输入凭据。
返回
键是工作区名称并且值是工作区对象列表的字典。
返回类型
list_connections
列出此工作区下的连接。
list_connections(category=None, target=None)
参数
- category
list_keys
set_connection
添加或更新工作区下的连接。
set_connection(name, category, target, authType, value)
参数
set_default_datastore
setup
sync_keys
触发工作区以立即同步密钥。
如果工作区中任何资源的密钥发生更改,则可能需要一小时左右才能自动更新。 此函数可根据请求更新密钥。 一个示例场景是在重新生成存储密钥后需要立即访问存储。
sync_keys(no_wait=False)
参数
返回
如果成功,则为 None;否则将引发错误。
返回类型
update
更新易记名称、说明、标记、映像生成计算以及与工作区关联的其他设置。
update(friendly_name=None, description=None, tags=None, image_build_compute=None, service_managed_resources_settings=None, primary_user_assigned_identity=None, allow_public_access_when_behind_vnet=None, v1_legacy_mode=None)
参数
- service_managed_resources_settings
- <xref:azureml._base_sdk_common.workspace.models.ServiceManagedResourcesSettings>
服务受管理资源设置。
返回
已更新信息的字典。
返回类型
update_dependencies
在以下情况下,更新工作区的现有关联资源。
a) 用户意外删除了现有的关联资源,并想使用新的资源进行更新,而不必重新创建整个工作区。 b) 用户具有现有的关联资源,并希望替换当前与工作区关联的资源。 c) 尚未创建关联的资源,并希望使用已具有的现有资源(仅适用于容器注册表)。
update_dependencies(container_registry=None, force=False)
参数
返回类型
write_config
将工作区 Azure 资源管理器 (ARM) 属性写入配置文件。
稍后可以使用 from_config 方法加载工作区 ARM 属性。 path
默认为当前工作目录中的“.azureml/”,file_name
默认为“config json”。
该方法提供了一种在多个 Python 笔记本或项目之间重用同一工作区的简单方式。 用户可以使用此函数来保存工作区 ARM 属性,并使用 from_config 在不同的 Python 笔记本或项目中加载相同的工作区,而无需重新键入工作区 ARM 属性。
write_config(path=None, file_name=None)
参数
属性
compute_targets
datasets
datastores
discovery_url
environments
experiments
images
返回工作区中的映像列表。
如果与模型管理服务交互时出现问题,则引发 WebserviceException。
返回
键为映像名称并且值为 Image 对象的字典。
返回类型
例外
与模型管理服务交互时出现问题。
linked_services
location
models
返回工作区中的模型列表。
如果与模型管理服务交互时出现问题,则引发 WebserviceException。
返回
键为模型名称并且值为 Model 对象的模型字典。
返回类型
例外
与模型管理服务交互时出现问题。
name
private_endpoints
resource_group
service_context
返回此工作区的服务上下文。
返回
返回 ServiceContext 对象。
返回类型
sku
subscription_id
tags
webservices
返回工作区中的 webservices 列表。
如果返回列表时出现问题,则引发 WebserviceException。
返回
工作区中的 webservices 列表。
返回类型
例外
返回列表时出现问题。
DEFAULT_CPU_CLUSTER_CONFIGURATION
DEFAULT_CPU_CLUSTER_CONFIGURATION = <azureml.core.compute.amlcompute.AmlComputeProvisioningConfiguration object>
DEFAULT_CPU_CLUSTER_NAME
DEFAULT_CPU_CLUSTER_NAME = 'cpu-cluster'
DEFAULT_GPU_CLUSTER_CONFIGURATION
DEFAULT_GPU_CLUSTER_CONFIGURATION = <azureml.core.compute.amlcompute.AmlComputeProvisioningConfiguration object>
DEFAULT_GPU_CLUSTER_NAME
DEFAULT_GPU_CLUSTER_NAME = 'gpu-cluster'
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈