Amazon SageMaker AI 中的檢查點 - Amazon SageMaker AI

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

Amazon SageMaker AI 中的檢查點

在 Amazon SageMaker AI 中使用檢查點,在訓練期間儲存機器學習 (ML) 模型的狀態。檢查點是模型的快照,並且可以透過機器學習 (ML) 架構的回呼函式進行設定。您可以使用儲存的檢查點,從上次儲存的檢查點重新啟動訓練任務。

使用檢查點,您可以執行下列操作:

  • 由於訓練任務或執行個體非預期中斷,會將模型快照儲存在訓練之下。

  • 從檢查點恢復訓練未來的模型。

  • 在訓練的中間階段分析模型。

  • 搭配 S3 Express One Zone 使用檢查點以提高存取速度。

  • 搭配 SageMaker AI 受管 Spot 訓練使用檢查點,以節省訓練成本。

SageMaker 訓練機制使用 Amazon EC2 執行個體上的訓練容器,而檢查點檔案會儲存在容器的本機目錄下 (預設為 /opt/ml/checkpoints)。SageMaker AI 提供將檢查點從本機路徑複製到 Amazon S3 的功能,並自動將該目錄中的檢查點與 S3 同步。S3 中的現有檢查點會在任務開始時寫入 SageMaker AI 容器,讓任務能夠從檢查點繼續。啟動任務後,新增至 S3 資料夾的檢查點不會複製到訓練容器。SageMaker AI 也會在訓練期間將新的檢查點從容器寫入 S3。如果在 SageMaker AI 容器中刪除檢查點,也會在 S3 資料夾中將其刪除。

您可以在 Amazon SageMaker AI 中使用檢查點與 Amazon S3 Express One Zone 儲存類別 (S3 Express One Zone),以更快地存取檢查點。當您啟用檢查點並指定檢查點儲存目的地的 S3 URI 時,您可以為 S3 一般用途儲存貯體或 S3 目錄儲存貯體中的資料夾提供 S3 URI。與 SageMaker AI 整合的 S3 目錄儲存貯體只能使用 Amazon S3 受管金鑰 (SSE-S3) 進行伺服器端加密。目前不支援具有 AWS KMS 金鑰的伺服器端加密 (SSE-KMS)。如需 S3 Express One Zone 和 S3 目錄儲存貯體的詳細資訊,請參閱什麼是 S3 Express One Zone

如果您將檢查點與 SageMaker AI 受管 Spot 訓練搭配使用,SageMaker AI 會管理在 Spot 執行個體上的模型訓練檢查點,並在下一個 Spot 執行個體上繼續訓練任務。透過 SageMaker AI 受管 Spot 訓練,您可以大幅縮短訓練 ML 模型的計費時間。如需詳細資訊,請參閱Amazon SageMaker AI 中的受管 Spot 訓練

SageMaker AI 中架構和演算法的檢查點

使用檢查點來儲存以 SageMaker AI 中您偏好架構為基礎的 ML 模型快照。

支援檢查點的 SageMaker AI 架構和演算法

SageMaker AI 支援 AWS 深度學習容器的檢查點和一部分內建演算法,而不需要訓練指令碼變更。SageMaker AI 會將檢查點儲存到預設本機路徑'/opt/ml/checkpoints',並將其複製到 Amazon S3。

  • Deep Learning Containers:TensorFlowPyTorchMXNetHuggingFace

    注意

    如果您正在使用 HuggingFace 架構估計器,則需要透過超參數指定檢查點輸出路徑。如需詳細資訊,請參閱 HuggingFace 文件中的在 Amazon SageMaker AI 上執行訓練

  • 內建演算法:影像分類物件偵測語意分割XGBoost (0.90-1 或更新版本)

    注意

    如果您正在使用架構模式 (指令碼模式) 下的 XGBoost 演算法,則需要使用具有手動設定檢查點的 XgBoost 訓練指令碼。如需有關儲存模型快照的 XGBoost 訓練方法的詳細資訊,請參閱 XGBoost Python SDK 文件中的訓練 XGBoost

如果在受管 Spot 訓練任務中使用不支援檢查點的預先建置演算法,SageMaker AI 不允許超過一小時的任務等待時間上限,以限制中斷造成的訓練時間浪費。

針對自訂訓練容器和其他架構

如果您正在使用自己的訓練容器、訓練指令碼或上一節未列出的其他架構,則必須使用回呼或訓練 API 正確設定訓練指令碼,以將檢查點儲存至本機路徑 ('/opt/ml/checkpoints'),並從訓練指令碼中的本機路徑載入。SageMaker AI 估算器可與本機路徑同步,並將檢查點儲存至 Amazon S3。

檢查點的考量事項

在 SageMaker AI 中使用檢查點時,請考慮下列事項。

  • 若要在具有多個執行個體的分散式訓練中避免覆寫,您必須在訓練指令碼中手動設定檢查點檔案名稱和路徑。高階 SageMaker AI 檢查點組態會指定單一 Amazon S3 位置,無需額外的尾碼或字首來標記多個執行個體的檢查點。

  • SageMaker Python SDK 不支援檢查點頻率的高階設定。若要控制檢查點頻率,請使用架構的模型儲存函式或檢查點回呼來修改訓練指令碼。

  • 如果您將 SageMaker AI 檢查點與分佈且面臨問題的 SageMaker Debugger 和 SageMaker AI 搭配使用,請參閱以下頁面,了解故障診斷和考量事項。