Azure 机器学习管道:失败时如何重试?

use*_*907 4 azure azure-machine-learning-service

因此,我这里有一个 Azure 机器学习管道,其中包含许多PythonScriptStep任务 - 实际上非常基本。

其中一些脚本步骤由于网络问题或其他问题而间歇性失败 - 确实没有什么意外。这里的解决方案始终是在 Azure 机器学习工作室的浏览器界面中简单地触发失败实验的重新运行。

尽管我尽了最大努力,但仍无法弄清楚如何在脚本步骤对象、管道对象或任何其他 AZ ML 相关对象上设置重试参数。这是任何类型的管道中的常见模式:任务失败一次 - 在确定它实际上失败之前重试几次。

有人可以指点我吗?

编辑:一位乐于助人的用户对此提出了一种外部解决方案,该解决方案需要一个 Azure 逻辑应用程序来侦听 ML 管道事件并通过 HTTP 请求重新触发失败的管道。虽然这个解决方案可能对某些人有用,但它只会让您陷入另一个设置、调试和维护另一个外部组件的兔子洞。我正在寻找一个简单的“任务失败时重试”选项,(IMO)必须将其纳入 Azure ML 管道框架中,并且希望只是记录很少。

use*_*267 5

我假设如果脚本失败,您希望重新运行整个管道。在这种情况下,使用逻辑应用程序就非常简单了。您需要的是以下内容:

  1. 您需要为管道创建 PipelineEndpoint,以便它可以由 Azure ML 之外的内容触发。
  2. 您需要设置一个逻辑应用程序来侦听失败的运行。请参阅以下内容:https://medium.com/geekculture/notifications-on-azure-machine-learning-pipelines-with-logic-apps-5d5df11d3126。您不必像该示例中那样将消息打印到 Microsoft Teams,而是通过其端点调用管道。

  • 不幸的是没有。我认为我上面描述的是规范的方式。您会惊讶地发现通过逻辑应用处理 Azure 机器学习事件是多么容易 - GUI 可以轻松创建重新触发管道的 Webhook。 (2认同)