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 搭配使用,而且面臨問題,請參閱以下頁面的疑難排解和考量事項。