Azure 机器学习的工作原理:资源和资产

适用范围:Azure CLI ml 扩展 v2(最新版)Python SDK azure-ai-ml v2(最新版)

本文适用于 Azure 机器学习 CLI 和 Python SDK (v2) 的第二个版本。 对于版本 1 (v1),请参阅 Azure 机器学习的工作原理:体系结构和概念 (v1)

Azure 机器学习包含多种资源和资产,使你能够执行机器学习任务。 运行任何作业都需要这些资源和资产。

  • 资源:运行机器学习工作流所需的设置或基础结构资源。 资源包括:
  • 资产:使用 Azure 机器学习命令创建,或作为训练/评分运行的一部分创建。 资产的版本受控,可以在 Azure 机器学习工作区中注册。 其中包括:

本文档将提供这些资源和资产的简要概述。

工作区

工作区是 Azure 机器学习的顶级资源,为使用 Azure 机器学习时创建的所有项目提供了一个集中的处理位置。 工作区保留所有作业的历史记录,包括日志、指标、输出和脚本快照。 工作区存储对数据存储和计算等资源的引用。 它还保存模型、环境、组件和数据资产等所有资产。

创建工作区

若要使用 CLI v2 创建工作区,请使用以下命令:

适用于:Azure CLI ml 扩展 v2(当前版)

az ml workspace create --file my_workspace.yml

有关详细信息,请参阅工作区 YAML 架构

计算

计算是运行作业或托管终结点的指定计算资源。 Azure 机器学习支持以下类型的计算:

  • 计算群集 - 一种托管的计算基础结构,让你可以在云中轻松创建 CPU 或 GPU 计算节点的群集。

    注意

    使用无服务器计算(预览版)将计算生命周期管理转移到 Azure 机器学习,而不是创建计算群集。

  • 计算实例 - 完全在云中配置和托管的开发环境。 可将该实例用作训练或推理计算来进行开发和测试。 它类似于云中的虚拟机。

  • 推理群集 - 用于将经过训练的机器学习模型部署到 Azure Kubernetes 服务。 可以从 Azure 机器学习工作区创建 Azure Kubernetes 服务 (AKS) 群集,或者附加现有的 AKS 群集。

  • 附加计算 - 你可以将自己的计算资源附加到工作区,并将其用于训练和推理。

若要使用 CLI v2 创建计算,请使用以下命令:

适用于:Azure CLI ml 扩展 v2(当前版)

az ml compute --file my_compute.yml

有关详细信息,请参阅计算 YAML 架构

数据存储

Azure 机器学习数据存储将连接信息安全地存储在 Azure 上的数据存储中,因此无需在脚本中对其进行编码。 可以注册并创建一个数据存储,以便轻松连接到存储帐户,并访问底层存储服务中的数据。 CLI v2 和 SDK v2 支持以下类型的基于云的存储服务:

  • Azure Blob 容器
  • Azure 文件共享
  • Azure Data Lake
  • Azure Data Lake Gen2

若要使用 CLI v2 创建数据存储,请使用以下命令:

适用于:Azure CLI ml 扩展 v2(当前版)

az ml datastore create --file my_datastore.yml

有关详细信息,请参阅数据存储 YAML 架构

型号

Azure 机器学习模型由表示机器学习模型的二进制文件和任何相应的元数据组成。 可以从本地或远程文件或目录创建模型。 支持使用 httpswasbsazureml 作为远程位置。 创建的模型将在工作区中按指定的名称和版本进行跟踪。 Azure 机器学习支持三种类型的模型存储格式:

  • custom_model
  • mlflow_model
  • triton_model

创建模型

若要使用 CLI v2 创建模型,请使用以下命令:

适用于:Azure CLI ml 扩展 v2(当前版)

az ml model create --file my_model.yml

有关详细信息,请参阅模型 YAML 架构

环境

Azure 机器学习环境是执行机器学习任务的环境的封装。 这些环境将指定与训练和评分脚本有关的软件包、环境变量和软件设置。 环境是机器学习工作区中托管的且版本受控的实体。 环境支持跨各种计算的可重现、可审核和可移植机器学习工作流。

环境的类型

Azure 机器学习支持两种类型的环境:特选和自定义。

特选环境由 Azure 机器学习提供,且默认可用于你的工作区。 应该按原样使用它们,其中包含的 Python 包和设置的集合可帮助你开始使用各种机器学习框架。 这些预先创建的环境还可以加快部署速度。 如需完整列表,请参阅特选环境一文。

在自定义环境中,你需要负责设置环境,并安装训练或评分脚本需要在计算中用到的包或任何其他依赖项。 Azure 机器学习使你能够通过以下方式创建你自己的环境

  • Docker 映像
  • 基础 Docker 映像,并使用 conda YAML 进一步自定义
  • Docker 生成上下文

创建 Azure 机器学习自定义环境

若要使用 CLI v2 创建环境,请使用以下命令:

适用于:Azure CLI ml 扩展 v2(当前版)

az ml environment create --file my_environment.yml

有关详细信息,请参阅环境 YAML 架构

数据

Azure 机器学习可用于处理不同类型的数据:

  • URI(本地/云存储中的位置)
    • uri_folder
    • uri_file
  • 表(表格数据抽象)
    • mltable
  • 基元
    • string
    • boolean
    • number

对于大多数方案,你会使用 URI(uri_folderuri_file)- 存储中的某个位置,可以通过将存储装载或下载到节点,轻松将此位置映射到作业中计算节点的文件系统。

mltable 是用于 AutoML 作业、并行作业和某些高级方案的表格数据的抽象。 如果你刚开始使用 Azure 机器学习,并且不使用 AutoML,我们强烈建议你从 URI 开始。

组件

Azure 机器学习组件是一段独立的代码,执行机器学习管道中的一个步骤。 组件是高级机器学习管道的构建基块。 组件可以执行数据处理、模型训练、模型评分等任务。 组件类似于函数 - 具有名称、参数,需要输入并可返回输出。

后续步骤