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 环境中运行大规模分布式训练作业的研究人员和工程师而设计。它不是一个玩具演示或简单的推理库。

相关

  • 项目
  • 项目
  • 项目
  • 项目