Amazon 中的檢查點 SageMaker - Amazon SageMaker

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

Amazon 中的檢查點 SageMaker

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

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

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

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

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

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

  • 使用檢查點搭配 SageMaker 受管現場訓練,節省訓練成本。

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

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

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

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

使用檢查點來儲存建置在 中偏好架構上的 ML 模型快照 SageMaker。

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

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

  • 深度學習容器:TensorFlowMXNetPyTorchHuggingFace

    注意

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

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

    注意

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

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

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

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

檢查點的考量事項

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

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

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

  • 如果您搭配 SageMaker Debugger 使用 SageMaker 檢查點並 SageMaker 已分發,且面臨問題,請參閱下列頁面,了解疑難排解和考量事項。