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