本页面介绍了训练作业的状态(通过训练作业的生命周期),以及 AI Platform Training 如何处理训练错误。您可以使用此信息来相应地调整您的训练代码。
训练作业的生命周期
本部分介绍 AI Platform Training 如何通过训练作业的生命周期处理工作器虚拟机。
并行启动工作器
训练作业开始时,AI Platform Training 会在短时间内安排尽可能多的工作器。因此,工作器可能会并行启动,而不是按顺序启动。为了缩短启动延迟时间,AI Platform Training 会在每个工作器上运行代码后立即开始运行该代码。当所有工作器都可用时,AI Platform Training 会将作业状态设置为 RUNNING
。
在大多数情况下,您的机器学习框架会自动处理并行启动的工作器。如果您在训练代码中使用分发策略,则可能需要手动调整策略以处理并行启动的工作器。详细了解 TensorFlow 和 PyTorch 中的分发策略。
在训练作业期间重启工作器
在训练作业期间,AI Platform Training 可以重启具有相同主机名的主实例、工作器或参数服务器。出现此情况的原因如下:
- 虚拟机维护:当运行工作器的虚拟机进行维护时,AI Platform Training 会在另一个虚拟机上重启该工作器。 详细了解适用于虚拟机维护的实时迁移。
非零退出:如果任何工作器在退出时显示非零退出代码,则 AI Platform Training 会立即在同一虚拟机中重启该工作器。
要处理训练代码中的工作器重启,请在训练期间定期保存检查点,以便在工作器重启时从检查点恢复。如果您预计训练时间超过 4 小时,我们建议至少每 4 小时保存一次检查点。了解如何在 TensorFlow 和 PyTorch 中使用训练检查点。
已成功完成作业
如果训练作业的主要副本退出并且退出代码为 0,则表示训练作业已成功完成。此时,AI Platform Training 会关停所有其他正在运行的工作器。
AI Platform Training 如何处理训练作业错误
本部分介绍 AI Platform Training 如何处理常见的训练作业错误和内部错误。
作业结束后一分钟左右,AI Platform Training 会根据退出代码在训练作业对象上设置错误代码。
处理常见错误
如果遇到以下任何问题,AI Platform Training 会关停所有工作器:
错误类型 | 错误消息/日志 | 备注 |
用户代码异常 | 副本 REPLICA_NAME 退出且非零状态 EXIT_CODE。终止原因:REASON。 | 如果作业遇到可以瞬时退出的退出代码,AI Platform Training 会尝试重启该作业三次。提示 AI Platform Training 重试该作业的暂时性错误代码包括:
|
Out-of-memory | 副本 REPLICA_NAME 因内存不足而退出,其非零状态为 EXIT_CODE。 |
GKE 在 AI Platform Training 节点上预留内存。在最小的机器类型(例如 n1-standard-4 )上,AI Platform Training 系统代理占总内存的 40%。对于较大的虚拟机,开销相对较小。比较适用于 n1-standard 机器类型的可分配内存。 |
您所在区域的容量不足(Compute Engine 容量不足) | 区域资源不足:REGION_NAME。请尝试其他区域或使用其他加速器。 | 当 Compute Engine 已在您区域中的所选 CPU 或 GPU 达到容量时,就会发生缺货。这与您的项目配额无关。发生这种情况时,AI Platform Training 会尝试重启该作业三次。 |
处理内部错误
如果 AI Platform Training 发生内部错误,它会尝试重启作业两次(总共尝试三次)。如果重启尝试也失败,AI Platform Training 将返回以下错误消息:Internal error occurred for the current attempt
。