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

如何让管道中独立的PythonScriptStep步骤按输入依赖并行运行

多独立PythonScriptStep并行运行异常解决方案

预期的流水线DAG结构如下:
流水线DAG示例
3个上游步骤应并行执行,完成后两个finetune步骤并行执行,rgb_test步骤同理。针对步骤串行排队的问题,可按以下顺序排查解决:

1 检查计算集群配置

  • 确认你使用的计算集群「最大节点数」参数大于预期的并行步骤数量,避免节点数不足导致步骤排队
  • 核对订阅对应VM规格的可用配额,配额不足会强制限制并行作业数量
  • 检查单步骤资源申请配置:在步骤的RunConfiguration中确认cpu_cores、memory_gb的请求值未超出单节点可分配资源上限,避免单个步骤占用整节点导致并行度下降

2 检查管道运行的并发参数配置

部分Azure ML SDK版本默认最大并发步骤数为1,提交管道时需显式配置该参数,示例如下:

from azureml.core import Experiment

# pipeline为已构建完成的管道对象
pipeline_run = Experiment(workspace, "你的实验名称").submit(
    pipeline,
    pipeline_parameters={"max_concurrent_steps": 5} # 数值按需调整为需要的最大并行数
)

3 排查步骤隐式依赖

若步骤间存在未显式定义的共享输入输出对象,会被流水线判定为存在依赖关系强制串行。可通过以下代码确认依赖关系是否符合预期:

for step in pipeline.steps:
    print(f"步骤{step.name}依赖:{[dep.name for dep in step.dependencies]}")

如果出现非预期的依赖项,检查是否存在不同步骤误用同一个PipelineData对象的情况。

4 其他排查项

  • 升级Azure ML SDK到最新版本,旧版本存在并发调度相关的已知问题,升级命令:pip install --upgrade azureml-pipeline-core azureml-core
  • 确认未启用集群排他调度规则,排他调度会强制单个节点同一时间仅运行一个作业

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 06:24:04