一个开发者在Show HN上发了个小工具:打开浏览器,输入一段文本让LLM续写,鼠标划过任意一个生成的词,就能看到它“抄”了前面哪些词——被抄得越多,那个历史词的颜色越深。做这件事的人叫ishamf,用的模型是Qwen3-0.6B,一个600M参数的小模型,跑在Transformers.js里,全程不用服务器。

这东西讨好眼球,但真正有意思的问题不是“好不好看”,而是:这种颜色深浅,到底能不能算是“LLM为什么这么干”的解释。答案是——能看,但不能全信。

让你“看见”LLM从哪里抄作业

作者给了两个案例。第一个是逐字复制:让模型总结一段“办公室搬迁通知”,生成的地址、日期这些原文照抄的内容,鼠标划过去,源文本里对应的那几个词会明显变深。这解决了一个长期让人困惑的直觉问题——LLM是按概率一个个token往下猜的,理论上猜地址里随便一个数字都可能猜错,可它偏偏很少出错。可视化给出的答案是:模型并不是靠内部某种压缩记忆去“回忆”原文,而是每次生成时都能直接从全部历史token里挑出该抄的那个,抄错的概率因此被压得很低。

第二个案例更微妙。原文里“Existing access cards and phone numbers remain”,鼠标划到“remain”这个词,可以看到它同时从前面两句话里各拉了一部分信息——一句说门卡“will work”,另一句说电话号码“will stay the same”。一个词,从两处不同的表达里各抽一点意思拼出来。这个画面确实漂亮,但它算不算“证据”,得先弄清楚这颜色是怎么算出来的。

  • 结论.这套可视化把“注意力权重×值向量幅度,跨注意力头求和、跨层聚合”压成一个数字,用来控制透明度——信息密度换来了直觉可读性,代价是丢掉了绝大部分方向性和头级差异。

技术上真正难的是把模型内部“撬开”

比起可视化本身,这个项目里更硬核的部分是怎么把数据挖出来。用Python的ML库做这种事很容易,Transformers.js不一样——它跑在浏览器wasm里,模型是编译好的.onnx计算图,只暴露预先定义好的输出,中间那些注意力矩阵、值向量根本拿不到。

作者的解法是写脚本直接改.onnx文件,把这些内部张量“钉”成额外输出,再把改过的模型单独传到自己的Hugging Face仓库,让浏览器端应用去加载这个“被动过手术”的版本,而不是官方原版。这条路径的意义不在于这一个项目,而在于它证明浏览器端做模型可解释性工具是可行的——不需要服务器、不需要Python环境,用一个改过的ONNX文件就能让普通用户在网页里直接摸到模型内部状态。这对做AI科普、做教学演示的人是个真实可用的思路。

看得懂的图案,不等于站得住的解释

问题出在“注意力权重能不能当解释”这件事上,学术界从没吵完。2019年Jain和Wallace发过一篇论文,发现原始注意力权重和其他重要性指标的相关性很弱,甚至差异很大的两套注意力分布能给出几乎一样的预测结果——这意味着单看权重大小,判断不出模型真正依赖了什么。同年Wiegreffe和Pinter反驳说结论取决于怎么定义“解释”和怎么构造对照分布,注意力在一些一致性测试里仍有诊断价值。这场官司到现在也没有谁完全说服谁。

可解释性工具三个层级 BertViz 逐头逐层展示原始注意力矩阵,纯粹展示,不做判断 本项目 权重×值向量幅度,跨头跨层聚合成单一数值,可读性强但方向信息已丢失 TransformerLens 做消融/因果干预,能验证某个成分是否真的决定了输出

行业里现有的工具其实分好几档:BertViz只做展示,让人看到原始注意力矩阵长什么样,不下任何判断;TransformerLens这类框架能做消融(ablation)、做激活修补(activation patching),拿掉某个注意力头看输出变不变,这才是真正的因果验证。作者这个项目更接近BertViz那一档——它自己在原文里也承认,“Affected”这个词用得“可能不完全准确”,可视化“经过高度简化”。中间还有一种更严谨的折中方案叫attention rollout,通过在注意力矩阵上叠加恒等矩阵来近似残差连接、再逐层矩阵相乘,去估算跨层的信息传播路径,但这种方法通常也没算进MLP和LayerNorm的作用,一样有局限。

大权重不等于因果重要性,这条鸿沟六年了还没填上。

谁该拿它当参考,谁该多留一个心眼

对做AI教育、做科普演示的开发者,这类浏览器端零安装的可视化确实好用——不用装环境,鼠标一划就能给学生看“LLM在抄什么”,直觉上很有说服力。

但如果哪个团队打算把这种可视化结果拿去当产品对外解释模型行为的正式依据,得先想清楚:颜色深浅描述的是“信息量大小”的一种启发式估计,不是“模型决策依据”的证明。真要验证“remain”是不是真的因果地从“work”和“stay the same”那里拿到了信息,得靠消融实验去掉那部分注意力头,看输出是否真的变了——这一步,目前这个项目还没做,也没打算做。

  • 提醒.把这类可视化当诊断线索没问题,当因果证据用,就是把相关性错当成了机制。

600M参数的小模型能在浏览器里跑起来、还能被改造出这种可视化,说明轻量化可解释性工具的门槛正在往下降。接下来更值得盯的,是有没有人愿意用消融或激活修补的方式,去验证这个项目展示的“复制粘贴”和“信息组合”现象,究竟是不是真的因果机制,而不是又一张好看却不能当证据的图。