机器之心报道
机器之心编辑部
「这是我写过最疯狂的代码之一。」
本周一,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 行代码,但已经实现了以下全部功能:
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 认为,应该把这个微型模型更多地看作是非常年幼的孩子,并没有那么强大的原始智能。如果你在自己的数据上微调 / 训练它,你可能会得到一些有趣的鹦鹉学舌效果,感觉像是你在风格上写作,但它会一团糟。
要实现个性化模型的效果,大致需要这样几个步骤:
可以说,要真正把这个方案跑得效果好,现在还是偏科研的事情。
更多详细技术介绍与分步构建示例请参阅以下链接:
https://github.com/karpathy/nanochat/discussions/1