本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
中的服務任務重試策略 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 內部伺服器錯誤而失敗的任務
-
遇到驗證例外狀況的任務立即失敗 (無法透過重試解決的用戶端錯誤)
-
包含針對任何其他失敗類型結束的所有截獲規則
狀態原因模式比對
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*- 比對容量相關的故障
提示
使用特定模式比對來適當處理不同的錯誤類型。例如,重試內部伺服器錯誤,但驗證錯誤會立即失敗,指出任務參數發生問題。