Azure 机器学习中的关键数据概念

借助 Azure 机器学习,可以从本地计算机或现有的基于云的存储资源中导入数据。 本文介绍重要的 Azure 机器学习数据概念。

数据存储

Azure 机器学习数据存储用作对现有 Azure 存储帐户的引用。 Azure 机器学习数据存储具有以下优势:

  • 可使用易用的常见 API 与不同的存储类型(Blob/文件存储/ADLS)进行交互。
  • 在团队运营中更轻松地发现有用的数据存储。
  • 对于基于凭据的访问(服务主体/SAS/密钥),Azure 机器学习数据存储可保护连接信息。 这样,就不需要在脚本中放置该信息。

使用现有 Azure 存储帐户创建数据存储时,你有两个不同的身份验证方法选项:

  • 基于凭据 - 使用服务主体、共享访问签名 (SAS) 令牌或帐户密钥对数据访问进行身份验证。 具有工作区读者访问权限的用户可以访问凭据。
  • 基于标识:使用 Microsoft Entra 标识或托管标识对数据访问进行身份验证。

下表汇总了 Azure 机器学习数据存储可以创建的 Azure 基于云的存储服务。 此外,该表还汇总了可以访问这些服务的身份验证类型:

支持的存储服务 基于凭据的身份验证 基于标识的身份验证
Azure Blob 容器
Azure 文件共享
Azure Data Lake Gen1
Azure Data Lake Gen2

有关数据存储的详细信息,请访问创建数据存储

默认数据存储

每个 Azure 机器学习工作区都有一个默认存储帐户(Azure 存储帐户),其中包含以下数据存储:

提示

若要查找工作区的 ID,请转到 Azure 门户中的工作区。 选择“设置”,然后选择“属性”。 此时将显示工作区 ID。

数据存储名称 数据存储类型 数据存储名称 说明
workspaceblobstore Blob 容器 azureml-blobstore-{workspace-id} 存储数据上传、作业代码快照和管道数据缓存。
workspaceworkingdirectory 文件共享 code-{GUID} 存储笔记本、计算实例和提示流的数据。
workspacefilestore 文件共享 azureml-filestore-{workspace-id} 用于数据上传的替代容器。
workspaceartifactstore Blob 容器 azureml 指标、模型和组件等资产的存储。

数据类型

URI(存储位置)可以引用文件、文件夹或数据表。 机器学习作业输入和输出定义需要以下三种数据类型之一:

类型 V2 API V1 API 规范场景 V2/V1 API 差异
File
引用单个文件
uri_file FileDataset 读/写单个文件 - 文件可以采用任何格式。 V2 API 的新类型。 在 V1 API 中,文件始终映射到计算目标文件系统上的文件夹,此映射需要 os.path.join。 在 V2 API 中,映射的是单个文件。 这样,就可以在代码中引用该位置。
文件夹
引用单个文件夹
uri_folder FileDataset 必须将 parquet/CSV 文件的文件夹读取/写入到 Pandas/Spark 中。

使用文件夹中的图像、文本、音频、视频文件进行深度学习。
在 V1 API 中,FileDataset 有一个关联的引擎,可以从文件夹中获取文件样本。 在 V2 API 中,文件夹是到计算目标文件系统的简单映射。

引用数据表
mltable TabularDataset 架构很复杂,可能会频繁更改,或者需要大型表格数据的一部分。

使用表的 AutoML。
在 V1 API 中,Azure 机器学习后端存储了数据具体化蓝图。 因此,仅当你有 Azure 机器学习工作区时,TabularDataset 才起作用。 mltable 将数据具体化蓝图存储在你的存储中。 存储在此位置意味着可以在不连接 Azure 机器学习的情况下使用它(例如在本地)。 在 V2 API 中,可以更轻松地从本地作业转换到远程作业。 有关详细信息,请访问在 Azure 机器学习中使用表

URI

统一资源标识符 (URI) 表示本地计算机上的存储位置、Azure 存储或公开可用的 http(s) 位置。 这些示例显示了不同存储选项的 URI:

存储位置 URI 示例
Azure 机器学习数据存储 azureml://datastores/<data_store_name>/paths/<folder1>/<folder2>/<folder3>/<file>.parquet
本地计算机 ./home/username/data/my_data
公共 http(s) 服务器 https://raw.githubusercontent.com/pandas-dev/pandas/main/doc/data/titanic.csv
Blob 存储 wasbs://<containername>@<accountname>.blob.core.chinacloudapi.cn/<folder>/
Azure Data Lake (gen2) abfss://<file_system>@<account_name>.dfs.core.chinacloudapi.cn/<folder>/<file>.csv
Azure Data Lake (gen1) adl://<accountname>.azuredatalakestore.net/<folder1>/<folder2>

Azure 机器学习作业将 URI 映射到计算目标文件系统。 此映射意味着,对于使用或生成 URI 的命令,该 URI 的工作方式类似于文件或文件夹。 URI 使用基于标识的身份验证通过 Microsoft Entra ID(默认)或托管标识连接到存储服务。 Azure 机器学习数据存储 URI 可以应用基于标识的身份验证或基于凭据(例如服务主体、SAS 令牌、帐户密钥)的身份验证,而不会泄露机密

URI 可以用作 Azure 机器学习作业的输入或输出,并且可以使用以下四种不同模式选项之一映射到计算目标文件系统:

  • 只读装载 (ro_mount):URI 表示装载到计算目标文件系统的存储位置。 装载的数据位置仅支持只读输出。
  • 读写装载 (rw_mount):URI 表示装载到计算目标文件系统的存储位置。 装载的数据位置支持其中的读取输出和数据写入。
  • 下载 (download):URI 表示包含下载到计算目标文件系统的数据的存储位置。
  • 上传 (upload):写入计算目标位置的所有数据都上传到 URI 表示的存储位置。

此外,还可以在“直接”模式下将 URI 作为作业输入字符串传入。 下表汇总了可用于输入和输出的模式组合:

作业
输入或输出
upload download ro_mount rw_mount direct
输入
输出

有关详细信息,请参阅在作业中访问数据

数据运行时功能

Azure 机器学习使用自己的数据运行时来完成以下三个目的之一:

  • 装载/上传/下载
  • 将存储 URI 映射到计算目标文件系统
  • 使用 Azure 机器学习表 (mltable) 将表格数据具体化为 pandas/spark

Azure 机器学习数据运行时专为高速且高效完成机器学习任务而设计。 它提供以下主要优势:

  • Rust 语言体系结构。 Rust 语言以高速和高内存效率而闻名。
  • 轻型;Azure 机器学习数据运行时不依赖于其他技术(例如 JVM),因此,运行时可在计算目标上快速安装。
  • 多进程(并行)数据加载。
  • 数据预提取在 CPU 上作为后台任务运行,以提高 GPU 在深度学习操作中的利用率。
  • 对云存储的无缝身份验证。

数据资产

Azure 机器学习数据资产与 Web 浏览器书签(收藏夹)类似。 可以创建数据资产,然后使用易记名称访问该资产,而无需记住指向最常用数据的冗长存储路径 (URI)。

通过创建数据资产,还可以创建对数据源位置的引用及其元数据的副本。 由于数据保留在其现有位置中,因此不会产生额外的存储成本,也不会损害数据源的完整性。 可以从 Azure 机器学习数据存储、Azure 存储、公共 URL 或本地文件创建数据资产。

有关数据资产的详细信息,请访问创建数据资产

后续步骤