Py学习  »  chatgpt

100美元、仅8000行代码,复现ChatGPT,Karpathy:这是我写过的最疯狂的项目

Founder Park • 1 周前 • 81 次点击  

本篇内容转载自「新智元」

100美元、4个小时、仅8000行代码,就能复现出一个专属的ChatGPT。

特斯拉前AI总监、OpenAI创始成员 Andrej Karpathy 发布了其全新开源项目「nanochat」,一个极简但完整的「从零构建ChatGPT」训练框架。

Karpathy 说这是他写过的最疯狂的项目之一。

在项目刚放出还不到12个小时内,GitHub星标就破了 4.2kStar。

与早期的nanoGPT不同,nanochat不仅涵盖预训练,还囊括了从数据准备、预训练、中期训练(对话、多项选择题、工具使用)、SFT、RL微调到推理部署的全流程。

整个系统仅约8000行干净代码,启动一台GPU机器、运行一条脚本,4小时后你就能在网页界面与自己训练的「小ChatGPT」对话。

Karpathy将其称为LLM101n的「压轴之作」,同时也可能成为未来研究基线和开源社区的实验平台。

GitHub项目地址:https://github.com/karpathy/nanochat


超 15000 人的「AI 产品市集」社群!不错过每一款有价值的 AI 应用。

邀请从业者、开发人员和创业者,飞书扫码加群: 
进群后,你有机会得到:
  • 最新、最值得关注的 AI 新品资讯; 

  • 不定期赠送热门新品的邀请码、会员码;

  • 最精准的AI产品曝光渠道



01 

如何实现的?

让我们看看是如何仅仅用8000行来「克隆」ChatGPT:

  • 使用全新的Rust实现训练分词器

  • 在FineWeb上对TransformerLLM进行预训练,评估多个指标下的CORE分数

  • 在来自SmolTalk的用户-助手对话、多项选择题、工具使用数据上进行中期训练

  • 进行SFT,在世界知识多项选择题(ARC-E/C、MMLU)、数学(GSM8K)、代码(HumanEval)上评估聊天模型

  • 使用「GRPO」在GSM8K上对模型进行强化学习微调(RL)

  • 在带有KV缓存的引擎中实现高效推理,简单的预填充/解码,工具使用(在轻量级沙箱中的Python解释器),通过CLI或类ChatGPT的网页界面与其交互。

  • 撰写一份单一的Markdown成绩单,总结并将整个过程游戏化。

项目全程花费低至约100美元(约在一台8XH100节点上训练4小时)

可以训练、克隆一个可以对话的小型ChatGPT,它能创作故事/诗歌、回答简单问题。

只需要训练约12小时即可超过GPT-2的核心指标

随着进一步扩展到约1000美元(约41.6小时训练),模型会迅速变得更连贯,能解决简单的数学/代码问题并做多项选择题。

训练24小时的模型(其FLOPs大致相当于GPT-3Small125M,约为GPT-3的1/1000)在MMLU上能进入40分段,在ARC-Easy上进入70分段,在GSM8K上进入20分段等。

总结一下就是:

  • 100美元→可训练出一个能写诗、回答基础问题的OpenAI同款「小型ChatGPT」;

  • 1000美元→达到近GPT-2以上的表现,可做基础推理与代码生成。

这个项目体现出他的核心理念:

「降低 LLM 研究与复现门槛,让每个人都能亲手训练自己的模型。」

这种民主化路线,与他在nanoGPT时期倡导的「从零实现Transformer」如出一辙。

项目地址:https://github.com/karpathy/nanoGPT

Karpathy说他的目标是把完整的「强基线」栈整合到一个连贯、极简、可读、可修改、可最大化派生的仓库中。

nanochat将成为LLM101n(仍在开发中)的压轴项目。

Karpathy认为nanochat也有可能发展成一个研究工具或基准,就像之前的nanoGPT一样。

nanoGPT教你造大脑,nanochat教你造ChatGPT。

如果说nanoGPT是「Transformer源码教学项目」。

那么,nanochat则是「LLM生态系统微缩版」、OpenAI同款、你的专属AI。

二者关系可理解为「从神经网络基础到产品级对话系统」的两步闭环。

从Vibe Coding到nanoGPT,再到如今的nanochat,Karpathy不愧是「AI教育者」的最佳代言人。

这一「疯狂之作」并非狂想,而是Karpathy对AI开放、可学习、可复现理想的又一次践行。


02 

小型 ChatGPT 效果展示

Karpathy在WebUI部署了nanochat项目。

他还给出了「与价格为100美元、运行4小时的」nanochat的示例对话。

很……有趣!

下面这张图展示的是Karpathy在nanochat「$100速度跑」实验(即只用一台GPU、约4小时训练出的ChatGPT 小模型)中生成的「成绩单」部分内容,说明模型规模、训练耗时、以及在各类标准评测上的性能。

  • Characters: 333989 —— 代码总字符数。

  • Lines: 8304 —— 大约 8300 行干净、注释良好的代码。

  • Files: 44 —— 工程文件数量。

  • Tokens: 约83,497 —— 代码中的token数(大致对应8万词)。

  • Dependencies: 2004行uv.lock依赖清单 —— 表明依赖极少、项目结构轻。

这些数字展示了nanochat的「极简」精神:完整实现了 ChatGPT 的训练、微调与推理,却仍保持在8000行代码以内。

图片
更多阅读

硅谷一线创业者内部研讨:为什么只有 5%的 AI Agent 落地成功,他们做对了什么?

Sam Altman:我承认我之前错了,AI 超级助手才是 OpenAI 真正想要的

对话 Plaud 莫子皓:你还记得 PMF 的感觉吗?

谁在赚钱,谁爱花钱,谁是草台班子,2025 年度最全面的 AI 报告

为什么 OpenAI 们都要搞 AI 基建?Groq 创始人把背后的逻辑讲透了


转载原创文章请添加微信:founderparker

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/187863