跳到正文
IFAI

开源项目

Karpathy 开源 nanochat:8000 行代码、100 美元手搓一个 ChatGPT

首次发布 传播指数 50

Andrej Karpathy 开源项目 nanochat。它仅用约 8000 行代码,就打通从分词、预训练、SFT、强化学习到推理界面的全栈流程。在 8 张 H100 上花约 100 美元跑 4 小时,就能训出一个能聊天的基础模型。该项目还将作为其 LLM101n 课程的结业大作业。

Karpathy 开源 nanochat:8000 行代码、100 美元手搓一个 ChatGPT
图:x.com

nanochat 是 Andrej Karpathy 开源的一个最小化全栈 ChatGPT 复刻项目。它用大约 8000 行干净的代码,把大语言模型从零造到能聊天的完整流水线,全塞进了一个极少依赖的代码仓库里。

你租一台云端 GPU 服务器,跑一个脚本,最快 4 个小时之后,就能在类似 ChatGPT 的网页界面里跟自己训出来的模型对话。

它能做什么

比起之前只做预训练的 nanoGPT,nanochat 覆盖了现代大模型后训练的整套流程。

仓库里包含用 Rust 新写的分词器训练代码,接着在 FineWeb 数据集上预训练 Transformer 架构,并用 CORE 分数做综合评估。

随后是基于 SmolTalk 等数据集的中训阶段,加入问答、单选以及工具调用;再经过 SFT 监督微调,在 MMLU、ARC、GSM8K 和 HumanEval 上跑测试。

它甚至包含可选的 GRPO 算法,用来在 GSM8K 数学任务上做强化学习。推理引擎则内置了 KV 缓存和简单的 Prefill/Decode 逻辑,配有一个轻量沙箱里的 Python 解释器来实现工具调用,最后自动生成一份汇总成绩单。

成本与效果

跑这个项目的门槛被压得很低。在 8 张 H100 的节点上跑约 4 小时,花费大概 100 美元,就能得到一个能写诗、写故事、回答简单问题的基础对话模型。

训练跑满 12 小时左右,模型的 CORE 指标就能超过当年的 GPT-2。

如果把算力预算拉到 1000 美元左右(训练约 41.6 小时),它的逻辑表达会连贯得多,能做简单的数学题和代码题。例如一个 30 层的模型训练 24 小时后,总浮点运算量相当于 GPT-3 小型版(125M),ARC-Easy 得分能摸到 70 左右,MMLU 在 40 左右,GSM8K 也能拿到 20 左右。

Karpathy 表示代码远未达到极限优化,还有大量唾手可得的提升空间。nanochat 将作为他正在开发的课程 LLM101n 的结业大作业,代码和复现流程已全部开源在 GitHub 上。

为什么重要

对于想真正搞懂大模型内部细节的开发者或高校研究人员,nanochat 是目前最干净的实践蓝本。过去你想搞清楚预训练、SFT 和强化学习是怎么串起来的,得在几个庞大臃肿的开源框架之间来回倒腾,而 nanochat 用几千行无依赖的代码就把整个黑盒拆开了。

和那些动辄上万行配置的生产级框架相比,它不追求极致吞吐,核心价值在于极高的可读性与可修改性。如果你有一笔几百美元的算力预算,想自己魔改算法做实验,或者单纯想完整走一遍造模型的全过程,现在直接克隆这个仓库上手是最顺畅的路径。

来源 (1)

  1. [1]
    @karpathy(在新标签页打开)原文x.com

每日 AI 内容精选