如何使用管道 UI 调试 Azure 机器学习管道故障

提交管道后,你将在 Azure 机器学习工作区中看到指向管道作业的链接。 该链接会将你登录到 Azure 机器学习工作室中的管道作业页,你可以在其中检查结果并调试管道作业。

本文介绍如何使用管道作业页调试机器学习管道故障。

重要

本文中标记了“(预览版)”的项目目前为公共预览版。 该预览版在提供时没有附带服务级别协议,建议不要将其用于生产工作负载。 某些功能可能不受支持或者受限。 有关详细信息,请参阅适用于 Azure 预览版的补充使用条款

使用大纲快速查找节点

在管道作业详细信息页中,画布左侧有一个大纲,其中显示了管道作业的整体结构。 将鼠标悬停在任一行上可以选择“查找”按钮,以便在画布中查找该节点。

Screenshot showing outline and locate in the canvas.

可以筛选失败或已完成的节点,还可以仅按组件或数据集进行筛选以进一步搜索。 左侧窗格将显示匹配的节点和详细信息,包括状态、持续时间和创建时间。

Screenshot showing the quick filter by in outline > search.

还可以对筛选出的节点进行排序。

Screenshot of sorting search result in outline > search.

检查组件的日志和输出

如果管道有故障或停滞在某个节点上,请先查看日志。

  1. 可以选择特定的节点并打开右侧窗格。

  2. 选择“输出+日志”选项卡,然后可以浏览此节点的所有输出和日志。

    user_logs 文件夹包含有关用户代码生成的日志的信息。 此文件夹默认打开,并选择 std_log.txt 日志。 std_log.txt 是代码日志(例如,打印语句)出现的位置。

    system_logs 文件夹包含 Azure 机器学习生成的日志。 详细了解如何查看和下载诊断日志

    Screenshot of how to check node logs.

    如果未看到这些文件夹,则原因是计算运行时更新尚未发布到计算群集,你可以先查看 azureml-logs 文件夹下的 70_driver_log.txt。

比较不同的管道以针对失败或其他意外问题进行调试(预览版)

管道比较用于识别多个作业之间的差异(包括拓扑、组件属性和作业属性)。 例如,你可以比较成功的管道和失败的管道,这有助于找出导致管道失败的修改。

可以使用管道比较来帮助调试的两个主要方案如下:

  • 通过将失败的管道作业与已完成的作业进行比较来调试失败的管道作业。
  • 通过将失败的节点与类似的已完成节点进行比较来调试管道中失败的节点。

若要启用此功能:

  1. 导航到 Azure 机器学习工作室 UI。
  2. 在屏幕右上角的图标中选择“管理预览功能”(扩音器图标)。
  3. 在“托管预览功能”面板中,启用“比较管道作业以针对失败或意外问题进行调试”功能。

Screenshot of manage preview features toggled on.

如何通过将失败的管道作业与已完成的作业进行比较来调试失败的管道作业

在迭代模型开发期间,你可能有了一个基线管道,然后进行一些修改,例如更改参数、数据集或计算资源等。如果新管道失败,可以使用管道比较来识别更改内容,方法是将其与基线管道进行比较,这有助于找出失败的原因。

将管道与其父级进行比较

调试时应检查的第一件事是找到失败的节点并检查日志。

例如,你可能会收到一条错误消息,显示管道由于内存不足而失败。 如果管道是从已完成的父管道克隆的,则可以使用管道比较来查看更改的内容。

  1. 选择“显示世系”。

  2. 选择“克隆自”下的链接。 这将打开一个包含父管道的新浏览器选项卡。

    Screenshot showing the cloned from link, with the previous step, the lineage button highlighted.

  3. 选择失败管道和父管道上的“添加以进行比较”。 这会将它们添加到比较候选项列表中。

    Screenshot showing the comparison list with a parent and child pipeline added.

比较拓扑

将两个管道添加到比较列表后,你将有两个选项可用:“比较详细信息”和“对比图”。 “比较图”可用于比较管道拓扑。

“比较图”显示了管道 A 和管道 B 之间的图形拓扑更改。管道 A 中的特殊节点以红色突出显示,并标有“仅限 A”。 管道 B 中的特殊节点以绿色显示,并标有“仅限 B”。 共享节点以灰色显示。 如果共享节点上存在差异,则已更改的内容将显示在节点顶部。

摘要在详细信息页面中可供查看的更改分为三类:参数更改、输入源、管道组件。 当管道组件发生变化时,这意味着内部拓扑发生变化或内部节点参数发生变化,你可以选择管道组件节点上的文件夹图标以深入了解详细信息。 可以通过查看比较图中的彩色节点来检测到其他更改。

Screenshot showing the parameter changed and the component information tab.

比较管道元信息和属性

如果你调查数据集差异,并且发现数据或拓扑似乎不是失败的根本原因,则还可以检查管道详细信息,例如管道参数、输出或运行设置。

“比较图”用于比较管道拓扑,“比较详细信息”用于比较管道属性链接元信息或设置。

若要访问详细信息比较,请转到比较列表,选择“比较详细信息”,或在管道比较页上选择“显示比较详细信息”。

你将看到“管道属性”和“运行属性”。

  • 管道属性包括管道参数、运行和输出设置等。
  • 运行属性包括作业状态、提交时间和持续时间等。

以下屏幕截图显示了使用详细信息比较的示例,其中的默认计算设置可能是失败的原因。

Screenshot showing the comparison overview of the default compute.

若要快速检查拓扑比较,请选择管道名称,然后选择“比较图”。

Screenshot of detail comparison with compare graph highlighted.

如何通过将管道中失败的节点与类似的已完成节点进行比较来调试失败的节点

如果只更新了节点属性,并且未在管道中更改任何内容,则可以通过将该节点与从同一组件提交的作业进行比较来调试该节点。

查找要与之比较的作业

  1. 通过查看从同一组件提交的所有运行来查找要与之比较的成功作业。
    1. 右键单击失败的节点,然后选择“查看作业”。 这会提供一个包含所有作业的列表。

      Screenshot that shows a failed node with view jobs highlighted.

    2. 选择已完成的作业作为比较目标。

  2. 找到失败作业和要与之比较的已完成作业后,将这两个作业添加到比较候选项列表。
    1. 对于失败的节点,请右键单击该节点并选择“添加以进行比较”。
    2. 对于已完成的作业,请转到其父管道并找到已完成的作业。 然后,选择“添加以进行比较”。
  3. 当两个作业都位于比较列表内之后,选择“比较详细信息”以显示差异。

共享比较结果

若要共享比较结果,请选择“共享”并复制链接。 例如,你可能会发现数据集差异可能导致失败,但你不是数据集专家,你就可以与团队中的数据工程师共享比较结果。

Screenshot showing the share button and the link you should copy.

后续步骤

本文介绍了如何调试管道故障。 若要详细了解如何使用管道,请参阅以下文章: