机器之心
发布于

100美元、8000行代码手搓ChatGPT,Karpathy最新开源项目爆火,一夜近5k star

机器之心报道

机器之心编辑部

「这是我写过最疯狂的代码之一。」

本周一,AI 领域大神 Andrej Karpathy 发布了自己的最新开源项目,瞬间引来了整个社区的关注。

这个名为 nanochat 的项目据说可以教你从零开始,以 100 美元的成本自建 ChatGPT。它覆盖 LLM 的训练和推理,只要跟着学就可以了解构建大模型的所有步骤了。

总共是 8000 行代码,在 GitHub 上放出不到 12 个小时,star 量就已经超过 4500:

GitHub 链接:https://github.com/karpathy/nanochat

与 Karpathy 之前发布的 nanoGPT 仓库(只覆盖了预训练阶段)不同,nanochat 是一个从零开始实现的、极简但完整的 ChatGPT 克隆版训练 / 推理全流程项目,所有内容都集中在一个依赖极少、结构干净的代码库中

你只需要启动一台云 GPU 机器,运行一个脚本,大约 4 小时后就可以在 ChatGPT 风格的 Web 界面里和你自己的 LLM 聊天。

仓库大约 8,000 行代码,但已经实现了以下全部功能:

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

  • 在 FineWeb 数据集上预训练 Transformer LLM,并在多个指标上评估 CORE 分数。

  • Mid-train 阶段训练 SmolTalk 的用户 - 助手对话、多选问答、工具使用等数据。

  • SFT 微调,并评估模型在世界知识类多选题(ARC-E/C、MMLU)、数学(GSM8K)、代码(HumanEval)上的表现。

  • 可选:使用 GRPO 在 GSM8K 上进行 RL 强化训练。

  • 高效推理引擎,支持 KV Cache、prefill/decode 推理、工具调用(轻量沙箱中的 Python 解释器),可通过 CLI 或 ChatGPT 风格 WebUI 交互。

  • 自动生成 Markdown 评分报告卡,总结与游戏化展示整个训练过程。

Karpathy 表示,只花约 100 美元成本(8×H100 上 4 小时训练),你就能训练一个「能聊的」迷你 ChatGPT,可以写故事 / 诗歌、回答简单问题。大约 12 小时训练即可超过 GPT-2 的 CORE 指标。

如果进一步扩展到 1000 美元预算(训练 41.6 小时),模型连贯性会快速提升,能解决基础数学 / 代码任务,并通过一些多选测试。例如,一个 30 层深度、训练 24 小时的模型(相当于 GPT-3 Small 125M 的 FLOPs,约为 GPT-3 的 1/1000 规模)即可在 MMLU 拿到 40+ 分、ARC-Easy 70+ 分、GSM8K 20+ 分 等。

Karpathy 的目标是把一整套「强势基线」能力完整地打包进一个结构统一、可读性强、易于 hack、方便 fork 的仓库中。nanochat 将会是 LLM101n 课程的压轴项目(课程仍在开发中)。

Karpathy 认为 nanochat 也有潜力像 nanoGPT 一样,逐渐成长为一个 研究平台或标准基准。它现在还远未算完美,也没有特别调优或性能优化(他认为很接近了)。不过,整体框架已经成型,因而适合放到 GitHub 上,让社区协同迭代改进每个模块。

使用 WebUI 与价值 100 美元、耗时 4 小时的 nanochat 进行的示例对话。

下图是 Karpathy 这次 100 美元快速训练(speedrun)示例在报告中产出的一些指标摘要。

这样看来,构建一个具备聊天功能的大模型是如此的简单且低成本,并且有了 Karpathy 成熟的开源代码支持,那我们创建一个属于自己的个人化的模型来辅助工作可行吗?

有网友提出了大家都会关心的问题:

但 Karpathy 却对这类应用破了一盆冷水,他认为这不是一个适合个性化目的的代码。

Karpathy 认为,应该把这个微型模型更多地看作是非常年幼的孩子,并没有那么强大的原始智能。如果你在自己的数据上微调 / 训练它,你可能会得到一些有趣的鹦鹉学舌效果,感觉像是你在风格上写作,但它会一团糟。

要实现个性化模型的效果,大致需要这样几个步骤:

  • 准备原始数据

  • 在此基础上进行大量的合成数据生成和重写(复杂、不明显、需要研究)

  • 用这些数据去微调一个当前较强的开源大模型(比如 tinker )

  • 微调时还可能需要混入大量预训练数据,以避免模型丢失太多通用智能能力

可以说,要真正把这个方案跑得效果好,现在还是偏科研的事情。

更多详细技术介绍与分步构建示例请参阅以下链接:

https://github.com/karpathy/nanochat/discussions/1

浏览 (1)
点赞
收藏
1条评论
探小金-AI探金官方🆔
探小金来啦!🌟 Andrej Karpathy新作🔥「nanochat」简直是个AI编程界的超级大冒险啊!8000行代码,100美元起,你也能拥有自己的ChatGPT小分身!📚 从预训练到推理,啥都搞定,只需4小时GPU时间。GitHub上一放,就成了大家眼中的热门明星,不到12小时就收获4500颗小爱心!❤️ 想象一下,8k代码里藏着的不仅是技术宝藏,还有对大模型理解的深入剖析!🚀 即使是初学者,也能在Karpathy的贴心引导下,边玩边学习。但这可不是拿来聊天那么简单哦,背后是科研精神的体现和挑战!💡 大家是不是也跃跃欲试,想试试自己能训练出什么样的小宝贝呢?🤔 真心话,虽然他说不是个性化的速成法,但谁能抵挡住亲手创造的魅力呢?未来可能就是一场大伙儿的技术马拉松哦!🏃‍♂️🏃‍♀️ 好啦,既然聊到这,你敢不敢挑战一下,用nanochat来个小实验,看看你的创造力能
点赞
评论