You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Machine Learning pipeline任务失败时如何配置自动重试机制?

Azure Machine Learning Pipeline 任务失败原生重试配置方案

Azure ML Pipeline 本身内置了单步骤失败重试能力,无需依赖Logic App等外部组件,针对你使用PythonScriptStep的v1 SDK场景,以及后续可能用到的v2 SDK场景,配置方式分别如下:

SDK v1(PythonScriptStep 适用)

重试规则绑定在步骤对应的RunConfiguration对象中,配置示例如下:

from azureml.core.runconfig import RunConfiguration
from azureml.pipeline.steps import PythonScriptStep

# 初始化运行配置对象
run_config = RunConfiguration()

# 定义重试策略
run_config.retry_policy = {
    "max_retries": 3,  # 自定义最多重试次数
    "retry_on": ["timeout", "service_error", "resource_exhausted"]
}

# 将带重试规则的配置传入PythonScriptStep
your_step = PythonScriptStep(
    name="你的脚本步骤名称",
    script_name="你的脚本文件.py",
    source_directory="./你的脚本目录",
    runconfig=run_config,  # 核心:传入重试配置
    compute_target=你的计算集群对象
)

retry_on支持的触发重试的错误类型说明:

  • timeout:步骤运行超时触发重试
  • service_error:网络波动、Azure ML服务端异常等非代码问题触发
  • resource_exhausted:内存不足、计算资源配额不够等资源类问题触发
  • 如需所有非用户代码错误都触发重试,可直接设置为["all_transient"]

SDK v2(升级后通用组件适用)

如果后续升级到Azure ML v2 SDK,重试参数可以直接在任务定义中配置:

from azure.ai.ml import command

your_step = command(
    name="你的命令步骤名称",
    code="./你的脚本目录",
    command="python 你的脚本文件.py",
    compute=你的计算集群名称,
    retry=3,  # 最多重试次数
    retry_on=["timeout", "service_error"]
)

注意事项

  • 重试仅针对失败的单步骤执行,不会重新运行整个Pipeline中已经执行成功的其他步骤
  • 如果你的步骤包含写入外部数据库、对象存储的操作,建议自行实现幂等逻辑,避免重试导致重复写入数据异常
  • 重试间隔采用Azure ML默认的指数退避策略,无需手动配置间隔时间

内容的提问来源于stack exchange,提问作者GRW

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 16:09:00