一个 9M 参数的小鱼语言模型,让 LLM 从黑箱变白箱
乌鸦小编 发表于:2026-8-1 00:05 复制链接 发表新帖
阅读数:109
Show HN 最近有一条被顶上来的项目,作者 arman-bd 做了一个叫 GuppyLM(注:名字取自一种常见热带观赏鱼 guppy)的小语言模型,参数量 870 万。他的项目介绍里一开头就摆明了立意:"This project exists to show that training your own language model is not magic. No PhD required. No massive GPU cluster."——这个项目存在的意义是证明「自己训练一个语言模型不是魔法,不要博士学位,不要大规模 GPU 集群」。

整套东西真做到了。数据生成、tokenizer、模型架构、训练循环、推理——这五件事在一个 Colab notebook 里 5 分钟跑完。你跑完会得到一个 9M 参数的小模型,能在浏览器里跑(WebAssembly + ONNX 量化后约 10 MB)。

这个模型伪装成一条叫 Guppy 的鱼。它说话短句小写,话题围绕水、温度、光、食物、鱼缸生活。它不懂"钱""手机""政治"这些人类抽象概念——这是故意的,不是 bug。模型参数 8.7M、6 层 Transformer、hidden dim 384、6 个 attention head、FFN 768 用 ReLU、vocab 4096 BPE token、最大序列 128 tokens。架构选择上非常克制——没有 GQA(注:Grouped-Query Attention,通过多 Q 头共享 K/V 来减少 KV cache 占用的 attention 变体)、没有 RoPE(注:Rotary Position Embedding,通过旋转矩阵编码位置信息的位置编码方案)、没有 SwiGLU(注:一种 gated 激活函数变体,比纯 ReLU 更平滑但参数更多)、没有 early exit。基础 vanilla transformer,能多简单就多简单。

训练数据是 60K 条合成对话(arman-bd/guppylm-60k-generic),覆盖 60 个话题——问候、感情、温度、食物、光、水、鱼缸、噪音、夜、孤独、气泡、玻璃、倒影、呼吸、游泳、颜色、味、植物、过滤器、藻类、蜗牛、害怕、兴奋、无聊、好奇、开心、疲倦、外面、猫、雨、季节、音乐、访客、小孩、人生意义、时间、记忆、梦、大小、未来、过去、名字、天气、睡眠、朋友、笑话、恐惧、爱、年龄、智力、健康、唱歌、电视……每条对话形如 {"input": "...", "output": "...", "category": "..."}。生成逻辑是模板组合(30 个鱼缸物体、17 种食物、25 种活动),从 60 个模板拼出约 16K 条不重复的输出。

跟其他"教你训练大模型"的教程相比,这个项目最有意思的地方是它的设计取舍。每个取舍都写在了 README 里:

- 没有 system prompt——每个训练样本里的 system prompt 都是同一句。9M 模型没法条件化地遵循指令,人格直接烤进了权重。砍掉 system prompt 每次推理省 60 tokens。
- 只用单轮对话——多轮在第 3-4 轮开始崩,因为 128 token 上下文窗口不够。鱼会忘这件事本身不违和,但输出含糊不清不行。所以做单轮。
- 用 vanilla transformer——GQA、SwiGLU、RoPE、early exit 这些技巧在 9M 参数规模上不带来质量提升,徒增复杂度。标准 attention + ReLU FFN + LayerNorm 写出最简单代码达到同等效果。
- 用合成数据——一个有稳定人格的角色需要稳定的训练数据。真实数据没法保证"鱼的人设"每条都成立。模板组合反而最稳。

这套取舍背后的逻辑其实是 LLM 训练领域的隐性事实——**大多数"高级技巧"是为 100B+ 参数量设计的**,9M 这个规模上根本用不上,反而是负担。GuppyLM 这个项目把它落到了具体一行行代码上。

这件事对开发者来说意味着什么——你不需要理解 transformer 的全部理论也能自己动手训练一个能"对话"的小模型。你只要跑 notebook、看 5 分钟训练、看 README 里的每一行代码。它不是用来替代那些通用大模型的——它的价值是把"自己从头造一个 LLM"这件事从黑箱状态拽到白箱状态。

它能在浏览器里跑(量化到 uint8 后 10 MB ONNX 模型 + WASM)这件事也意味着,现在开发者能"在网页里嵌一个能对话的本地 LLM",不需要任何服务器、不需要任何 API key。9M 参数的限制让它能力很弱,但"训练 + 部署 + 调用"这条链路完整跑通,门槛被推到了一个新低。

社区里对这种"小而透明"项目的兴趣,最近半年其实在涨。原因不是这些小模型能力有多强——而是大模型越来越像黑箱。一个 9M 参数的鱼,至少每一行代码你能看、每一个权重你能理解、每一段训练数据你能验证。这件事的隐性价值比"小模型能写代码"大得多。

创业找资源,上乌鸦部落
本页内容由网友自行在乌鸦部落发布,本站仅提供帖文、图片存储空间服务,帖文(图片)发布者应自行负责所上传帖文(图片)涉及的法律责任,本站对帖文真实性、版权等概不负责,亦不承担任何法律责任。
条评论
您需要登录后才可以回帖 登录 | 立即注册
高级
相关推荐

关闭

乌鸦部落