技术博客

位置编码与注意力分辨率的极限

第 87 / 147 篇 · 2026-05-29 · ai · 位置编码注意力机制长上下文

"模型能分辨'第 100 个 token'和'第 101 个'吗?"这个问题在短序列上无感,在长上下文里直接决定检索类任务的生死。这篇从两个角度算分辨率的账:RoPE 的相位分辨率,和 softmax 的质量稀释。

相位分辨率:导数就是分辨力

RoPE 下位置对打分的贡献中,与距离 $r = i-j$ 有关的部分在某个频率通道 $\theta$ 上是:

$$ s(r) = A\cos(r\theta + \phi), $$

$A$ 由内容决定(幅度),$\phi$ 是初相。把相邻距离 $r$ 与 $r+1$ 区分开,靠的是打分差:

$$ |s(r+1) - s(r)| \approx |A\theta\sin(r\theta+\phi)| \;\le\; |A|\,\theta . $$

关键在最后一个不等式:可分辨度的上界正比于频率 $\theta$ 本身。RoPE 的频率从 $1$(最高频通道)铺到 $\theta_{\min} = 10000^{-2(d/2-1)/d}$($d=128$ 时 $\theta_{\min} \approx 1.2\times 10^{-4}$)。在距离 $r$ 处,高频通道的相位早已转了几十上百圈、完全混叠(周期 $2\pi/\theta$ 之后相位重复,见下图);只有 $\theta \lesssim \pi/r$ 量级的低频通道还保持单调。而低频通道的区分度只有

$$ \Delta s_{\max}(r) \;\sim\; |A|\,\theta_{\min}^{\text{有效}}(r) \;\propto\; \frac{|A|}{r} \;\xrightarrow{r\ \text{大}}\; 0 . $$

距离越远,模型能在 logits 上制造出的"距离差信号"越弱,按 $1/r$ 衰减。这不是训练不足,是频率铺排的结构性后果:波长覆盖到 $\lambda_{\max} = 2\pi/\theta_{\min} \approx 5\times 10^4$ 是用"最低频通道在万级距离上几乎不动"换来的,那个通道在远距离提供的梯度信息趋近于零。

softmax 稀释:分辨率之外还有信号强度

就算 logits 上有 $\Delta s$ 的差,softmax 之后能不能变成注意力份额的差,还取决于背景水平。注意力总质量为 1,撒到 $n$ 个候选上,背景 $\sim 1/n$。要让目标 token 的注意力份额显著抬出背景,roughly 需要 $\Delta s$ 达到 $\ln n$ 量级(指数权重的竞争区间)。把上一节的 $\Delta s \propto 1/r$ 代进去,得到有效工作距离的轮廓:

$$ r_{\text{eff}} \;\lesssim\; \frac{|A|\cdot(\text{内容对比度})}{\ln n} . $$

两个因素相乘:位置分辨率随 $1/r$ 衰减,检索信噪比随 $\ln n$ 恶化。这解释了实测里反复出现的现象:perplexity 曲线在超长输入下还挺好看(语言模型主要靠局部统计),但"大海捞针"类单点检索在距离超过训练长度几倍后急剧掉分——丢的不是语言能力,是寻址能力。

工程推论

别用困惑度判断长上下文能力。 PPL 对远距离寻址不敏感,是分辨率失效的"盲区指标"。测长上下文要测带监督信号的检索任务(needle、RULER 这类)。

RoPE 缩放改变的是分配不是总量。 YaRN/NTK(第 5080 篇)把频率整体压低换外推,等于把分辨率预算重新划拨到更远距离,但频率轴上的总覆盖没变——近处分辨率会相应变差。

稀疏化是绕开上限的另一条路。 滑窗/线性注意力(第 4120、4090 篇)不依赖逐距离分辨,而是用结构先验(就近、累加)换长程——代价是表达力换效率,这笔账在第 5190 篇展开。

小结

分辨率视角把"长上下文难"说成了一个具体的数学对象:位置编码在距离 $r$ 处能提供的 logit 区分度随 $r$ 衰减、被 $\ln n$ 稀释。任何位置编码方案——RoPE、ALiBi、学习型——都在这个预算约束下做分配,区别只是分配函数的形状。

两个频率通道的相位-距离曲线:高频远处混叠,低频远处变平 低频 θ 高频 4θ s(r) 距离 r 高频:近处分辨率高,r 超半个波长后相位混叠,距离信号归零 低频:全距离无混叠,但 |ds/dr| ≤ A·θ 随 θ 线性变小