你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

教程:使用设计器部署机器学习模型

本教程的第一部分,你训练了预测汽车价格的线性回归模型。 在本教程的第二部分,你使用 Azure 机器学习设计器部署该模型,以便其他人可以使用它。

注意

设计器支持两种类型的组件:经典预生成组件 (v1) 和自定义组件 (v2)。 这两种类型的组件不兼容。

经典预生成组件主要为数据处理和传统的机器学习任务(如回归和分类)提供预生成组件。 将继续支持此类型的组件,但不会添加新组件。

自定义组件允许将自己的代码包装为组件。 它们支持跨工作区共享组件,并在机器学习工作室、CLI v2 和 SDK v2 界面之间实现无缝创作。

对于新项目,强烈建议使用自定义组件,这些组件与 Azure 机器学习 V2 兼容,并且将继续接收新的更新。

本文适用于经典预生成组件,与 CLI v2 和 SDK v2 不兼容。

在本教程中,你将了解:

  • 创建实时推理管道。
  • 创建推理群集。
  • 部署实时终结点。
  • 测试实时终结点。

先决条件

完成教程的第一部分,了解如何在设计器中训练机器学习模型并为其评分。

重要

如果看不到本文档中提到的图形元素(例如工作室或设计器中的按钮),则你可能没有适当级别的工作区权限。 请与 Azure 订阅管理员联系,验证是否已向你授予正确级别的访问权限。 有关详细信息,请参阅管理用户和角色

创建实时推理管道

若要部署管道,必须先将训练管道转换为实时推理管道。 此过程会删除训练组件,并添加 Web 服务输入和输出来处理请求。

注意

“创建推理管道”功能支持仅包含设计器内置组件且有一个组件(如“训练模型”)来输出已训练模型的训练管道

创建实时推理管道

  1. 从侧导航面板中选择“管道”,然后打开创建的管道作业。 在详细信息页的管道画布上方,选择省略号 ...,然后选择“创建推理管道”>“实时推理管道”

    在管道作业详细信息页中创建推理管道的屏幕截图。

    新管道现在如下所示:

    显示做好部署准备后管道的预期配置的屏幕截图。

    选择“创建推理管道”时,会发生一些事情:

    • 训练的模型在组件调色板中存储为“数据集”组件。 可以在“我的数据集”下找到它。
    • 将删除“训练模型”和“拆分数据”等训练组件 。
    • 保存的训练模型已添加回管道中。
    • 添加了“Web 服务输入”和“Web 服务输出”组件 。 这些组件显示用户数据进入管道的位置,以及返回数据的位置。

    注意

    默认情况下,“Web 服务输入”会要求数据架构与连接到同一下游端口的组件输出数据的数据架构相同。 在此示例中,“Web 服务输入”和“汽车价格数据(原始)”连接到同一下游组件,因此,“Web 服务输入”需要与“汽车价格数据(原始)”相同的数据架构,并且架构中包括目标变量列 price 但是,为数据评分时,你不知道目标变量值。 这种情况下,你可以使用“选择数据集中的列”组件删除推理管道中的目标变量列。 确保“选择数据集中的列”的输出(在删除目标变量列后)连接到与“Web 服务输入”组件的输出相同的端口。

  2. 选择“配置并提交”,并使用在第一部分中使用的相同计算目标和试验

    如果这是第一个作业,则管道可能需要长达 20 分钟的时间才能完成运行。 默认计算设置中的最小节点大小为 0,这意味着设计器必须在空闲后分配资源。 重复的管道作业花费的时间会更少,因为计算资源已分配。 此外,设计器还对每个组件使用缓存的结果,以便进一步提高效率。

  3. 通过在左窗格中选择“作业详细信息”,转到实时推理管道作业详细信息

  4. 在作业详细信息页中选择“部署”。

    显示在“作业详细信息”页中部署的屏幕截图。

创建推理群集

在显示的对话框中,可以从任何现有的 Azure Kubernetes 服务 (AKS) 群集中进行选择,以便部署模型。 如果没有 AKS 群集,可通过以下步骤创建一个。

  1. 在对话框中选择“计算”,导航到“计算”页。

  2. 在导航功能区中,选择“Kubernetes 群集”>“+ 新建”

    显示如何转到新的推理群集窗格的屏幕截图。

  3. 在推理群集窗格中,配置新的 Kubernetes 服务。

  4. 输入“aks-compute”作为“计算名称”。

  5. 对于“区域”,选择可用的邻近区域。

  6. 选择“创建”。

    注意

    创建新的 AKS 服务大约需要 15 分钟。 可在“推理群集”页上查看预配状态。

部署实时终结点

