本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon SageMaker 培訓編譯
重要
Amazon Web Services(AWS)宣布將不會有新版本或 SageMaker 培訓編譯器版本。您可以透過現有的 AWS Deep Learning Containers (DLCs) 繼續使用 SageMaker 訓練編譯器進行 SageMaker 訓練。請務必注意,儘管現有的DLCs保持可存取,但根據 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 訓練編譯器已整合至 De AWS ep Learning Containers (DLCs) 中。使用已啟用 SageMaker 訓練編譯器 AWS DLCs,您可以編譯並最佳化GPU執行個體上的訓練工作,只需對程式碼進行最少的變更。將您的深度學習模型帶入 SageMaker 並啟用 SageMaker 訓練編譯器,以加快 SageMaker ML 執行個體上的訓練工作速度,以加速運算。
運作方式
SageMaker 訓練編譯器會將 DL 模型從其高階語言表示法轉換為硬體最佳化指令。特別是, SageMaker 訓練編譯器會套用圖形層級最佳化、資料層級最佳化和後端最佳化,以產生有效利用硬體資源的最佳化模型。因此,相較於無編譯的訓練情況,您可以加速訓練模型。
為您的訓練工作啟動 SageMaker 訓練編譯器是兩個步驟的程序:
-
帶上您自己的 DL 腳本,如果需要,可以使用培訓編譯器進行編譯和 SageMaker 訓練。如需進一步了解,請參閱 使用自有深度學習模型。
-
使用 Python 創建具有編譯器配置參數的 SageMaker 估算器對象。 SageMaker SDK
-
通過添加
compiler_config=TrainingCompilerConfig()
到 SageMaker估計器類打開 SageMaker 培訓編譯器。 -
調整超參數 (
batch_size
和learning_rate
) 以最大限度地發揮 SageMaker 訓練編譯器提供的優勢。透過 SageMaker 訓練編譯器編譯會變更模型的記憶體佔用量。最常見的是,這表現為減少記憶體使用率,並隨之增加最大的批次大小,可容納. GPU 在某些情況下,編譯器會智慧地提升快取,進而導致最大的批次大小減少,可適合. GPU 請注意,如要變更批次大小,您必須適當調整學習速率。
如需參考資料了解針對熱門模型測試的
batch_size
,請參閱測試模型模型。當您調整批次大小時,必須同時適當調整
learning_rate
。如需最佳實務了解如何調整學習速率及變更批次大小,請參閱SageMaker 訓練編譯器最佳做法和考量。 -
透過執行
estimator.fit()
class 方法, SageMaker編譯您的模型並開始訓練工作。
如需如何啟動訓練工作的說明,請參閱啟用 SageMaker 訓練編譯器。
-
SageMaker 訓練編譯器不會改變最終訓練過的模型,同時允許您更有效地使用GPU記憶體,並在每次反覆運算中擬合較大的批次大小來加速訓練工作。透過編譯器加速訓練工作的最終訓練模型,與一般訓練工作的模型完全相同。
提示
SageMaker 訓練編譯器只會編譯 DL 模型,以便在受管理的GPU執行個體上進行 SageMaker訓練。若要編譯用於推論的模型,並將其部署為在雲端和邊緣的任何位置執行,請使用 SageMaker Neo 編譯器。