本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
SageMaker Training Compiler 常見問題
重要
Amazon Web Services (AWS) 宣佈不再推出新版本的 SageMaker Training Compiler。您可以透過現有的 SageMaker 訓練 AWS 深度學習容器 (DLC),繼續利用 SageMaker Training Compiler。請務必注意,雖然現有 DLCs仍可存取,但根據深度學習容器架構支援政策 AWS,他們將不再收到來自 的修補程式或更新。 AWS
請利用下列常見問題項目來針對 SageMaker Training Compiler 的常見問題尋找解答。
問:如何知道 SageMaker Training Compiler 正在處理中?
如您已利用 SageMaker Training Compiler 成功啟動訓練工作,您會收到下列記錄訊息:
-
搭配
TrainingCompilerConfig(debug=False)Found configuration for Training Compiler Configuring SM Training Compiler... -
搭配
TrainingCompilerConfig(debug=True)Found configuration for Training Compiler Configuring SM Training Compiler... Training Compiler set to debug mode
問:SageMaker Training Compiler 會加速哪些模型?
SageMaker Training Compiler 支援 Hugging Face 轉換器程式庫最熱門的深度學習模型。對於編譯器支援的多數運算子,可利用 SageMaker Training Compiler 加快訓練這些模型。可編譯模型包括但不限於下列項目:bert-base-cased、bert-base-chinese、bert-base-uncased、distilbert-base-uncased、distilbert-base-uncased-finetuned-sst-2-english、gpt2、roberta-base、roberta-large、t5-base、xlm-roberta-base。此編譯器可與多數 DL 運算子與資料結構搭配使用,且除已經過測試的模型外,可加速許多其他 DL 模型。
問:如採用未經測試的模型來啟用 SageMaker Training Compiler,會發生什麼情況?
對於未測試的模型,您可能需要先修改訓練指令碼,以便相容 SageMaker Training Compiler。如需詳細資訊,請參閱使用自有深度學習模型,並參閱如何準備訓練指令碼,然後遵循其指示。
在更新訓練指令碼之後,即可開始訓練工作。編譯器會繼續編譯模型。然而,訓練速度可能不會增加,甚至可能會相對於未測試模型的基準降低。您可能需要重新調整訓練參數 (例如 batch_size、learning_rate),以便達到任何加速效益。
如未測試模型編譯失敗,編譯器會傳回錯誤。如需失敗類型與錯誤訊息的詳細資訊,請參閱SageMaker Training Compiler 疑難排解。
問:運用 SageMaker Training Compiler 是否總是可加快訓練工作?
不,不一定。首先,在加速正在進行的訓練程序之前,SageMaker Training Compiler 會增加部分編譯額外負荷。最佳化的訓練工作必須執行足夠長的時間,才能攤銷並彌補初期訓練工作的增量編譯額外負荷。
此外,與任何模型訓練程序一樣,若採用非最佳化參數進行訓練可能增加訓練時間。例如,SageMaker Training Compiler 可透過變更工作記憶體用量來變更訓練工作的特性。由於這些差異,您可能需要重新調整訓練工作參數以利加速訓練。請參閱參考表格 測試過的模型,針對不同執行個體類型與模型的訓練工作找到指定的最佳效能參數。
最後,訓練指令碼的部分程式碼可能增加額外負荷,或中斷編譯的運算圖形,導致訓練速度緩慢。如使用自訂或未測試模型,請參閱將 SageMaker Training Compiler 與 PyTorch/XLA 搭配使用的最佳實務的指示。
問:若運用 SageMaker Training Compiler 是否一律可使用較大批次大小?
在多數 (但非全部) 情況,批次大小會增加。SageMaker Training Compiler 所做的最佳化可變更訓練工作的特性,例如記憶體用量。一般而言,相較於使用原生架構的未編譯訓練工作,Training Compiler 工作所佔用的記憶體較少,因此在訓練期間可允許較大批次大小。較大批次大小,加上對學習速率進行相應調整,可增加訓練輸送量,並減少總訓練時間。
然而,在部分情況,SageMaker Training Compiler 實際上可能根據最佳化方案增加記憶體用量。編譯器會使用分析成本模型,針對任何運算密集型運算子,以最低執行成本預測執行排程。此模型可能找到最佳排程,但會增加記憶體用量。在這種情況,您將無法增加批次大小,但範例輸送量仍會較高。
問:SageMaker Training Compiler 可否與其他 SageMaker 訓練功能搭配使用,例如 SageMaker AI 分散式訓練程式庫與 SageMaker Debugger?
SageMaker Training Compiler 目前不相容 SageMaker AI 分散式訓練程式庫。
SageMaker Training Compiler 相容 SageMaker Debugger,但 Debugger 可能增加額外負荷並降低運算效能。
問:SageMaker Training Compiler 是否支援自訂容器 (自有容器)?
SageMaker Training Compiler 是透過 AWS 深度學習容器提供,您可以擴展容器的子集,以針對您的使用案例進行自訂。SageMaker Training Compiler 支援從 AWS DLCs 延伸的容器。如需詳細資訊,請參閱支援的架構與 使用 SageMaker AI Python SDK 和衍伸 SageMaker AI 架構深度學習容器。如需進一步支援,請透過 AWS 支援