
9 月
nanochat:Karpathy 用 8000 行代码教你 100 美元复刻 ChatGPT,GitHub 已 5.7 万 star
一句话结论:Karpathy 开源了 nanochat——一个用约 8000 行 Python(PyTorch)写成的端到端 ChatGPT 复刻工具链,从数据、训练到推理、WebUI 一条龙,GitHub 已 57857 star,是理解「一个 ChatGPT 到底怎么造出来」的最小可读范本。
AI 摘要
- 项目用途:从零训练并部署一个「简化版 ChatGPT」的最小完整工具链。
- 适合人群:想看懂 LLM 全流程的开发者、Karpathy 课程的学员、想从原理层理解大模型的工程师。
- 上手门槛:低到中,需要一点 PyTorch 基础,但代码结构极简、单文件可读。
- 智盒结论:它不是生产工具,而是一份「可运行、可 fork、可魔改」的教材,学习价值远大于实用价值。
nanochat 是什么?
nanochat 是 Andrej Karpathy(前特斯拉 AI 总监、OpenAI 创始成员)发布的开源项目,GitHub 仓库 karpathy/nanochat,MIT 协议,截至 2026 年 9 月 8 日已有 57857 star、8076 fork。它的定位写得很直白——「The best ChatGPT that $100 can buy」,用 100 美元预算就能复刻一个能对话的 ChatGPT。整个代码库以 Python(PyTorch)为主,tokenizer 部分用了少量 Rust,主打「极简、易读、可改、可 fork」。
为什么 Karpathy 要重新造一个 ChatGPT?
Karpathy 此前的 nanoGPT 只做了预训练,很多想学 LLM 的人卡在「训练完怎么用起来」这一步。nanochat 把缺口补上了:它是一条完整的端到端链路,从数据预处理、分词、预训练,到带 KV cache 的高效推理引擎、工具调用(轻量沙箱里的 Python 解释器),再到 CLI 和类 ChatGPT 的 WebUI 交互界面,全部打包装进一个逻辑连贯的仓库。Karpathy 自己说这是「我写过最疯狂的作品之一」,目标不是性能,而是把「强 benchmark 工具链」浓缩成一份能从头到尾读懂、改动的代码。
8000 行代码里到底装了什么?
整个项目大约 8000 行代码,却覆盖了 LLM 的完整生命周期。核心能力可以拆成四块:数据与分词、训练、推理、交互。推理引擎是亮点之一——它实现了 KV cache,支持简单的 prefill/decode 分离,能在消费级硬件上流畅跑起来;工具调用则让模型可以操纵一个轻量沙箱里的 Python 解释器,这在「最小复刻」项目里相当少见。对我们之前写过的一类「给 Agent 喂结构」的工具,比如 graphify 用确定性 AST 建代码知识图谱(它的 token 削减实测恰好用的就是 Karpathy 的仓库),nanochat 提供了另一面:从「怎么训练出一个能对话的模型」角度补全认知。

为什么说「100 美元就能买到最好的 ChatGPT」
这里的「100 美元」说的是训练预算。nanochat 的设计哲学是「用最小的钱、最少的代码、最短的时间,跑通完整闭环」,让个人开发者也能在普通 GPU 上复现训练过程。它没有追求 SOTA 跑分,而是追求「你能看懂每一行为什么这么写」。这也是它和商用大模型的本质区别:后者是黑盒,前者是拆开给你看的教学标本。如果你想系统理解这套 Agent/LLM 的底层机制,我们整理的 learn-claude-code 17 章课程解读 可以作为一个互补入口——一个讲「怎么用」,一个讲「怎么造」。

它能拿来做什么?
最直接的用途有三个:一是当教材,跟着代码走一遍 LLM 训练到部署的全流程;二是当底座,fork 之后魔改出自己的实验模型或课程作业;三是当 benchmark,用它验证你对模型架构、tokenizer、推理引擎的理解。它已经被 Karpathy 定位为 LLM 101 n 课程的核心项目,未来可能像 nanoGPT 一样演化成一个研究工具或评测框架。如果你更关心怎么在有限的本地硬件上把大模型跑起来,可以看 slotstream 如何在 48 GB Mac 上跑 105 GB 的 Qwen。
适合谁上手,谁该绕道?
适合的人很明确:想系统学 LLM 原理的开发者、准备上 Karpathy 课程的学员、需要一份「能跑的最小实现」做教学或二次开发的工程师。该绕道的也清楚:追求生产级性能或想要开箱即用的聊天机器人,nanochat 不是答案,它的价值在于「教」而不是「用」。另外,虽然代码结构极简,但完全零基础的话仍需补一点 PyTorch 和大模型基础。
风险与限制
- License:MIT,商用、修改、分发均友好。
- 项目活跃度:star 5.7 万、fork 8000+,且 9 月 8 日仍在更新,社区热度高。
- 技术门槛:需要 PyTorch 基础;它不是即用型产品,投入的是学习时间而非「一键部署」。
- 性能边界:作为教学项目,不追求 SOTA,别拿它和商用大模型比跑分。
FAQ
这个项目可以商用吗?
可以。MIT 协议,商用、修改、分发均无特殊限制,适合直接 fork 做二次开发。
新手能不能直接跑起来?
能,但需要一点 PyTorch 基础。代码结构极简、单文件可读,跟着 README 走即可复现训练和推理;完全零基础的话,建议先补大模型和 PyTorch 入门。
它和 ChatGPT 有什么区别?
nanochat 是「教你造一个 ChatGPT」的教学项目,能力远不及真正的 ChatGPT,但代码完全透明、可读、可改;ChatGPT 是闭源黑盒。它的价值在于学习,不在实用。
它和 nanoGPT 是什么关系?
nanoGPT 只做预训练,nanochat 在其思路上升级为端到端完整工具链,补上了推理、工具调用、WebUI 等「训练完怎么用」的环节。
参考来源
- GitHub: karpathy/nanochat(README、代码结构)
- boardor.com《8000 行 Python 和 Rust 复刻 ChatGPT,14.5 k star…》2026-09-06











评论 (1)
[…] nanochat 那套「一台机器跑完整训练」 […]
评论被关闭。