AX 爱鲜报

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)。
  • 依赖库版本较旧,安装时注意兼容性。

评论

登录后才可评论与评分

0 条评论

  • 暂无评论,来写第一条吧。