本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
GitHub 儲存庫
若要啟動訓練任務,您可以利用來自兩個不同 GitHub 儲存庫的檔案:
這些儲存庫包含啟動、管理和自訂大型語言模型 (LLM) 訓練程序的必要元件。您可以使用儲存庫中的指令碼來設定和執行 LLMs的訓練任務。
HyperPod 配方儲存庫
使用 SageMaker HyperPod 配方
-
main.py
:此檔案可做為啟動將訓練任務提交至叢集或 SageMaker 訓練任務程序的主要進入點。 -
launcher_scripts
:此目錄包含一系列常用指令碼,旨在促進各種大型語言模型 (LLMs) 的訓練程序。 -
recipes_collection
:此資料夾包含由開發人員提供的預先定義 LLM 配方的編譯。使用者可以將這些配方與其自訂資料結合使用,來訓練根據其特定需求量身打造的 LLM 模型。
您可以使用 SageMaker HyperPod 配方來啟動訓練或微調任務。無論您使用的叢集為何,提交任務的程序都相同。例如,您可以使用相同的指令碼將任務提交至 Slurm 或 Kubernetes 叢集。啟動器會根據三個組態檔案來分派訓練任務:
-
一般組態 (
config.yaml
):包括常見設定,例如訓練任務中使用的預設參數或環境變數。 -
叢集組態 (叢集):僅適用於使用叢集的訓練任務。如果您要將訓練任務提交至 Kubernetes 叢集,您可能需要指定資訊,例如磁碟區、標籤或重新啟動政策。對於 Slurm 叢集,您可能需要指定 Slurm 任務名稱。所有參數都與您正在使用的特定叢集相關。
-
配方 (配方):配方包含訓練任務的設定,例如模型類型、分片程度或資料集路徑。例如,您可以將 Llama 指定為訓練模型,並使用模型或資料平行處理技術進行訓練,例如八個機器的全碎片分散式平行 (FSDP)。您也可以為訓練任務指定不同的檢查點頻率或路徑。
指定配方之後,您可以執行啟動器指令碼,根據透過main.py
進入點的組態,在叢集上指定end-to-end訓練任務。對於您使用的每個配方,在 launch_scripts 資料夾中都有隨附的 shell 指令碼。這些範例會引導您提交和啟動訓練任務。下圖說明 SageMaker HyperPod 配方啟動器如何根據上述內容將訓練任務提交至叢集。目前,SageMaker HyperPod 配方啟動器建置在 Nvidia NeMo Framework 啟動器之上。如需詳細資訊,請參閱 NeMo 啟動器指南

HyperPod 配方轉接器儲存庫
SageMaker HyperPod 訓練轉接器是一種訓練架構。您可以使用它來管理訓練任務的整個生命週期。使用轉接器將模型的預先訓練或微調分散到多個機器。轉接器使用不同的平行處理技術來分發訓練。它還處理儲存檢查點的實作和管理。如需詳細資訊,請參閱進階設定。
使用 SageMaker HyperPod 配方轉接器儲存庫
-
src
:此目錄包含大規模語言模型 (LLM) 訓練的實作,包含模型平行處理、混合精度訓練和檢查點管理等各種功能。 -
examples
:此資料夾提供一組範例,示範如何建立用於訓練 LLM 模型的進入點,做為使用者的實際指南。