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

Google Cloud Platform Vertex AI自定义作业运行日志不显示问题排查

问题原因及解决方案

1. Python默认输出缓冲导致日志未实时上报

这是这类问题最常见的诱因:Python在非交互式运行环境(即不是终端手动执行的场景)下,默认会对stdout、stderr输出做缓冲,只有缓冲区占满、程序退出/崩溃时才会统一把内容刷出。你通过控制台手动启动作业时属于交互式环境,缓冲默认关闭,所以日志能实时上报,代码调用启动的是非交互式环境,就会出现运行中看不到日志、崩溃才输出报错的现象。
解决方法二选一即可:

  • 在提交作业的代码中添加环境变量禁用缓冲,修改job.run的environment_variables参数:
model = job.run(
    # 其他原有参数不变
    environment_variables={"PYTHONUNBUFFERED": "1"}
)
  • 代码中所有print语句添加flush=True参数,或者改用Python标准logging模块输出日志,logging默认输出到stderr无缓冲。

2. 服务账号缺少日志写入权限

你代码中指定了专属服务账号运行作业,如果该账号没有Cloud Logging的写入权限,日志就无法上报到控制台。你手动启动作业时默认使用的是你的个人账号,一般默认有日志写入权限,所以没有这个问题。
解决方法:给服务账号vertex-ai-fotokite-service-acc@fotokite-cv-gcp-exploration.iam.gserviceaccount.com授予roles/logging.logWriter角色。

3. 代码参数笔误(次要影响,建议优先修复)

你job.run的参数中存在明显笔误:accelerator_count的取值被你写成了ACCELERATOR_TYPE,而不是你预先定义的ACCELERATOR_COUNT,虽然该错误不会直接导致日志缺失,但会影响你作业的硬件配置,建议尽快修正。

4. 控制台日志过滤规则问题

确认你在GCP控制台查看日志时,过滤条件选中了对应作业的stdout、stderr两类日志,部分默认视图会隐藏stdout的常规输出,你可以直接在Cloud Logging中用查询语句resource.type="ml_job" AND resource.labels.job_id="[你的作业ID]"检索全量日志。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 20:24:03