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

Vertex AI自定义训练作业传命令行参数遇退出码127求助

解决自定义训练作业命令行参数传递与退出码127问题

退出码127的核心原因

退出码127通常意味着容器启动时找不到要执行的目标脚本/命令,或是脚本缺少执行权限、脚本解释器路径错误。这是容器启动失败的典型表现,会直接导致参数无法被正常接收。

正确传递参数的完整步骤

1. 确保容器镜像基础配置正确

容器必须明确指定入口命令或启动命令,指向你的训练脚本,示例Dockerfile配置:

# 切换到脚本所在工作目录
WORKDIR /app
# 给脚本添加执行权限(如果直接执行脚本的话)
RUN chmod +x train.py
# 方式1:用ENTRYPOINT指定固定脚本,后续参数会追加到这里
ENTRYPOINT ["python", "train.py"]
# 方式2:用CMD直接指定完整启动命令,job.run的args会替换默认CMD
# CMD ["python", "train.py"]

注意:如果脚本没有添加#!/usr/bin/env python3这类shebang行,必须用python train.py的方式启动,不能直接执行脚本文件。

2. 训练脚本正确接收命令行参数

使用Python标准库argparse解析参数,示例代码:

# train.py
import argparse

def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('--data_dir', type=str, required=True, help='数据目录路径')
    parser.add_argument('--model_dir', type=str, required=True, help='模型保存目录')
    parser.add_argument('--configs', type=str, required=True, help='配置文件路径')
    args = parser.parse_args()

    # 打印参数验证是否接收成功
    print(f"Data dir: {args.data_dir}")
    print(f"Model dir: {args.model_dir}")
    print(f"Configs: {args.configs}")

    # 后续训练逻辑...

if __name__ == '__main__':
    main()

3. job.run()参数传递的正确姿势

你现有代码的args格式是正确的,只需确保容器入口命令能接收这些参数:

job.run(
    args=['--data_dir', '/gcs/bucket/folder',
          '--model_dir', '/gcs/bucket/model',
          '--configs', 'internal-config.yml'],
    replica_count=1,
    sync=True
)

这里的args会被追加到容器ENTRYPOINT之后(若使用ENTRYPOINT配置),或是替换默认的CMD命令。比如ENTRYPOINT设为["python", "train.py"],容器实际执行的命令为:
python train.py --data_dir /gcs/bucket/folder --model_dir /gcs/bucket/model --configs internal-config.yml

退出码127的额外排查要点

  • 本地测试容器:执行docker run gcr.io/prj-id/image-name:latest --data_dir test --model_dir test --configs test.yml,验证容器是否能正常启动,是否仍报127错误。
  • 检查脚本权限:确保Dockerfile中添加了RUN chmod +x train.py(若直接执行脚本)。
  • 调试启动命令:可在Dockerfile中临时设置CMD ["bash", "-c", "echo $0 $@ && python train.py $@"],查看参数是否被正确传递。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 17:45:36