nanochat 2026:Andrej Karpathy 开源「百元 ChatGPT」——8000 行全栈 LLM 训练管道
由 Andrej Karpathy 开发的 nanochat 是完整的 LLM 训练管道——分词器、预训练、微调、评估、推理和聊天 UI,设计目标:在单节点 8×H100 上用不到 100 美元从零训练一个 GPT-2 级聊天机器人。
- ⭐ 54700
- Python
- PyTorch
- Rust
- LLM Training
- MIT
- 更新于 2026-06-09

2025年10月,Andrej Karpathy 发布了 nanochat,宗旨简单明了:“花100美元能买到的最好 ChatGPT”。到 2026 年 6 月已积累 54,700 个 GitHub Star,成为开源社区阅读量最大的 LLM 训练教程。
nanochat 是什么(和不是什么) #
nanochat 不是对现有模型的封装,不是部署工具。它是完整的工厂:
- 分词器(Rust) — 从零在自己的数据上训练的 BPE 分词器,用 Rust 实现,速度快
- 预训练(PyTorch) — 在 FineWeb 上训练 Transformer,支持 FlashAttention-2、BF16 混合精度
- 微调(SFT) — 在 SmolTalk 对话数据、多选题和工具使用数据上微调
- 评估 — 自动运行 CORE 基准测试,输出推理/知识/编程/指令跟随分数
- 推理服务器 — 兼容 OpenAI chat completions 接口的 HTTP API
- 聊天 UI — 极简网页界面,可以直接对话
全部约 8000 行 Python 和 Rust。
百元训练成本 #
| 配置 | 时费 | 训练时间 | 总费用 |
|---|---|---|---|
| 8× H100 (SXM5) | ~$24 | 2 小时 | ~$48 |
| 8× A100 (80GB) | ~$16 | 4 小时 | ~$64 |
| 8× H100 (PCIe) | ~$18 | 3 小时 | ~$54 |
可在 Lambda Labs、CoreWeave、vast.ai 或 RunPod 租用节点。
关键训练命令 #
# 训练分词器
python tokenize_dataset.py --dataset fineweb --vocab-size 32768
# 单节点 8GPU 预训练
torchrun --nproc_per_node=8 train_pretrain.py \
--config configs/pretrain_fineweb_120m.yaml
# 监督微调
torchrun --nproc_per_node=8 train_sft.py \
--pretrain-checkpoint checkpoints/pretrain_final.pt \
--config configs/sft_smoltalk.yaml
# 启动推理服务器
python serve.py --checkpoint checkpoints/sft_final.pt --port 8000
适用人群 #
- 用 nanochat:想从头理解 LLM 原理;需要可修改基准的研究者;要在自有数据上预训练领域模型;讲授 LLM 课程
- 不用 nanochat:只想本地运行现有模型 → 用 Ollama;需要生产级大规模推理 → 用 vLLM
2026 新增:autoresearch #
2026年3月,Karpathy 发布 autoresearch,AI agent 自动提交训练配置、监控 CORE 基准结果、提出假设驱动的后续实验。这是目前 nanochat 生态中最活跃的项目。
需要 GPU 算力训练模型? DigitalOcean 新用户享 $200 免费额度,足够运行多次完整 nanochat 训练实验。GPU Droplet 按需使用,无长期承诺。
GitHub: karpathy/nanochat · 54.7k ⭐ · MIT
💬 留言讨论