2.7 KiB
2.7 KiB
title, created, updated, type, tags, sources
| title | created | updated | type | tags | sources | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 注意力汇 (Attention Sinks) | 2025-04-15 | 2026-05-14 | concept |
|
|
注意力汇 (Attention Sinks)
定义
注意力汇是 Xiao et al. (2024) 在 ICLR 论文 streaming-llm 中发现的现象:自回归 LLM 中,初始 Token 在所有层和注意力头上吸引不成比例的高注意力分数,即使它们与当前预测任务语义无关。
数学解释
SoftMax 函数的性质导致注意力汇的出现:
\text{SoftMax}(x)_i = \frac{e^{x_i}}{\sum_{j=1}^N e^{x_j}}
关键约束:所有 token 的注意力分数之和必须为 1($\sum_i \text{SoftMax}(x)_i = 1$)。
当当前 query 与大多数上下文 token 没有强语义匹配时,模型仍然需要把这些"多余"的注意力值分配到某处。初始 Token 因自回归建模中对所有后续 token 都可见,被自然训练为注意力的"汇" (sink)。
Xiao et al. 的公式表述:
\text{SoftMax}(x)_i = \frac{e^{x_i}}{e^{x_1} + \sum_{j=2}^N e^{x_j}}, \quad x_1 \gg x_j, \, j \in 2, \ldots, N
其中 $x_1$(初始 token 的注意力 logit)远大于其他 token。
实验证据
- 注意力可视化:Llama-2-7B 除底部两层外,几乎所有层和注意力头都严重关注初始 token
- 替换实验:将前 4 个 Token 替换为换行符
\n,模型仍大量关注它们,恢复它们后 PPL 恢复——证明是绝对位置而非语义在起作用 - 数量研究:4 个初始 Token 即可完全恢复性能,1-2 个不够,更多边际递减
根因分析
为什么是初始 Token 而不是其他 Token?
→ 自回归语言建模中,初始 Token 对所有后续 Token 都可见,而后面的 Token 只对有限集合可见。这使得初始 Token 更容易被训练为注意力的通用"倾倒目标"。
应用
- streaming-llm:保留 4 个初始 Token 的 KV + 最近 Token 的滑动窗口 → 无限长流式推理
- H2O:基于累积注意力分数选择性地保留 "Heavy Hitter" Token
- SinkRouter:汇感知的路由优化策略
- 预训练改进:在训练样本前添加专用 sink-token,消除对多个初始 Token 的依赖
相关概念
- streaming-llm — 基于注意力汇的流式推理框架
- window-attention — 驱逐初始 Token 导致崩溃的基线
- sink-token — 预训练中的专用注意力汇
- softmax-off-by-one — 替代方案
- kv-cache-bottleneck — 相关优化问题
- length-extrapolation — 问题域