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

Amazon SageMaker 培訓編譯

重要

Amazon Web Services(AWS)宣布將不會有新版本或 SageMaker 培訓編譯器版本。您可以透過現有的 AWS Deep Learning Containers (DLC) 進行 SageMaker 訓練,繼續使用 SageMaker 訓練編譯器。請務必注意,雖然現有的 DLC 仍可供存取,但根據 AWS Deep Learning Containers 架構 Support 政策 AWS,它們將不再從中接收修補程式或更新。

使用 Amazon SageMaker 訓練編譯器在受管理的可擴展 GPU 執行個體上更快地訓練深度學習 (DL) 模型 SageMaker。

什麼是 SageMaker 培訓編譯器?

S tate-of-the-art 深度學習 (DL) 模型由具有數十億個參數的複雜多層神經網路組成,訓練可能需要數千個 GPU 小時。若要在訓練基礎架構最佳化此類模型,需要廣泛的 DL 與系統工程知識;即使對於狹窄的使用案例,這也具有挑戰性。儘管可運用開放原始碼實作的編譯器來最佳化 DL 訓練程序,但其可能缺乏整合 DL 架構與部分硬體 (例如 GPU 執行個體) 的彈性。

SageMaker 訓練編譯器是一項功能,可進行 SageMaker 這些 hard-to-implement 最佳化,以減少 GPU 執行個體的訓練時間。編譯器可最佳化 DL 模型,藉由使用 SageMaker 機器學習 (ML) GPU 執行個體更有效率地加速訓練。 SageMaker 訓練編譯器可在內部免費使用, SageMaker 並可協助減少總計費時間,因為它加速訓練。

SageMaker 訓練編譯器已整合至 AWS Deep Learning Containers (DLC) 中。使用已啟用 SageMaker 訓練編譯器的 AWS DLC,您可以編譯並最佳化 GPU 執行個體上的訓練工作,只需對程式碼進行最少的變更。將您的深度學習模型帶入 SageMaker 並啟用 SageMaker 訓練編譯器,以加快 SageMaker ML 執行個體上的訓練工作速度,以加速運算。

運作方式

SageMaker 訓練編譯器會將 DL 模型從其高階語言表示法轉換為硬體最佳化指令。特別是, SageMaker 訓練編譯器會套用圖形層級最佳化、資料層級最佳化和後端最佳化,以產生有效利用硬體資源的最佳化模型。因此,相較於無編譯的訓練情況,您可以加速訓練模型。

為您的訓練工作啟動 SageMaker 訓練編譯器是兩個步驟的程序:

  1. 帶上您自己的 DL 腳本,如果需要,可以使用培訓編譯器調整編譯和 SageMaker 訓練。如需進一步了解,請參閱使用自有深度學習模型

  2. 使用 SageMaker Python SDK 建立具有編譯器組態參數的 SageMaker 估算器物件。

    1. 通過添加compiler_config=TrainingCompilerConfig()到 SageMaker估計器類打開 SageMaker 培訓編譯器。

    2. 調整超參數 (batch_sizelearning_rate) 以最大化 SageMaker 訓練編譯器提供的優勢。

      透過 SageMaker 訓練編譯器編譯會變更模型的記憶體佔用量。最常見的情況為減少記憶體使用率,並因此提高 GPU 可容納的最大批次大小。在部分情況,編譯器會以智慧方式提升快取,因而減少 GPU 可容納的最大批次大小。請注意,如要變更批次大小,您必須適當調整學習速率。

      如需參考資料了解針對熱門模型測試的 batch_size,請參閱測試模型模型

      當您調整批次大小時,必須同時適當調整 learning_rate。如需最佳實務了解如何調整學習速率及變更批次大小,請參閱SageMaker 訓練編譯器最佳做法與考量

    3. 透過執行 estimator.fit() class 方法, SageMaker編譯您的模型並開始訓練工作。

    如需如何啟動訓練工作的說明,請參閱啟用 SageMaker 訓練編譯器

SageMaker 訓練編譯器不會改變最終訓練過的模型,同時可讓您更有效率地使用 GPU 記憶體,並在每次反覆運算時調整更大的批次大小,藉此加速訓練工作。透過編譯器加速訓練工作的最終訓練模型,與一般訓練工作的模型完全相同。

提示

SageMaker 訓練編譯器只會編譯 DL 模型,以便在受管理的支援 GPU 執行個體上進行 SageMaker訓練。若要編譯用於推論的模型,並將其部署為在雲端和邊緣的任何位置執行,請使用 SageMaker Neo 編譯器