中的服務任務重試策略 AWS Batch - AWS Batch

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

中的服務任務重試策略 AWS Batch

服務任務重試策略 AWS Batch 允許 在特定條件下自動重試失敗的服務任務。

服務任務可能需要多次嘗試,原因如下:

  • 暫時性服務問題:內部服務錯誤、限流或暫時中斷可能會導致任務在提交或執行期間失敗。

  • 訓練初始化失敗:任務啟動期間的問題,例如映像提取問題或初始化錯誤,可能會在重試時解決。

透過設定適當的重試策略,您可以提高任務成功率並減少手動介入的需求,尤其是長時間執行的訓練工作負載。

注意

服務任務會自動重試某些類型的失敗,例如容量不足錯誤,而不會消耗您設定的重試嘗試。您的重試策略主要處理其他類型的失敗,例如演算法錯誤或服務問題。

設定重試策略

服務任務重試策略是使用 ServiceJobRetryStrategy 設定,同時支援簡單的重試計數和條件式重試邏輯。

重試組態

最簡單的重試策略會指定服務任務失敗時應進行的重試嘗試次數:

{ "retryStrategy": { "attempts": 3 } }

此組態允許在服務任務失敗時重試最多 3 次。

重要

attempts值代表任務可置於 RUNNABLE 狀態的總次數,包括初始嘗試次數。值為 3 表示任務一開始會嘗試一次,然後在失敗時再重試最多 2 次。

使用 evaluateOnExit 重試組態

您可以使用 evaluateOnExit 參數來指定任務應重試或允許失敗的條件。當不同類型的失敗需要不同的處理時,這非常有用。

evaluateOnExit 陣列最多可包含 5 個重試策略,每個策略會根據狀態原因指定動作 (RETRYEXIT) 和條件:

{ "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* - 比對容量相關的故障

提示

使用特定模式比對來適當處理不同的錯誤類型。例如,重試內部伺服器錯誤,但驗證錯誤會立即失敗,指出任務參數發生問題。