Vertex AI中Kubeflow ParallelFor执行行为不一致问题求助
Vertex AI中Kubeflow Pipeline ParallelFor执行不一致问题及解决办法
问题场景
在Vertex AI中运行Kubeflow Pipeline,流水线及组件代码如下:
流水线代码
run_1_output = run_1().set_memory_limit("1G").set_cpu_limit("1") with kfp.dsl.ParallelFor(run_1_output.output) as key: run_1a_output = run_1a(key=key).set_memory_limit("1G").set_cpu_limit("1") run_1b_output = run_1b(run_1_output=run_1_output.output).set_memory_limit("1G").set_cpu_limit("1")
run_1组件定义
@component() def run_1() -> List[str]: resp = ["1", "2"] return resp
run_1组件返回硬编码的字符串列表,预期ParallelFor会遍历该列表,将每个元素作为key参数传入run_1a组件。
问题现象
- 流水线部署无异常,run_1组件可正常运行,但
ParallelFor执行行为不一致,同一代码编译部署后有时正常、有时报错 - 报错时,Vertex AI流水线界面显示错误信息:
The task_spec.parameter_iterator input parameter expected a string or list value.,该错误属于Kubeflow参数类型错误,在组件运行前触发 - 失败执行的特征:即使run_1执行成功,其输出仍未从默认值
undefined_till_runtime更新
解决办法
问题根源为使用的kfp版本是1.18.17,将版本切换至1.18.16后,所有功能恢复正常。
内容的提问来源于stack exchange,提问作者Martin Becuwe
相关产品推荐
相关产品推荐

