使用 Azure 机器学习训练模型

适用于:Python SDK azure-ai-ml v2(当前版本)

Azure 机器学习提供多种方法来训练模型,从使用 SDK 的代码优先解决方案到自动化机器学习和视觉对象设计器等低代码解决方案。 使用以下列表来确定哪种训练方法适合你:

  • 适用于 Python 的 Azure 机器学习 SDK:Python SDK 提供多种方法来训练模型,每个模型都具有不同功能。

    训练方法 说明
    command() 训练模型的典型方法是提交包含训练脚本、环境和计算信息的 command()。
    自动化机器学习 可以通过自动化机器学习来训练模型,而无需大量数据科学或编程知识。 对于具有数据科学和编程背景的人员,它提供了一种方法,可通过自动化算法选择和超参数优化来节省时间和资源。 使用自动化机器学习时,无需考虑定义作业配置。
    机器学习管道 管道不是一种特殊的训练方法,而是一种使用模块化、可重复使用的步骤定义工作流的方法,该方法可以将训练作为工作流的一部分包含在内。 机器学习管道支持使用自动化机器学习和运行配置来训练模型。 由于管道并非专门针对训练,因此使用管道的原因比其他训练方法更多样。 通常,可以在以下情况下使用管道:
    * 你需要计划无人参与的进程,如长时间运行的训练作业或数据准备。
    * 使用多个步骤跨异类计算资源和存储位置进行协调。
    * 将管道用作针对特定场景的可重复使用的模板,如重新训练或批处理评分。
    * 对工作流的数据源、输入和输出进行跟踪和版本控制。
    * 工作流由不同的团队实现,这些团队单独执行特定步骤。 然后,可以在管道中将步骤联接在一起以实现工作流。
  • 设计器:Azure 机器学习设计器提供了一个简单的进入机器学习的入口点,用于构建概念证明或供缺乏编码经验的用户使用。 它允许你使用拖放基于 Web 的 UI 来训练模型。 可以使用 Python 代码作为设计的一部分,或在不编写任何代码的情况下训练模型。

  • Azure CLI:机器学习 CLI 提供用于执行 Azure 机器学习中的常见任务的命令,通常用于编写任务脚本和自动完成任务。 例如,创建训练脚本或管道后,可以使用 Azure CLI 按计划启动一个训练作业,或者在更新用于训练的数据文件后启动训练作业。 对于训练模型,它提供了提交训练作业的命令。 它可以使用运行配置或管道来提交作业。

其中每个训练方法均可使用不同类型的计算资源进行训练。 这些资源统称为计算目标。 计算目标可以是本地计算机,也可以是云资源,例如 Azure 机器学习计算、Azure HDInsight 或远程虚拟机。

Python SDK

可以将适用于 Python 的 Azure 机器学习 SDK 与 Azure 机器学习结合使用,来构建和运行机器学习工作流。 可以通过交互式式 Python 会话、Jupyter Notebook、Visual Studio Code 或其他 IDE 与服务进行交互。

提交命令

可以使用 command() 定义 Azure 机器学习的常规训练作业。 然后使用该命令以及训练脚本在指定的计算目标上训练模型。

可以从本地计算机的命令开始,然后根据需要切换到基于云的计算目标。 更改计算目标时,只需更改使用的命令中的计算参数。 运行还会记录有关训练作业的信息,例如输入、输出和日志。

自动化机器学习

定义迭代、超参数设置、特征化和其他设置。 在训练过程中,Azure 机器学习会并行尝试不同的算法和参数。 一旦训练达到你定义的退出条件就会停止。

提示

除了 Python SDK 外,还可以通过 Azure 机器学习工作室使用自动化 ML。

机器学习管道

机器学习管道可以使用前面提到的训练方法。 管道更多的是关于创建工作流,因此它们包含的不仅仅是模型训练。

了解提交训练作业时会发生的情况

Azure 训练生命周期包括:

  1. 压缩项目文件夹中的文件并上传到云。

    提示

    为了防止在快照中包含不必要的文件,请在目录中创建 ignore 文件(.gitignore.amlignore)。 将要排除的文件和目录添加到此文件中。 有关此文件中使用的语法的详细信息,请参阅 .gitignore语法和模式.amlignore 文件使用相同的语法。 如果同时存在这两个文件,则会使用 .amlignore 文件,不会使用 .gitignore 文件。

  2. 扩展你的计算群集(或无服务器计算

  3. 构建 dockerfile 或将其下载到计算节点

    1. 系统会计算以下各项的哈希:
    2. 在工作区 Azure 容器注册表 (ACR) 中查找时,系统使用此哈希作为键
    3. 如果找不到,它会在全局 ACR 中寻找匹配项
    4. 如果找不到,系统会生成新映像(该映像会被缓存并注册到工作区 ACR)
  4. 将压缩的项目文件下载到计算节点上的临时存储

  5. 解压缩项目文件

  6. 执行 python <entry script> <arguments> 的计算节点

  7. 将写入到 ./outputs 的日志、模型文件和其他文件保存到与工作区关联的存储帐户

  8. 纵向缩减计算,包括删除临时存储

Azure 机器学习设计器

通过设计器,可以在 Web 浏览器中使用拖放式界面来训练模型。

Azure CLI

机器学习 CLI 是 Azure CLI 的扩展。 它为使用 Azure 机器学习提供了跨平台 CLI 命令。 通常,可以使用 CLI 来自动执行任务,如训练机器学习模型。

VS Code

可以使用 VS Code 扩展运行和管理训练作业。 请参阅 VS Code 资源管理操作指南,以了解更多信息。

后续步骤

了解如何教程:在 Jupyter Notebook 中使用 Python SDK v2 创建生产 ML 管道