我可以为 GCP ai-platform 训练作业指定超时吗?

Can I specify a timeout for a GCP ai-platform training job?

我最近提交了一个训练作业,命令如下:

gcloud ai-platform jobs submit training foo --region us-west2 --master-image-uri us.gcr.io/bar:latest -- baz qux

(更多关于此命令如何工作的信息:https://cloud.google.com/ml-engine/docs/training-jobs

我的代码中存在错误,导致作业只保留 运行,而不是终止。两周和 61 美元后,我发现了我的错误并取消了工作。我想确保我不会再犯这种错误。

我正在考虑在训练容器中使用 timeout 命令来终止进程,如果它花费的时间太长(典型的运行时间约为 2 或 3 小时),而不是相信容器会自行终止,我更愿意配置 GCP 在外部杀死它。

有办法实现吗?

作为解决方法,您可以编写一个小脚本来运行您的命令,然后休眠您想要的时间,直到 运行 到 cancel job command

由于 AI Platform 训练服务中没有超时定义,我冒昧地开了一个 Public Issue with a Feature Request 来记录这个命令的缺失。您可以跟踪 PI 进度 here.

除了上面提到的脚本,你还可以试试:

  • TimeOut Keras 回调,或 timeout= Optuna 参数(取决于您实际使用的库)
  • Cron 触发的 Lambda(云函数)