模型生成器 Azure 训练资源

以下指南可帮助你详细了解如何使用模型生成器在 Azure 中训练模型的资源。

什么是 Azure 机器学习试验?

Azure 机器学习试验是在 Azure 上运行模型生成器训练之前需要创建的资源。

试验封装了一个或多个机器学习训练运行的配置和结果。 试验属于特定工作区。 首次创建试验时,将在工作区中注册其名称。 任何后续运行(如果使用相同的试验名称)将记录为同一实验的一部分。 否则,将创建一个新试验。

什么是 Azure 机器学习工作区?

工作区是一种 Azure 机器学习资源,可为在训练运行过程中创建的所有 Azure 机器学习资源和项目提供中心位置。

若要创建 Azure 机器学习工作区,需要满足以下条件:

  • 名称:工作区的名称介于 3 到 33 个字符之间。 名称只能包含字母数字字符和连字符。
  • 区域:将工作区和资源部署到的数据中心的地理位置。 建议选择靠近你或客户的位置。
  • 资源组:包含 Azure 解决方案所有相关资源的容器。

什么是 Azure 机器学习计算?

Azure 机器学习计算是用于训练的基于云的 Linux VM。

若要创建 Azure 机器学习计算,需要以下值:

  • 名称:2 到 16 个字符之间的计算名称。 名称只能包含字母数字字符和连字符。

  • 计算大小。

    模型生成器可以使用以下 GPU 优化的计算类型之一:

    大小 vCPU 内存:GiB 临时存储(SSD) GiB GPU GPU 内存:GiB 最大数据磁盘数 最大 NIC
    Standard_NC12 12 112 680 2 24 48 2
    Standard_NC24 24 224 1440 4 48 64 4

    有关 GPU 优化计算类型的更多详细信息,请访问 NC 系列 Linux VM 文档

  • 计算优先级。

    • 低优先级:适用于执行时间较短的任务。 任务可能会受到中断和可用性不足的影响。 此选项通常成本较低,因为它利用 Azure 中的剩余容量。
    • 专用:适用于任何持续时间的任务,尤其是长时间运行的作业。 任务不受中断或可用性不足的影响。 此选项的成本通常更高,因为它会在 Azure 中为任务保留一组专用的计算资源。

训练

Azure 上的训练仅适用于模型生成器图像分类方案。 用于训练这些模型的算法是基于 ResNet50 体系结构的深度神经网络。 训练过程需要一些时间,时间量可能因所选计算大小以及数据量而异。 可以通过在 Visual Studio 中选择“在 Azure 门户中监视当前运行”链接来跟踪运行的进度。

结果

训练完成后,将使用以下后缀将两个项目添加到解决方案:

  • ConsoleApp:一个 C# 控制台应用,它提供初学者代码来生成预测管道并进行预测。

  • 模型:C# .NET Standard 应用,其中包含定义输入和输出模型数据的架构的数据模型以及以下资产:

    • bestModel.onnx:开放式神经网络交换(ONNX)格式的模型的序列化版本。 ONNX 是 AI 模型的开放源代码格式,支持 ML.NET、PyTorch 和 TensorFlow 等框架之间的互操作性。
    • bestModelMap.json:进行预测时使用的类别列表,用于将模型输出映射到文本类别。
    • MLModel.zip:ML.NET 预测管道的序列化版本,它使用模型序列化版本 bestModel.onnx,以使用 bestModelMap.json 文件进行预测和映射输出。

使用机器学习模型

模型 项目中的 ModelInputModelOutput 类分别定义模型的预期输入和输出的架构。

在图像分类方案中,ModelInput 包含两列:

  • ImageSource:图像位置的字符串路径。
  • Label:图像所属的实际类别。 Label 仅在训练时用作输入,在进行预测时不需要提供。

ModelOutput 包含两列:

  • Prediction:图像的预测类别。
  • Score:所有类别的概率列表(最高属于 Prediction)。

故障 排除

无法创建计算

如果在创建 Azure 机器学习计算期间发生错误,则计算资源可能仍然存在,处于错误状态。 如果尝试使用相同的名称重新创建计算资源,操作将失败。 若要修复此错误,请进行以下任一操作:

  • 使用其他名称创建新计算
  • 转到 Azure 门户并删除原始计算资源