瞭解無伺服器訓練服務

本頁面說明訓練叢集在訓練工作生命週期中的狀態,以及 Agent Platform 如何處理訓練錯誤。您可以根據這項資訊調整訓練程式碼。

訓練工作的生命週期

本節說明 Agent Platform 如何在訓練工作生命週期中處理工作站 VM。

將新工作加入佇列

建立 CustomJobHyperparameterTuningJob 時,工作可能會在 JOB_STATE_QUEUED 狀態中停留一段時間,然後才由 Agent Platform 執行。這段時間通常很短,但如果Google Cloud 專案的自訂訓練配額不足以執行工作,Agent Platform 就會將工作保留在佇列中,直到配額充足為止。

並行啟動 worker

訓練工作開始時,Agent Platform 會在短時間內盡可能排定多個工作站。因此,工作站可能會並行啟動,而非依序啟動。為減少啟動延遲,Agent Platform 會在每個工作站可用時,立即開始執行程式碼。所有工作站都可用時,Agent Platform 會將工作狀態設為 JOB_STATE_RUNNING

在大多數情況下,機器學習架構會自動處理並行啟動的工作站。如果您在訓練程式碼中使用分配策略,可能需要手動調整,以處理平行啟動的工作站。進一步瞭解 TensorFlowPyTorch 中的分配策略。

在訓練作業期間重新啟動 worker

在訓練工作期間,Agent Platform 可以從任何具有相同主機名稱的工作站集區重新啟動工作站。可能原因如下:

  • VM 維護:如果執行工作者的 VM 必須進行維護,Agent Platform 會在另一個 VM 上重新啟動工作者。進一步瞭解 VM 維護作業的即時遷移
  • 非零結束:如果任何 worker 以非零結束代碼結束,Agent Platform 會立即在同一部 VM 中重新啟動該 worker。

    • 如果 worker 因常見錯誤而失敗,系統會將其視為永久性錯誤,Agent Platform 也會關閉整個工作。如果任何容器在 Agent Platform 關閉整個工作前重新啟動,這些容器可能會在 Cloud Logging 中產生記錄。
    • 如果 worker 因非永久性錯誤 (常見錯誤中未列出的任何錯誤) 而失敗,Agent Platform 允許重新啟動的 worker 繼續執行,每個 worker 最多可重新啟動五次。如果工作者在五次重新啟動後仍失敗,Agent Platform 會重試整個工作最多三次,然後將整個工作標示為失敗。

如要在訓練程式碼中處理工作站重新啟動,請在訓練期間定期儲存檢查點,以便在工作站重新啟動時從檢查點還原。如果訓練時間預計超過四小時,建議您至少每四小時儲存一次檢查點。瞭解如何在 TensorFlowPyTorch 中使用訓練檢查點。

順利完成工作

當主要副本以結束代碼 0 結束時,訓練工作即成功完成。屆時,Agent Platform 會關閉所有其他執行中的工作站。

Agent Platform 如何處理訓練工作錯誤

本節說明 Agent Platform 如何處理常見的訓練工作錯誤和內部錯誤。

工作結束後約一分鐘,Agent Platform 會根據結束代碼,在訓練工作物件上設定錯誤代碼。

處理常見錯誤

如果遇到下列任一問題,Agent Platform 會關閉所有工作人員:

錯誤類型 錯誤訊息/記錄 附註
使用者代碼例外狀況 副本 REPLICA_NAME 以非零狀態 EXIT_CODE 結束。終止原因:REASON 如果工作遇到可能暫時性的結束代碼,Agent Platform 最多會嘗試重新啟動工作三次。如果出現下列可能暫時性的錯誤代碼,Agent Platform 會提示重試工作:
  • SIGABRT
    • ExitCode 6
    • ExitCode 134 (自訂容器)
  • SIGSEGV
    • ExitCode 11
    • ExitCode 139 (自訂容器)
記憶體不足 副本 REPLICA_NAME 記憶體不足,並以非零狀態 EXIT_CODE 結束。 GKE 會保留 Agent Platform 節點上的記憶體。在最小的機器類型 (例如 n1-standard-4) 上,Agent Platform 系統代理程式最多可能佔用 40% 的總記憶體。如果是較大的 VM,負擔相對較小。比較 n1-standard機器類型可分配的記憶體
所在區域容量不足 (Compute Engine 缺貨) 區域「REGION_NAME」的資源不足,請嘗試使用其他區域或加速器。 如果 Compute Engine 區域中選取的 CPU 或 GPU 容量已達上限,就會發生缺貨情形。與專案配額無關。 發生這種情況時,Agent Platform 最多會嘗試重新啟動工作三次。

對於在 A2 和 A3 VM 上執行的工作,Dynamic Workload Scheduler 可讓您排定工作,在要求的 GPU 資源可用時執行,而不是因缺貨錯誤而失敗。詳情請參閱根據資源可用性排定訓練工作時間表

處理內部錯誤

如果 Agent Platform 發生內部錯誤,系統會嘗試重新啟動工作兩次 (總共三次)。如果重新啟動嘗試也失敗,Agent Platform 會傳回內部錯誤,訊息為:Internal error occurred for the current attempt