项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
技术标签
使用教程
—
环境要求
- Python 3.8-3.10,PyTorch 1.8-2.0(非严格限制,其他版本组合也可能可用)
- 强烈建议使用 Anaconda、虚拟机或其他环境隔离方式,因为项目依赖 DeeperSpeed(DeepSpeed 的 EleutherAI 分支),否则可能破
- 使用 Docker 方式时需具备对应 GPU 驱动、较新的 Docker 以及 nvidia-container-toolkit
- 训练需要 NVIDIA 或 AMD GPU;多节点运行需要 MPI 与 hostfile
安装与启动步骤
-
1克隆代码仓库
README 说明所有命令都在仓库根目录执行,先获取源码并进入该目录。
git clone https://github.com/EleutherAI/gpt-neox.git cd gpt-neox -
2创建隔离环境
README 强烈建议用 Anaconda 等方式隔离环境,避免污染依赖 DeepSpeed 的其他仓库。
conda create -n gpt-neox python=3.10 conda activate gpt-neox -
3安装基础依赖
在仓库根目录安装 requirements.txt,这是运行训练、评估、生成的基础依赖。
pip install -r requirements/requirements.txt -
4按需安装日志依赖
可选。用 WandB、TensorBoard 或 Comet 记录日志时,安装对应的其中一个依赖文件即可。
pip install -r requirements/requirements-wandb.txt -
5验证 GPU 容器环境
Docker 方式的前置检查:能跑通这条官方示例即说明驱动与 runtime 正常。
docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi -
6设置数据与检查点路径
Docker 方式要求导出 NEOX_DATA_PATH(数据目录)和 NEOX_CHECKPOINT_PATH(检查点存取目录)。
export NEOX_DATA_PATH=/mnt/sda/data/enwiki8 export NEOX_CHECKPOINT_PATH=/mnt/sda/checkpoints -
7构建镜像并进容器
在 gpt-neox/containers/docker 目录下构建镜像并开启 shell;长期任务可用 docker compose up -d 后台运行。
cd gpt-neox/containers/docker docker compose run gpt-neox bash -
8启动训练任务
用 deepy.py 启动,第一个参数是脚本,其后依次传入任意多个 YAML 配置文件。
./deepy.py train.py ./configs/20B.yml ./configs/local_cluster.yml
关键配置
| 配置项 | 必填 | 说明 | 示例 |
|---|---|---|---|
NEOX_DATA_PATH | 是 | Docker 方式下指定数据目录,映射到容器内使用 | /mnt/sda/data/enwiki8 |
NEOX_CHECKPOINT_PATH | 是 | Docker 方式下指定检查点存储与加载目录 | /mnt/sda/checkpoints |
pipe-parallel-size | 否 | 流水并行度,需按实际 GPU 数量调整 | 2 |
model-parallel-size | 否 | 张量模型并行度,需按实际 GPU 配置调整 | 4 |
train_micro_batch_size_per_gpu | 否 | 单 GPU 微批次大小,影响显存占用与吞吐 | 4 |
zero_optimization | 否 | 配置优化器状态如何在 worker 间并行切分 | {} |
如何确认成功
Docker 方式下容器内执行 ls -al 能看到 data、chk、gpt-neox 目录;本地方式训练脚本正常输出日志即启动成功。
常见问题
Q:必须用 Anaconda 吗?
A:不是硬性要求,但 README 强烈建议隔离环境:项目依赖 DeeperSpeed(DeepSpeed 的分支),直接装在共用环境里可能导致其他依赖 DeepSpeed 的仓库失效。
Q:Docker 里看不到 GPU 怎么办?
A:先确认已安装 nvidia-container-toolkit,并执行 docker run --rm --runtime=nvidia --gpus all ubuntu nvidia-smi 验证,能正常输出显卡信息后再跑 compose。
Q:不想本地构建镜像怎么办?
A:可改用 DockerHub 预构建镜像,把 compose 命令换成带 -f containers/docker/docker-compose-dockerhub.yml 的形式即可。
Q:多节点训练怎么指定主机列表?
A:设置环境变量 DLTS_HOSTFILE 指向你的 hostfile,供基于 MPI 的 DeepSpeed 启动器使用。
Q:怎么开启训练日志监控?
A:按需安装 requirements-wandb.txt、requirements-tensorboard.txt 或 requirements-comet.txt 中的一种,并在 YAML 配置中启用对应日志后端。
注意事项
- README 给出的是可直接使用的示例配置,但通常不是最优的,需要按自己的 GPU 配置调整并行度与 batch 相关参数
- 以 detached 模式长时间运行时,需手动终止容器;若希望进程在 shell 结束后继续运行需自行后台化,并把日志重定向到磁盘
- Python 3.8-3.10 / PyTorch 1.8-2.0 不是严格限制,其他版本组合也可能工作
- 支持通过 Slurm、MPI 和 IBM Job Step Manager 启动,并已在 NVIDIA 与 AMD GPU 的多种集群上运行
核心亮点
- 基于Megatron+DeepSpeed,支持张量/流水/数据三维并行,可扩展到数千GPU
- 提供完整预训练脚本与配置,Pythia系列模型即由此训练,工程验证充分
- 与Hugging Face权重格式兼容,训练后可直接用于微调和推理生态
不足之处
- 配置项繁多,分布式调参门槛高,新手不易跑通
- 主要面向NVIDIA GPU集群,单机或非CUDA环境支持有限
适用场景
- 学术团队预训练百亿参数级开源语言模型
- 企业基于自有语料从零训练行业大模型
- 研究并行训练策略与扩展律的实验平台
替代项目
Megatron-LM、DeepSpeed、Colossal-AI
上一篇:sdnq
同类项目推荐
Long-RL
开源
让强化学习轻松驾驭超长序列,训练更稳更快
Long-RL: Scaling RL to Long Sequences (NeurIPS 2025)
TPA
开源
把注意力复杂度从平方降到线性,长序列不再卡顿
[NeurIPS 2025 Spotlight] TPA: Tensor ProducT ATTenTion Transformer (https://arxiv.or···
minimind
开源
两小时造出你的小模型,练手入门不求人
Train a 64M-parameter LLM from scratch in just 2h!
pruna
开源
一键优化 AI 模型,推理提速又省资源。
Pruna is a model optimization framework built for developers, enabling you to delive···