在 AKS 服务完成预配以后,请返回到实时推理管道,以便完成部署。

  1. 选择画布上面的“部署”。

  2. 选择“部署新的实时终结点”。

  3. 选择已创建的 AKS 群集。

    显示如何设置新的实时终结点的屏幕截图。

    还可以更改实时终结点的“高级”设置

    高级设置 说明
    启用 Application Insights 诊断和数据收集 允许 Azure Application Insights 从部署的终结点收集数据。
    默认值:false。
    评分超时 对 Web 服务的评分调用强制执行的超时值(以毫秒为单位)。
    默认值:60000。
    已启用自动缩放 允许针对 Web 服务进行自动缩放。
    默认值:true。
    副本数下限 自动缩放此 Web 服务时可使用的容器的最小数目。
    默认值:1。
    副本数上限 自动缩放此 Web 服务时可使用的容器的最大数目。
    默认值:10。
    目标利用率 自动缩放程序应尝试维持的此 Web 服务的目标利用率(以百分比表示)。
    默认值:70.
    刷新周期 自动缩放程序尝试缩放此 Web 服务的频率(以秒为单位)。
    默认值:1。
    CPU 保留容量 要分配给此 Web 服务的 CPU 核心数。
    默认值:0.1。
    内存保留容量 为此 Web 服务分配的内存量 (GB)。
    默认值:0.5。
  4. 选择“部署”。

    部署完成后,将显示通知中心发送的成功通知。 这可能需要几分钟时间。

    显示部署通知的屏幕截图。

提示

如果在“实时终结点设置”框中为“计算类型”选择了“Azure 容器实例”,则还可以部署到“Azure 容器实例”。 Azure 容器实例用于测试或开发。 对于需要小于 48 GB RAM 的基于 CPU 的小规模工作负载,请使用 Azure 容器实例。

测试实时终结点

部署完成后,可通过转到“终结点”页来查看实时终结点。

  1. 在“终结点”页上,选择已部署的终结点。

    在“详细信息”选项卡中,可以查看更多信息,例如 REST URI、Swagger 定义、状态和标记。

    在“使用”选项卡中,可以找到使用代码示例和安全密钥,以及设置身份验证方法。

    在“部署日志”选项卡中,你可以找到实时终结点的详细部署日志。

  2. 若要测试终结点,请转到“测试”选项卡。可在此输入测试数据并选择“测试”以验证终结点的输出。

更新实时终结点

可以使用设计器中训练的新模型更新联机终结点。 在联机终结点详细信息页上,找到以前的训练管道作业和推理管道作业。

  1. 可以在设计器主页中查找和修改训练管道草稿。

    或者,可以打开训练管道作业链接,然后将其克隆到新的管道草稿中继续编辑。

    显示“终结点详细信息”页中的“训练作业”链接的屏幕截图。

  2. 提交修改后的训练管道后,请转到作业详细信息页。

  3. 作业完成后,右键单击“训练模型”,然后选择“注册数据”。

    显示“注册已训练的模型作为数据集”的屏幕截图。

    输入名称,然后选择“文件类型”。

    选择新数据资产后,注册为数据资产的屏幕截图。

  4. 成功注册数据集后,打开推理管道草稿,或将以前的推理管道作业克隆到新的草稿中。 在推理管道草案草稿中,使用新注册的数据集替换之前显示为 MD-XXXX 节点的训练模型,该节点连接到“评分模型”组件。

    显示如何修改推理管道的屏幕截图。

  5. 如果需要更新训练管道中的数据预处理部分,并且想要将其更新到推理管道中,则处理过程与上述步骤类似。

    只需要将转换组件的转换输出注册为数据集。

    然后,手动将推理管道中的 TD 组件替换为已注册的数据集

    显示如何替换转换组件的屏幕截图。

  6. 使用新训练的模型或转换修改推理管道后,请提交它。 作业完成后,将其部署到之前部署的现有联机终结点。

    显示如何替换现有实时终结点的屏幕截图。

限制

  • 由于数据存储访问限制,如果你的推理管道包含“导入数据”或“导出数据”组件,它们将在部署到实时终结点时被自动删除

  • 如果你有实时推理管道中的数据集,想要将其部署到实时终结点,则当前此流仅支持从 Blob 数据存储注册的数据集。 如果要使用其他类型数据存储中的数据集,可以使用“选择列”与初始数据集连接(设置是选择所有列),将“选择列”的输出注册为“文件”数据集,然后将实时推理管道中的初始数据集替换为此新注册的数据集

  • 如果推理图中包含的“手动输入数据”组件未连接到与“Web 服务输入”组件相同的端口,则在 HTTP 调用处理的过程中不会执行“手动输入数据”组件。 解决方法是将该“手动输入数据”组件的输出注册为数据集,然后在推理管道草稿中,将“手动输入数据”组件替换为已注册的数据集

    屏幕截图显示如何修改包含“手动输入数据”组件的推理管道。

清理资源

重要

可以使用你创建的、用作其他 Azure 机器学习教程和操作指南文章的先决条件的资源。

删除所有内容

如果你不打算使用所创建的任何内容,请删除整个资源组,以免产生任何费用。

  1. 在 Azure 门户的窗口左侧选择“资源组”

    在 Azure 门户中删除资源组

  2. 在列表中选择你创建的资源组。

  3. 选择“删除资源组”。

删除该资源组也会删除在设计器中创建的所有资源。

删除各项资产

在创建试验的设计器中删除各个资产,方法是将其选中,然后选择“删除”按钮。

此处创建的计算目标在未使用时,会自动缩减到零个节点。 此操作旨在最大程度地减少费用。 若要删除计算目标,请执行以下步骤:

删除资产

可以通过选择每个数据集并选择“注销”,从工作区中注销数据集。

取消注册数据集

若要删除数据集,请使用 Azure 门户或 Azure 存储资源管理器访问存储帐户,然后手动删除这些资产。

本教程介绍了如何在设计器中创建、部署和使用机器学习模型。 如果要详细了解如何使用设计器,请参阅以下文章: