适用范围:
Azure CLI ml 扩展 v2(最新版)
Python SDK azure-ai-ml v2(最新版)
本文适用于 Azure 机器学习 CLI 和 Python SDK v2 的第二个版本。 有关第一版(v1),请参阅 Azure 机器学习的工作原理:体系结构和概念(v1)。
Azure 机器学习包含多种资源和资产,使你能够执行机器学习任务。 运行任何作业都需要这些资源和资产。
- 资源:运行机器学习工作流所需的设置或基础结构资源。 资源包括:
- 资产:使用 Azure 机器学习命令创建,或作为训练/评分运行的一部分创建的。 资产的版本受控,可以在 Azure 机器学习工作区中注册。 其中包括:
本文档将提供这些资源和资产的简要概述。
先决条件
若要使用本文中的 Python SDK 代码示例,请执行以下操作:
安装 Python SDK v2。
创建与 Azure 机器学习订阅的连接。 这些示例均依赖于
ml_client。 若要创建工作区,连接不需要工作区名称,因为可能还没有工作区名称。 本文中的所有其他示例都要求连接中包含工作区名称。# Import required libraries. from azure.ai.ml import MLClient from azure.ai.ml.entities import Workspace from azure.identity import DefaultAzureCredential from azure.ai.ml.entities import AmlCompute # Enter details of your subscription. subscription_id = "<SUBSCRIPTION_ID>" resource_group = "<RESOURCE_GROUP>" # Get a handle to the subscription. (Use this if you haven't created a workspace yet.) ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group) # All other examples in this article require that the connection include a workspace name. workspace_name = "<WORKSPACE_NAME>" ml_client = ml_client = MLClient(DefaultAzureCredential(), subscription_id, resource_group, workspace_name)
工作区
工作区是 Azure 机器学习的顶级资源,提供一个集中位置,用于处理使用 Azure 机器学习时创建的所有项目。 工作区保留所有作业的历史记录,包括日志、指标、输出和脚本快照。 工作区存储对数据存储和计算等资源的引用。 它还包含模型、环境、组件和数据资产等所有资产。
创建工作区
若要使用 Python SDK v2 创建工作区,可以使用以下代码:
适用范围:
Python SDK azure-ai-ml v2(最新版)
# Specify the workspace details.
ws = Workspace(
name="my_workspace",
location="eastus",
display_name="My workspace",
description="This example shows how to create a workspace",
tags=dict(purpose="demo"),
)
# Use MLClient to connect to the subscription and resource group and create the workspace.
ml_client.workspaces.begin_create(ws)
有关使用 SDK v2 创建 Azure 机器学习工作区的更多方法,请参阅此 Jupyter 笔记本。
有关创建工作区的更详细信息,请参阅在门户中或使用 Python SDK (v2) 管理 Azure 机器学习工作区。
计算
计算节点是用于运行作业或托管终结点的指定计算资源。 Azure 机器学习支持以下类型的计算:
- 计算实例。 云中完全配置和管理的开发环境。 可将该实例用作训练或推理计算来进行开发和测试。 它类似于云中的虚拟机。
- 计算群集。 一种托管计算基础结构,可用于在云中轻松创建 CPU 或 GPU 计算节点群集。
- 无服务器计算。 你动态访问的计算群集。 使用无服务器计算时,不需要创建自己的群集。 所有计算生命周期管理工作负担都将转移到 Azure 机器学习。
- 推理群集。 用于将训练的机器学习模型部署到 Azure Kubernetes 服务(AKS)。 可以从 Azure 机器学习工作区创建 Azure Kubernetes 服务群集,或附加现有的 AKS 群集。
- 附加的计算。 可以将自己的计算资源附加到工作区,并将它们用于训练和推理。
创建计算资源
若要使用 Python SDK v2 创建计算群集,可以使用以下代码:
适用范围:
Python SDK azure-ai-ml v2(最新版)
from azure.ai.ml.entities import AmlCompute
cluster_basic = AmlCompute(
name="basic-example",
type="amlcompute",
size="STANDARD_DS3_v2",
location="chinanorth",
min_instances=0,
max_instances=2,
idle_time_before_scale_down=120,
)
ml_client.begin_create_or_update(cluster_basic)
有关使用 SDK v2 创建计算的更多方法,请参阅 此 Jupyter 笔记本。
有关创建计算的更详细信息,请参阅:
数据存储
Azure 机器学习数据存储安全地保留 Azure 上的数据存储的连接信息,因此无需在脚本中对其进行编码。 可以注册并创建一个数据存储,以便轻松连接到存储帐户,并访问底层存储服务中的数据。 CLI v2 和 SDK v2 支持以下类型的基于云的存储服务:
- Azure Blob 容器
- Azure 文件共享
- Azure Data Lake Storage
- Azure Data Lake Storage Gen2
创建数据存储
若要使用 Python SDK v2 创建数据存储,可以使用以下代码:
适用范围:
Python SDK azure-ai-ml v2(最新版)
import AzureBlobDatastore
blob_datastore1 = AzureBlobDatastore(
name="blob_example",
description="Datastore pointing to a blob container.",
account_name="mytestblobstore",
container_name="data-container",
credentials={
"account_key": "XXXxxxXXXxXXXXxxXXXXXxXXXXXxXxxXxXXXxXXXxXXxxxXXxxXXXxXxXXXxxXxxXXXXxxxxxXXxxxxxxXXXxXXX"
},
)
ml_client.create_or_update(blob_datastore1)
有关使用 SDK v2 创建数据存储的更多方法,请参阅 此 Jupyter 笔记本。
若要详细了解如何使用数据存储,请参阅创建和管理数据资产。
型号
Azure 机器学习模型由一个或多个表示机器学习模型的二进制文件和任何相应的元数据组成。 可以从本地或远程文件或目录创建模型。 支持使用 https、wasbs 和 azureml 作为远程位置。 创建的模型将在工作区中按指定的名称和版本进行跟踪。 Azure 机器学习支持三种类型的模型存储格式:
custom_modelmlflow_modeltriton_model
在模型注册表中创建模型
通过模型注册,可在 Azure 云的工作区中存储模型并控制模型版本。 模型注册表可帮助你组织和跟踪已训练的模型。
有关如何在注册表中创建模型的详细信息,请参阅在 Azure 机器学习中使用模型。
环境
Azure 机器学习环境是机器学习任务发生的环境的封装。 它指定训练和评分脚本的软件包、环境变量和软件设置。 环境是机器学习工作区中的管理和版本化的实体。 环境支持跨各种计算的可重现、可审核和可移植机器学习工作流。
环境类型
Azure 机器学习支持两种类型的环境:特选和自定义。
特选环境由 Azure 机器学习提供,且默认可用于你的工作区。 应该按原样使用它们,其中包含的 Python 包和设置的集合可帮助你开始使用各种机器学习框架。 这些预先创建的环境还可以加快部署时间。 如需完整列表,请参阅特选环境一文。
在自定义环境中,你需要负责设置环境,并安装训练或评分脚本需要在计算中用到的包或任何其他依赖项。 使用 Azure 机器学习,可以使用以下方法创建自己的环境:
- Docker 映像。
- 一个基本的 Docker 映像,采用 Conda YAML 文件进行进一步自定义。
- Docker 生成上下文。
创建 Azure 机器学习自定义环境
有关使用 Python SDK v2 创建环境的信息,请参阅 “创建环境”。
有关使用 SDK v2 创建自定义环境的详细信息,请参阅 此 Jupyter 笔记本。
有关环境的详细信息,请参阅 Azure 机器学习中的创建和管理环境。
数据
Azure 机器学习可用于处理不同类型的数据:
- URI (本地或云存储中的位置)
uri_folderuri_file
- 表(表格数据抽象)
mltable
- 基元
stringbooleannumber
对于大多数场景,可以使用 URI(uri_folder 和 uri_file)指向存储位置,然后通过装载或下载存储将其映射到作业中计算节点的文件系统。
mltable 是用于 AutoML 作业、并行作业和某些高级方案的表格数据的抽象。 如果你刚刚开始使用 Azure 机器学习,并且不使用 AutoML,我们强烈建议你从 URI 开始。
组件
Azure 机器学习 组件 是一个自包含的代码片段,可完成机器学习管道中的一个步骤。 组件是高级机器学习管道的构建基块。 组件可以执行数据处理、模型训练和模型评分等任务。 组件类似于函数:它具有名称和参数、需要输入并返回输出。