为什么大模型总爱盯着“第 0 个词”发呆?揭秘 RoPE 与 Attention Sink 的底层暗战
如果你用显微镜观察 LLaMA、Qwen 或 DeepSeek 的内部,会发现一个极其诡异的现象: 不管输入什么句子,模型里总有一大批注意力头(Attention Heads),把 99.9 % 99.9\\% 99.9% 的注意力死死盯在句首的“第 0 个词”上!更怪的是,在它们向量的最后几个维度里,还藏着比正常值大好几倍的“神秘大数”!
为什么模型要干这种怪事?我们用一句话和几个简单数字,3 分钟看穿它的底层逻辑。
目录
- 为什么大模型总爱盯着“第 0 个词”发呆?揭秘 RoPE 与 Attention Sink 的底层暗战
-
-
- 一、 Softmax 的“霸王条款”:没活干也不准闭嘴!
- 二、 灵魂拷问 1:为什么 `\”好\”` 的前两维是 `1, 0`,而别的词是 `0, 0`?
- 三、 灵魂拷问 2:为什么大数值 `3.2` 非要塞在“最后的维度”?(放前面不行吗?)
- 一句话总结
-
第 0 个词最后维度的大小,本质上就是模型给自己定的“信噪比过滤门槛”: 必须比“无关词的乱撞分(2~3分)”大,同时又必须比“真正答案的匹配分(20分)”小! 只有卡在中间(约
+ 10 +10 +10 分左右),才能做到 “没答案时全吸走(输出 0),有答案时立刻让位!”
一、 Softmax 的“霸王条款”:没活干也不准闭嘴!
假设模型里有一个**“专门替当前词去上文找【人名】”**的注意力头。 现在我们输入一句话(最开头是系统自带的句首起始符 <bos>):
<bos>(0) 今天(1) 天气(2) 真的(3) 很(4) 好(5)
当模型读到最后一个词 \”好(5)\” 时,尴尬了: 整句话里根本

