EleutherAI/gpt-neox

An implementation of model parallel autoregressive transformers on GPUs, based on the Megatron and DeepSpeed libraries

什麼是 GPT‑NeoX?

GPT‑NeoX 是一個開源函式庫,用於在 GPU 叢集上訓練非常大的自迴歸語言模型(想想數十億個參數)。它建構於 NVIDIA 的 Megatron‑LM 程式碼庫之上,加入了 DeepSpeed 風格的最佳化,並包含了大量的工程設計,使大規模訓練能在許多超級運算環境(AWS、Summit、Frontier、LUMI 等)中實際執行。

誰會使用它?

  • 研究實驗室:想要從頭訓練新的 LLM 或繼續訓練現有的 LLM。
  • 工程師:需要一個可在 Slurm、MPI 或 IBM Job Step Manager 叢集上運行的生產級訓練堆疊。
  • 任何人:已經擁有多節點、多 GPU 訓練的運算預算,並希望有一個免設定(turnkey)框架,而不是從低階 PyTorch 建構一切。

如果您只需要對現有模型執行推論,README 建議改用 Hugging Face transformers

核心功能(如 README 中所述)

功能 意義
分散式訓練 支援 ZeRO 階段最佳化和 3D 平行處理(資料、張量、管線),將模型分散到多個 GPU 上。
硬體靈活性 適用於 NVIDIA 和 AMD GPU,可透過 Slurm、MPI、pdsh 或 IBM Job Step Manager 啟動,並已在雲端(AWS、CoreWeave)和許多超級電腦(Summit、Frontier、Polaris、LUMI)上運行。
現代模型技巧 包含 rotary 和 alibi 位置嵌入、flash attention、並行前饋層,以及支援 Mixture‑of‑Experts、RWKV、Mamba 和其他新興架構。
課程學習與偏好學習 內建課程排程管線和最近的微調方法,如 DPO、KTO 和獎勵建模。
生態系整合 使用 Hugging Face tokenizers/transformers,將日誌記錄到 WandB、Comet、TensorBoard,並可使用 EleutherAI LM‑Evaluation‑Harness 進行評估。
匯出 訓練好的檢查點可以轉換為 Hugging Face 格式,用於下游推論。
容器支援 提供 Docker 和 Apptainer 映像檔以用於可重現的環境。

如何開始使用(快速入門大綱)

  1. 設定 Python 環境(Python 3.8‑3.10,PyTorch 1.8‑2.0),並透過 requirements/*.txt 檔案安裝必要的套件。
  2. 選擇啟動方法 – 例如 Slurm、MPI 或預設的 pdsh。建立一個描述節點/GPU 的 hostfile。
  3. 挑選或編寫設定檔 – 該儲存庫提供了針對熱門模型大小(1‑3 B、20 B 等)和架構(Pythia、PaLM、Falcon、LLaMA 1/2)的 YAML 設定檔。
  4. 使用輔助腳本執行訓練
    python3 deepy.py train.py /path/to/your/config.yml
    
  5. 透過 WandB、Comet 或 TensorBoard 監控,並選擇性地將檢查點儲存到 S3。
  6. 將最終的檢查點匯出為 Hugging Face 格式以進行推論。

什麼時候適合使用

  • 您只需要對現有模型進行推論(使用 transformers)。
  • 您沒有多 GPU 叢集的存取權限或數十億參數訓練的預算。
  • 您偏好更高階、單節點的訓練器(例如 Lightning、FastChat),這類訓練器抽象化了低階的啟動細節。

去哪裡尋找更多資訊

  • 採用與發表章節列出了使用過 GPT‑NeoX 的實驗室和論文。
  • 授權與貢獻詳細資訊位於該儲存庫的管理備註中。
  • 容器位於 containers/ 目錄下,適用於 Docker 或 Apptainer。

總結: GPT‑NeoX 是一個嚴肅的、生產等級的大型語言模型訓練框架,專為需要在不同 HPC 環境中執行大規模分散式訓練任務的研究人員和工程師而設計。它不是一個玩具展示或簡單的推論函式庫。

相關

  • 專案
  • 專案
  • 專案
  • 專案