karpathy/nanochat

The best ChatGPT that $100 can buy.

解决的问题

nanochat 提供了一个极简、可修改且成本效益高的框架,用于从头开始训练大型语言模型(LLMs)。它消除了 LLM 开发中的认知和财务复杂性,使用户能够在单个 GPU 节点上以不到 100 美元的成本完成从分词、预训练、微调、评估到推理的完整流程。

如何工作

该项目围绕一个单一的「复杂度旋钮」--depth(Transformer 层数)构建。当用户设置深度时,系统会自动计算所有其他最优超参数,包括 Transformer 宽度、头数、学习率和权重衰减。它使用自定义的 Linear 层显式管理精度(例如 bfloat16 或 float32),而不是依赖自动类型转换,从而更好地控制显存占用和性能。

适用人群

  • 研究人员:希望实验缩放定律和微模型性能的用户。
  • 开发者:希望获得一个可读性强、可作为「强基线」的代码库,以理解端到端 LLM 生命周期的用户。
  • 爱好者:希望在预算内训练 GPT-2 级别模型的用户。

主要亮点

  • 端到端流程:涵盖从 BPE 分词、预训练到 SFT、RL 以及 CLI 聊天的完整流程。
  • 计算最优:根据模型深度自动调整超参数,确保最佳性能。
  • 高效率:在 8XH100 GPU 节点上,约 1.5 小时即可训练出 GPT-2 级别模型。
  • 极简设计:避免复杂的配置对象或工厂模式,保持代码易于 fork 和阅读。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • Dispatch