nanoGPT
nanoGPT 是极简、高效的 GPT 训练/微调仓库,代码清晰易改,支持从零训练或微调 GPT-2 等中等规模模型,适合学习与实践。
过去 7 天收获 3 颗 Star
爱鲜报评分
0.0
0 人评分
64k
星数
否
中文
Python
主语言
是
活跃
37
贡献者
人工分析
EDITORIAL推荐理由
代码极简(约 300 行训练循环 + 300 行模型定义),是理解 GPT 训练全流程的绝佳教材。支持从 Shakespeare 字符级小模型到 GPT-2 124M 复现,兼顾入门与进阶。虽然作者已标记为弃用并推荐 nanochat,但作为教学与实验基线仍极具价值。
适用场景
- 学习 GPT 模型结构与训练流程
- 从零训练小型字符级语言模型
- 复现 GPT-2 124M 训练结果
- 微调预训练 GPT-2 检查点
- 作为自定义训练实验的代码基线
优点
- 代码极简可读,易于修改和扩展
- 支持从零训练与微调预训练权重
- 提供完整训练、采样、数据预处理脚本
- 在单 GPU 或多 GPU 节点上均可运行
- MIT 许可证,使用自由
缺点
- 作者已标记为弃用,推荐转向 nanochat
- 复现 GPT-2 需要多卡 A100 等较高算力
- 默认依赖较旧版本库(如 PyTorch <3)
- 缺少中文文档与中文社区支持
上手难度
进阶
nanoGPT 简介
nanoGPT 是 Andrej Karpathy 开发的极简 GPT 训练/微调仓库,主打「代码简单、训练快速」。它重写了 minGPT,更注重实用性,train.py 约 300 行训练循环,model.py 约 300 行 GPT 模型定义,可选加载 OpenAI GPT-2 权重。
注意:作者已于 2025 年 11 月标记该仓库为弃用,并推荐使用其改进版 nanochat。nanoGPT 仍保留作为教学与历史参考。
核心特性
- 极简代码:训练循环与模型定义各约 300 行,易于阅读和修改。
- 灵活训练:支持从零训练新模型,或微调预训练检查点(如 GPT-2 1.3B)。
- 完整流程:包含数据预处理、训练、采样脚本。
- 多硬件支持:可在 CPU、单 GPU、多 GPU 节点上运行。
快速开始
安装依赖:
pip install torch numpy transformers datasets tiktoken wandb tqdm
字符级 Shakespeare 训练(入门)
准备数据:
python data/shakespeare_char/prepare.py
在 GPU 上训练小型 GPT:
python train.py config/train_shakespeare_char.py
采样生成文本:
python sample.py --out_dir=out-shakespeare-char
在 CPU 上可调整参数运行:
python train.py config/train_shakespeare_char.py --device=cpu --compile=False --eval_iters=20 --log_interval=1 --block_size=64 --batch_size=12 --n_layer=4 --n_head=4 --n_embd=128 --max_iters=2000 --lr_decay_iters=2000 --dropout=0.0
复现 GPT-2 (124M)
准备 OpenWebText 数据:
python data/openwebtext/prepare.py
使用 8 卡 A100 训练约 4 天:
torchrun --standalone --nproc_per_node=8 train.py config/train_gpt2.py
多节点训练可通过 torchrun 指定 --nnodes、--node_rank 等参数。
适用人群
- 想深入理解 GPT 训练全流程的开发者
- 需要轻量级训练基线进行实验的研究者
- 希望微调 GPT-2 的学习者
注意事项
- 仓库已弃用,新项目建议评估 nanochat。
- 复现 GPT-2 需要较高算力(多卡 A100)。
- 依赖库版本较旧,安装时注意兼容性。
评论
- 暂无评论,来写第一条吧。