首页 排行榜文章正文

8000行手写代码!nanochat,从0造ChatGPT级模型的极简工具

排行榜 2025年10月18日 01:21 0 aa

特斯拉前AI总监、OpenAI创始成员Karpathy最近扔了个“技术炸弹”,他刚开源的项目nanochat,在GitHub上没几天就飙到14.5kStar。

这东西跟他之前搞的nanoGPT完全不一样,nanoGPT只算个“半成品”,只能做模型预训练,而nanochat是套全流程工具,从训练模型到跟模型聊天,一个文件就搞定,依赖项少得可怜。

8000行手写代码!nanochat,从0造ChatGPT级模型的极简工具

整个项目就8000行代码,大部分是Python(用了PyTorch),就加了点Rust写分词器。

以前看LLM工具总觉得“得懂一堆技术才能玩”,但nanochat这极简设计,反而让我觉得“普通人好像也能试试训自己的模型了”。

100美元4小时:训出能聊天的“迷你ChatGPT”

Karpathy自己都说,nanochat是“100美元能买到的最好ChatGPT”。

8000行手写代码!nanochat,从0造ChatGPT级模型的极简工具

这话不是吹的,你只要租台云GPU服务器,跑个脚本,最快4小时就能拿到一个能对话的模型。

这模型能干嘛?写小故事、编首小诗,回答点简单问题都没问题。

要是多训会儿,比如12小时,性能就能超过GPT-2。

我特意去看了他给的测试数据,要是把成本提到1000美元,训上40多个小时,模型还能解简单数学题、写点代码,甚至答几道选择题,比如在MMLU(世界知识题)能拿40多分,ARC-Easy(科学常识题)能拿70多分,虽然跟GPT-3、GPT-4比差远了,但这个成本能做到这步,已经很离谱了。

8000行手写代码!nanochat,从0造ChatGPT级模型的极简工具

更方便的是,nanochat把“训模型”的全流程都包了。

从用Rust写的分词器(帮模型认词),到在FineWeb数据集上做预训练(给模型喂基础数据),再到用SmolTalk数据集做中期训练(教模型理解对话),最后还有指令微调(SFT)和强化学习(RL),一套下来不用自己找别的工具拼。

训完之后还能自动生成Markdown报告,用“游戏化”的方式把模型成绩列出来,不用自己再去算指标。

本来想觉得“全流程”肯定很复杂,后来发现不是。

8000行手写代码!nanochat,从0造ChatGPT级模型的极简工具

Karpathy把代码写得特别清楚,甚至能直接分支开发(fork),比如你想试试改改模型架构,直接在原代码上改就行,不用从头搭框架。

对学生或者刚入门LLM的人来说,这省了太多事,以前得花好几天学怎么整合不同工具,现在对着一个文件就能上手。

8000行代码全手写:AIAgent帮忙?反而添乱

最有意思的一点是,这8000行代码几乎是Karpathy手写的,就用了个Tab键自动补全。

8000行手写代码!nanochat,从0造ChatGPT级模型的极简工具

他说之前试过用Claude或者Codex的Agent帮忙写,结果“效果特别差,反而添乱”。

为啥会这样?他觉得是自己这项目的代码风格和功能,跟Agent训练数据里的常规代码差太远。

比如模型架构这块,nanochat参考了Llama,但做了简化,还加了改进版nanoGPT的设计。

具体来说,用了稠密Transformer(没搞稀疏那套复杂的),旋转位置编码(让模型记住词的顺序),还有QK归一化(让模型注意力更准)。

8000行手写代码!nanochat,从0造ChatGPT级模型的极简工具

这些设计不是随便堆的,都是为了“让模型在低成本设备上也能跑”,比如多查询注意力(MQA)能减少计算量,KV缓存能省显存,就算是单卡GPU也能跑通推理。

优化器用的是Muon+AdamW组合,Karpathy说还有个待办项,想通过优化学习率把Muon去掉,但目前没来得及弄。

这种“先把框架搭完整,再慢慢优化细节”的思路,其实挺适合开源项目的,社区里的人能顺着他的框架继续改,不用从头开始。

网友对这项目的反应也很真实。

8000行手写代码!nanochat,从0造ChatGPT级模型的极简工具

有人说“这是超棒的学习资料,不管是学Rust底层实现,还是Python深度学习都有用”;还有科研人员说“以前想改进LLM,得花几周搭环境,现在周末就能试自己的想法”;甚至有人开玩笑“跑完这个项目,简历上就能加‘机器学习工程师’头衔了”。

当然也有理性的声音,比如有人说“这模型性能不如商业模型,没法商用”。

但Karpathy本来就没把目标定在“造最强模型”上,他想做的是一套“强基准”工具链,甚至还打算当成LLM101n课程的核心项目。

8000行手写代码!nanochat,从0造ChatGPT级模型的极简工具

就像之前的nanoGPT推动了LLM预训练平民化一样,nanochat可能会让更多人能完整体验LLM开发流程,毕竟不是所有人都需要GPT-4级别的模型,很多时候一个能解决简单问题的专属模型就够了。

现在nanochat还不是最终版,没做全面调优,也有不少能优化的点。

但它最有价值的地方,是把LLM开发的门槛拉到了普通人能碰的范围。

以前训模型是大厂的事,得花几百万上千万,现在花100美元、4小时就能试,这种“降维打击”似的工具,说不定会让LLM领域冒出更多新想法。

8000行手写代码!nanochat,从0造ChatGPT级模型的极简工具

总的来说,nanochat不是要颠覆谁,而是给想入门LLM的人搭了个梯子。

以后要是社区能接着优化,比如加上量化、分布式训练,它可能会变成LLM入门的“标配工具”。

对我们这些看热闹的人来说,也多了个机会看看“训模型到底是怎么回事”,不用再只听大厂讲概念了。

发表评论

长征号 Copyright © 2013-2024 长征号. All Rights Reserved.  sitemap