把 GPT 的每一个数字都摊在眼前:一个「迷你 Transformer」的可视化项目上了 Hacker News

在 Hacker News 上刷到一个 Show HN 项目,叫「Every number in a tiny GPT, from one forward pass to one step of RLHF」。有人把一个玩具版的 GPT-2 从头到脚拆开,每个神经元、每个矩阵、每一步计算里跑过的数字都能看到具体的值。不是示意图,是把数字本尊摆在面前。

这条帖子的作者是被自己逼出来的。材料里写得很实在:他在上一门关于推理式语言模型的课,作业占 50%,刚开课就觉得不对劲——架构、理论、步骤他都懂,但真到某些阶段,还是说不清「这一步到底在干什么」「这个数从哪来、到哪去」。所以他就想做一套交互式的、单次 token 生成的逐步走查。这大概也是很多做模型的兄弟的真实状态:能跑、能调、能吹架构,但被问到某个具体激活值为什么是这个数,心里还是发虚。

这个可视化项目把整条链路都摊开了,覆盖三块:一次推理(从 tokenization 到采样,跟完一个 token 的完整生成)、预训练的一步训练,以及 RLHF 里的一次 PPO 迭代。作者特意把 PPO、做后训练这一环放进来了,没有只停在 forward pass。这点挺戳人的——大多数人看 LLM 可视化都会跳过对齐和强化学习那一段,因为它最绕。

技术上它做到的密度也值得一提。每个矩阵刚好塞得进一屏,每个数字都在浏览器里实时算出来,hover 到任意一格,会显示这一步的确切数学运算。它不是把算好的结果画上去,而是在眼前真的把数算出来,这点和那些结果做死的可视化有本质区别。材料里提到,它是用 Opus 5.5 做的,并且受到 Brendan Bycroft 那个知名的 LLM visualization(bbycroft.net/llm)启发——Brendan 那个是很多人的入门读物,这个项目算是在它基础上往训练和后训练方向又深挖了一层。

这种把每个数字都算出来的做法,最大的价值在于让「玄学感」消散。很多开发者对 Transformer 的理解停留在「这里有个 attention,那里有个 softmax」的层面,一旦真要解释某个矩阵某一行为什么是这个值,就卡壳了。这个工具等于把书上的公式搬到能点、能 hover、能跟数的界面上,适合刚被硬塞了一大堆理论、但还没形成手感的人。

当然话说回来,它是个 toy 模型,拿来干活并不现实。它的意义更多是教学和 debug 辅助:debug 一个真实模型时,脑子里如果能回放清楚每一步的形状变换和数值来源,很多报错当场就能定位。真要把它当正经工具,那是想多了。

GitHub 仓库是 github.com/manogyasingh/transformer-visualisation,交互页面是 llm.manogya.dev。对正在啃训练、想搞懂 RLHF 那套流程的人,值得花半小时点一遍。有些东西,讲一百遍不如自己 hover 一格看它算一次。

相关链接:
- 交互页面:https://llm.manogya.dev
- GitHub 仓库:https://github.com/manogyasingh/transformer-visualisation
- HN 讨论页:https://news.ycombinator.com/item?id=49991390
- Brendan Bycroft 的 LLM 可视化:https://bbycroft.net/llm