GitHub 儲存庫 - Amazon SageMaker AI

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

GitHub 儲存庫

若要啟動訓練任務,您可以利用來自兩個不同 GitHub 儲存庫的檔案:

這些儲存庫包含啟動、管理和自訂大型語言模型 (LLM) 訓練程序的必要元件。您可以使用儲存庫中的指令碼來設定和執行 LLMs的訓練任務。

HyperPod 配方儲存庫

使用 SageMaker HyperPod 配方儲存庫取得配方。

  1. main.py:此檔案可做為啟動將訓練任務提交至叢集或 SageMaker 訓練任務程序的主要進入點。

  2. launcher_scripts:此目錄包含一系列常用指令碼,旨在促進各種大型語言模型 (LLMs) 的訓練程序。

  3. recipes_collection:此資料夾包含由開發人員提供的預先定義 LLM 配方的編譯。使用者可以將這些配方與其自訂資料結合使用,來訓練根據其特定需求量身打造的 LLM 模型。

您可以使用 SageMaker HyperPod 配方來啟動訓練或微調任務。無論您使用的叢集為何,提交任務的程序都相同。例如,您可以使用相同的指令碼將任務提交至 Slurm 或 Kubernetes 叢集。啟動器會根據三個組態檔案來分派訓練任務:

  1. 一般組態 (config.yaml):包括常見設定,例如訓練任務中使用的預設參數或環境變數。

  2. 叢集組態 (叢集):僅適用於使用叢集的訓練任務。如果您要將訓練任務提交至 Kubernetes 叢集,您可能需要指定資訊,例如磁碟區、標籤或重新啟動政策。對於 Slurm 叢集,您可能需要指定 Slurm 任務名稱。所有參數都與您正在使用的特定叢集相關。

  3. 配方 (配方):配方包含訓練任務的設定,例如模型類型、分片程度或資料集路徑。例如,您可以將 Llama 指定為訓練模型,並使用模型或資料平行處理技術進行訓練,例如八個機器的全碎片分散式平行 (FSDP)。您也可以為訓練任務指定不同的檢查點頻率或路徑。

指定配方之後,您可以執行啟動器指令碼,根據透過main.py進入點的組態,在叢集上指定end-to-end訓練任務。對於您使用的每個配方,在 launch_scripts 資料夾中都有隨附的 shell 指令碼。這些範例會引導您提交和啟動訓練任務。下圖說明 SageMaker HyperPod 配方啟動器如何根據上述內容將訓練任務提交至叢集。目前,SageMaker HyperPod 配方啟動器建置在 Nvidia NeMo Framework 啟動器之上。如需詳細資訊,請參閱 NeMo 啟動器指南

說明 HyperPod 配方啟動器工作流程的圖表。左側的虛線方塊內有三個檔案圖示,分別標示為「配方」、「組態.yaml」和「slurm.yaml 或 k8s.yaml 或 sm_job.yaml (叢集組態)」。箭頭從此方塊指向名為「HyperPod 配方啟動器」的中央方塊。從這個中央方塊,另一個箭頭指向「訓練任務」,其中「main.py」寫在箭頭上方。

HyperPod 配方轉接器儲存庫

SageMaker HyperPod 訓練轉接器是一種訓練架構。您可以使用它來管理訓練任務的整個生命週期。使用轉接器將模型的預先訓練或微調分散到多個機器。轉接器使用不同的平行處理技術來分發訓練。它還處理儲存檢查點的實作和管理。如需詳細資訊,請參閱進階設定

使用 SageMaker HyperPod 配方轉接器儲存庫來使用配方轉接器。

  1. src:此目錄包含大規模語言模型 (LLM) 訓練的實作,包含模型平行處理、混合精度訓練和檢查點管理等各種功能。

  2. examples:此資料夾提供一組範例,示範如何建立用於訓練 LLM 模型的進入點,做為使用者的實際指南。