本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
中的服务作业重试策略 AWS Batch
服务作业重试策略 AWS Batch 允许在特定条件下自动重试失败的服务作业。
由于多方面的原因,服务作业可能需要多次尝试:
-
临时服务问题:内部服务错误、节流或临时中断可能会导致作业在提交或执行期间失败。
-
训练初始化失败:作业启动期间出现的问题(例如映像提取问题或初始化错误)可能会在重试后得到解决。
通过配置适当的重试策略,可以提高作业成功率并减少手动干预需要,尤其是对于长时间运行的训练工作负载。
注意
服务作业会自动重试某些类型的失败(例如容量不足错误),而不会消耗您配置的重试次数。您的重试策略主要处理其他类型的失败,例如算法错误或服务问题。
配置重试策略
使用配置服务作业重试策略 ServiceJobRetryStrategy,它支持简单的重试计数和有条件的重试逻辑。
重试配置
最简单的重试策略会指定服务作业失败后应进行的重试次数:
{ "retryStrategy": { "attempts": 3 } }
此配置允许在服务作业失败后最多重试 3 次。
重要
attempts 值表示可以将作业置于 RUNNABLE 状态的总次数,包括首次尝试。值为 3 表示该作业将首次尝试一次,如果失败,则最多可再重试 2 次。
使用重试配置 evaluateOnExit
您可以使用 evaluateOnExit 参数来指定应重试或放任作业失败的条件。当不同类型的失败需要不同的处理方式时,这将非常实用。
evaluateOnExit 数组最多可以包含 5 个重试策略,每种策略都根据状态原因指定一个操作(RETRY 或 EXIT)以及条件:
{ "retryStrategy": { "attempts": 5, "evaluateOnExit": [ { "action": "RETRY", "onStatusReason": "Received status from SageMaker: InternalServerError*" }, { "action": "EXIT", "onStatusReason": "Received status from SageMaker: ValidationException*" }, { "action": "EXIT", "onStatusReason": "*" } ] } }
此配置:
-
重试由于 SageMaker AI 内部服务器错误而失败的作业
-
立即让遇到验证异常(无法通过重试解决的客户端错误)的作业失败
-
包括适用于任何其他故障失败类型的 catch-all 退出规则
状态原因模式匹配
onStatusReason 参数最多支持 512 个字符的模式匹配。模式可以使用通配符 (*),并与 SageMaker AI 返回的状态原因进行匹配。
对于服务作业, SageMaker 来自 AI 的状态消息以 “接收的状态来自 SageMaker:” 为前缀,以将其与 AWS Batch生成的消息区分开来。常见模式包括:
-
Received status from SageMaker: InternalServerError*:匹配内部服务错误 -
Received status from SageMaker: ValidationException*:匹配客户端验证错误 -
Received status from SageMaker: ResourceLimitExceeded*:匹配资源限制错误 -
*CapacityError*:匹配与容量相关的失败
提示
使用特定的模式匹配来适当地恰当处理不同的错误类型。例如,重试内部服务器错误,但如果出现表明作业参数存在问题的验证错误,则立即失败。