"模型能分辨'第 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、学习型——都在这个预算约束下做分配,区别只是分配函数的形状。