论文精读

精读:给每一次迭代发一张工牌——PAR 的深度-长度对应与范数锚定

把循环语言模型的第 k 次迭代对齐到任务做完前 k 步之后的状态,并把循环状态按第一次迭代的 RMS 范数重缩放:Qwen2.5-0.5B 训练只看过 32 步的题目,在 512 步上拿到 95.5% 全状态准确率,RLT 是 55.7%、显式思维链是 0.8%。重算消融后两个条件的量级其实同档(8.8 倍对 7.7 倍),摘要挑的对照行把进度对齐写成了配角;外推倍数被测试网格截断在 16 倍,种子分布双峰,而 headline 那个 0.5B 骨干是八个里最好的一个。

论文: PAR: Progress-Aligned Recurrence for Length Generalization in State Tracking
作者: Pan Wang, Yihao Hu, Guangyuan Dong, 等
arXiv: 2610.27628
循环深度 长度外推 状态追踪 中间监督 自蒸馏 测试时计算 Qwen2.5 递归结构

1 论文概览

本文是 arXiv:2610.27628(cs.CL;v1 2026-10-20 04:54:06 UTC;Pan Wang、Yihao Hu、Guangyuan Dong 等 11 位作者,Ant International 与新加坡国立大学)。本专栏前四十五期问过信号怎么造、怎么记账、从哪条通道进来、以什么形状落到参数上、结局分几档、一笔优势在响应内部怎么分、教师位移里哪些前缀有资格进损失、这笔信用在更新里当斜率还是当终点;这一期问的是一次迭代该对齐到任务的哪一格,以及中间目标能不能由模型自己供给——前面那些期数都在序列维度上切分监督,本篇把它切到了深度维度。

一句话总结:把一个 24 层的 Qwen2.5-0.5B 拆成前奏、权重共享的核心、尾声三段,让核心循环 RR 次;第 kk 次迭代必须预测「任务做完前 kk 步之后的状态」 zkz_k;每次迭代输出的循环状态还要按第一次迭代的 RMS 范数重新缩放;测试时用一个不新增参数的 Yes/No 读出头判断「做完了没有」,配「8 次里至少 6 次点头」的确认窗决定在第几轮读答案。在 swap-S5S_5 上,训练只看过 32 步以内的题目,512 步(训练长度的 16 倍)拿到 95.5% 的全状态准确率,RLT 的同期数字是 55.7%,显式思维链是 0.8%。

核心问题:循环(looped)语言模型在测试时能多跑几轮迭代,但多跑的迭代未必帮它解更长的题。论文把这件事拆成两个失效模式。第一个是目标不对齐——只给最终答案做监督,等于没有定义「第 kk 轮该算出什么」:

“A final-answer target does not specify the state after only some operations.”(§1)

第二个是状态漂移——同一个权重共享的块被反复调用几百次,中间状态的尺度会随轮次改变,于是这个步进映射本身不再稳定。

主要贡献:

  1. 把「迭代 kk 对应任务前 kk 步」写成一条显式训练目标(深度-长度对应),并把状态漂移与目标不对齐识别为两个独立的失效模式,用一条损失与一次范数锚定一起处理。
  2. 提出不新增参数的学会停机制:复用现有的 coda 读出头预测是否完成,配合多步确认窗,测试时不需要外部给定迭代数。
  3. 提出 prefix self-distillation:任务的前 jj 步本身构成一个更短的合法问题,用教师(EMA 或在线学生)在短问题上的预测去监督长问题对应的迭代,从最终答案标签里长出中间目标。
  4. 在 swap-S5S_5、S5S_5、A5A_5、rule-table chain、BBH 风格的物体追踪共五组设置上给出 16×16\times 量级的外推,并给出逐条件的消融。

2 方法详解

2.1 改装出来的循环模型

模型沿用 McLeish 等人的改装方案:Qwen2.5-0.5B 的 24 层切成前奏 PP(1–8 层)、权重共享的核心 CC(9–16 层)、尾声 QQ(17–24 层)。静态输入特征 e=P(x)e=P(x),s0=es_0=e,适配器 WW 把 [e; sk−1][e;\,s_{k-1}] 投影回核心:

sk=C ⁣(W[e; sk−1]),k=1,…,Rs_k = C\!\left(W[e;\,s_{k-1}]\right),\quad k=1,\dots,R

W∈Rh×2hW\in\mathbb{R}^{h\times 2h} 初始化为 [0 ∣ I][0\,|\,I],于是 R=1R=1 时改装模型与父模型计算同一个函数——这是一个零改动起点的设计,值得记住,后面 §4 会用到它。所有权重都参与训练,梯度只流过末 8 次迭代,答案在 query 位置用分类头读出。

2.2 进度对齐:迭代 kk 负责前 kk 步

设一个题目的答案需要 dd 步顺序计算,zjz_j 是做完前 jj 步之后的状态,zdz_d 是最终答案。对应规则要求第 kk 轮持有 zkz_k,步长为 cc(本文取 1):

LPAR=∑k∈KCE⁡ ⁣(Q(sk),  zmin⁡(ck, d))\mathcal{L}_{\text{PAR}} = \sum_{k\in\mathcal{K}} \operatorname{CE}\!\left(Q(s_k),\; z_{\min(ck,\,d)}\right)

K\mathcal{K} 是梯度窗口内的迭代。这条式子把「迭代次数随问题长度增长」变成了构造出来的性质:一个 dd 步的题需要 d/cd/c 轮。论文对「每个循环都去预测 zdz_d」的批评很直接:

“Supervising zdz_d at every iteration breaks the correspondence: early iterations are asked for an answer they cannot yet compute, and the loss rewards shortcuts that do not scale with dd.”(§3.2)

两种深度调度都满足上式。forced depth(默认,记为 PAR)让每个 batch 只有一个深度 dd,跑 R=⌈d/c⌉R=\lceil d/c\rceil 轮,做完之后不再有损失。hold(PAR-hold)让 RR 从一个重尾分布里采样(1+Poisson(λ)1+\mathrm{Poisson}(\lambda),λ\lambda 对数正态、均值 12、上限 48),超过 d/cd/c 的轮次继续持有 zdz_d。

2.3 归一化锚定:让步进映射保持静止

外推要把这个步进映射调用几百次,任何随轮次或随绝对位置漂移的量最终都会改变这个映射在算什么。论文去掉两个漂移。状态范数锚定是每次迭代后把每个 token 的状态按第一次迭代的 RMS 范数重缩放:

sk←sk⋅rms⁡(s1)/rms⁡(sk)s_k \leftarrow s_k \cdot \operatorname{rms}(s_1)/\operatorname{rms}(s_k)

参考项带 stop-gradient,R=1R=1 时不变。位置拉伸是另一个手段:在一个短微调阶段把位置索引乘上 s∼U[1,smax⁡]s\sim U[1,s_{\max}],smax⁡s_{\max} 从 1 爬到 8,测试时用正常位置。有标签的 PAR 不需要拉伸就能到 16×16\times;无标签那一路要等加了拉伸才够(§6.3)。

2.4 学会停:不新增参数的完成度读出

在对应关系下,算完了没有是迭代序号与问题的函数,于是可以监督。coda 的读出头还被训练去在 ck≥dck\geq d 时把概率放在 Yes 上,否则放在 No 上,用类别平衡的交叉熵、权重 0.5,每个被监督的迭代再加一个更早的迭代当额外负样本。训练时从不跑到 dd 之后。测试时选第一个满足 P(Yes)>τP(\texttt{Yes})>\tau 的轮次 RR,并要求 R,…,R+m−1R,\dots,R+m-1 里至少 kk 个也超过 τ\tau,确认后返回 RR 这一轮的预测。默认 τ=0.5\tau=0.5、k=6k=6、m=8m=8。

2.5 中间标签从哪来:prefix self-distillation

zjz_j 在合成任务里是白送的,真实数据里没有。论文的解法是把短问题当标签源:一个任务的前 jj 步构成一个更短的合法问题,它的答案正是 zjz_j,而短问题恰好是模型先学会的那些。迭代 k≥⌈d/c⌉k\geq\lceil d/c\rceil 照常吃 zdz_d 的交叉熵;更早的迭代里最多取 nkn_k 个,用教师在前缀 1:ck1{:}ck 上的预测当目标。教师可以是 EMA(decay 0.99,在它自己的完成轮读出),也可以是在线学生本人。

2.6 与基线的区别

基线的差别全在「第 kk 轮该交出什么」这一格。Chen 的配方是每一轮都预测最终答案 zdz_d;Fan 等人的配方是让循环次数与任务长度挂钩;Shapiro 的配方是给中间状态监督但不锚定范数;RLT 用 token 级反馈在 swap-S5S_5 上做。PAR 与它们的分界是:前两者没有定义一轮推进多少,第三者定义了但没管状态尺度,第四者压根不在深度维度上做信用。论文的消融把前三者的配方在自己的骨干上重新跑了一遍(Table 7 的第 1、2、5 行),这一点做得比多数方法论文扎实。

3 实验结果

3.1 主表

S5S_5 与 A5A_5 训练深度不超过 16,single-query,chance 为 20%;swap-S5S_5 训练不超过 32 步,报全状态准确率(五个盒子全对才算对)。

方法S5S_5 32 (2×)64 (4×)128 (8×)GG(S5S_5)GG(A5A_5)swap 256 (8×)swap 512 (16×)
Explicit CoT12401.2471.1250.80.8
Fixed depth (R=1R=1)1920171.621.32––
Untied 4× core (48 层)3914–1.76–––
Random-RR recurrence5520251.951.05––
Transformer–––––0.850.85
RLT–––––97.3±2.855.7±25.8
PAR10010099.3161699.5±1.295.5±11.0

G=d50/dtrainG=d_{50}/d_{\text{train}},d50d_{50} 是用 R=dR=d 轮迭代时准确率首次跌破 chance 与 100% 中点的深度。S5S_5 只测到 256,所以 G=16G=16 是这张网格能测出的最大值。

3.2 消融:两个条件各值多少

Table 7 在 S5S_5 上一次只动一个条件,共享骨干、数据、优化器与步数预算(GG 与 d=256d=256 的准确率按种子给):

变体第 kk 轮的目标调度范数锚定GG准确率 (%)
Final answer at every loopzdz_d重尾 RR有2.14 / 1.9921 / 21
Final answer at loop ddzdz_d(仅 k=dk=d)forced无1.4815
Final answer at loop dd, normzdz_d(仅 k=dk=d)forced有<4 / <4 / 826 / 19 / 36
Prefix targets, no norm, holdzmin⁡(k,d)z_{\min(k,d)}重尾 RR无1.8416
Prefix targets, no normzmin⁡(k,d)z_{\min(k,d)}forced无1.8120
PAR-holdzmin⁡(k,d)z_{\min(k,d)}重尾 RR有16 / 1275 / 30
PARzmin⁡(k,d)z_{\min(k,d)}forced有16 / 16 / 16100 / 100 / 99

摘要里写的是「去掉范数锚定把外推倍数从 16×16\times 压到 2.2×2.2\times 以下,把进度对齐换成最终答案监督压到至多 8×8\times」。两句都能在表里找到出处,但两句的对照行选得不一样,这个差别在 §4.2 里展开。

3.3 学会停与无标签两路

学会停在 swap-S5S_5 上:oracle R=LR=L 给 98.7±3.1 与 93.2±16.3,「6 of 8」规则给 98.7±3.1 与 92.9±16.2。附录 Table 11 给出逐种子:6 个种子里 5 个在 16×16\times 上落在 99.6 到 99.9,第 2 号种子是 59.9——而那个种子的 oracle 也是 59.9,掉的是底座模型,不是停法。

无标签那一路(Table 5,只有最终答案标签):PAR 加 prefix self-distillation 在 d=256d=256 拿 85%、G≥16G\geq16;每个循环都给最终答案是 21/21、GG 2.14/1.99;只在第 dd 轮给最终答案是 15、1.48;加范数锚定后是 26/19/36、GG 小于 4、小于 4、8。教师配置(Table 9):EMA 0.99 加 curriculum 只有 2.6,slow EMA 加置信度过滤 5.6,EMA 0.99 加 forced depth 在 d=256d=256 拿 57,EMA 0.99 拿 61,在线学生加深度课程拿 85。五档里两档不到 5.6×5.6\times。

3.4 更大的骨干与别的家族

在 S5S_5 的 d=256d=256(即 16×16\times)上,3 个种子:Qwen2.5-1.5B 的 fixed depth 均值 22.2±3.8、PAR 均值 71.7±42.7、最好种子 100;3B 是 21.3±2.4、57.8±42.5、100;7B 是 18.2±3.8、80.7±33.1、100。Qwen3 家族按测试深度给:0.6B 在 32/64/128/256 上是 99.7/87.5/60.2/36.2,1.7B 是 99.8/75.5/43.8/38.8,4B 是 97.0/62.3/62.3/53.0。

3.5 边界

在 Chen 的图可达任务上所有配方都低于 3.5×3.5\times,PAR-hold 直接退化成预测多数类。论文的判据是:图可达靠并行扩张前沿,第 kk 轮没有一个典范的中间状态可持。rule-table chain 上 PAR-hold 拿 G≥8G\geq8(深度 64 时 94%),PAR 只有 6.0。

4 个人分析

4.1 亮点

第一,把迭代该做什么当成可监督的对象,而不是当成架构超参。这条思路的成本极低——WW 初始化成 [0 ∣ I][0\,|\,I] 保证起点零改动,归一化锚定是每次迭代一次除法,完成度读出头复用现成的分类头、不新增参数。三处都不需要新的模块。

第二,消融做得很干净。Table 7 把 Chen、Fan、Shapiro 三个前人的配方在自己的骨干上重跑,共享数据、优化器、步数预算,还把 GG 与准确率按种子逐个列出。多数方法论文的消融只删自己的组件,这篇把同行的方法也放进同一张表,可比性高一档。

第三,负结果给得比正结果更有用。warm-start 从一个单遍就能解 d≤16d\leq16 的定点深度模型出发,GG 掉到约 1.4;只热启动前奏则两个种子里成一个。把完成做成吸收态(训练时多跑几轮要求保持 zdz_d)会让 16×16\times 崩到 1% 以下,原因是推进中间状态与当不动点两个目标打架。这两条对工程选型的价值超过主表。

第四,Limitations 写得诚实:

“accuracy does not rise monotonically with Qwen2.5 size, and no Qwen3 backbone approaches Qwen2.5-0.5B at 16×16\times. These results therefore do not establish a monotonic trend with model size”(§7)

把自己的非单调性写进 Limitations 而不是藏进附录,这在近期的投稿里不多见。

4.2 值得较真的六个地方

(一)摘要那两条消融数字,对照行选得不一样,把进度对齐写成了次要项。 摘要的第一句拿去掉范数锚定对比完整 PAR:1.81 对 16,掉 8.8 倍。第二句拿换成最终答案监督对比:它引的那一行是 Final answer at loop dd 加 norm,GG 是小于 4、小于 4、8,于是「至多 8×8\times」。问题在于那一行除了目标不同,还把监督密度一起换了——它只在 k=dk=d 那一轮监督一次,而 PAR 在每一轮都监督。要公平比较目标函数这一个变量,应该拿「每个循环都监督 zdz_d 且带范数锚定」那一行的 2.14 与 1.99(均值 2.07)去对 16,差 7.7 倍。这么一算,两个条件的量级是同一档的(8.8 倍对 7.7 倍),摘要的写法让进度对齐看起来只是个配角。判据:凡「A 掉了 X、B 掉了 Y」的双条件消融,先确认两行除了被改的那个变量之外还差了什么;本例里差的是监督密度,而监督密度本身就是个独立旋钮。

(二)G=16G=16 是被测试网格截断的,不是测出来的。 论文自己写了 “With test depths up to 256 and dtrain=16d_{\text{train}}=16, G=16G=16 is the largest measurable value”。于是所有 G=16G=16 的行之间无法再排序——PAR 的 16、PAR-hold 的 16 与 12、prefix self-distillation 的 ≥16\geq16,天花板把差异抹平了。更该留意的是附录 Table 10 明明把 S5S_5 测到了 512(32×32\times):PAR-hold(c=1c=1、R=dR=d)两个种子在 512 上是 0.72 和 0.91,c=2c=2 加位置拉伸微调、R=288R=288 那一行在 512 上是 0.99。本文手里有 32×32\times 的数据,正文的叙事却停在 16×16\times。判据:凡是外推倍数这类指标,先看测试网格的最大档是不是恰好等于报出来的倍数;等于就是右删失,此时倍数只能当下界读,且同在天花板上的行不能比大小。

(三)主表里的外推,测试时把真实步数喂给了模型。 S5S_5、A5A_5、swap-S5S_5 的主结果都用 R=dR=d 轮迭代跑,跑几轮由题目的真实长度决定。在这几个任务里 dd 能从 prompt 里数出来(题目列了 dd 次移动),所以不算信息泄漏,但深度随长度增长这件事有一部分来自调度而非学习。论文自己也知道,§5.3 用学会停把它拿掉了:92.9 对 oracle 的 93.2,只差 0.3 分——这一条做得对。问题是这条对照只在 swap-S5S_5、只在 Qwen2.5-0.5B 上做过,S5S_5、A5A_5 与更大的骨干都没有对应的不带 dd 的数字。判据:凡深度随长度增长的方法,逐表核对测试时的迭代数是模型定的还是外部给的;只有一部分表给了自主定深的对照时,其余表的倍数要打个折。

(四)种子分布是双峰的,均值不代表任何一个种子。 Qwen2.5-1.5B 是 71.7±42.7,3B 是 57.8±42.5,7B 是 80.7±33.1——标准差与均值同量级,且三个数非单调(1.5B 高于 3B)。附录 Table 11 把这件事摊开:6 个种子里 5 个在 16×16\times 上不低于 99.6,第 2 号种子 59.9。用 3 个种子算出的均值 71.7,真实含义是三个里有两个成了。判据:sd 超过均值三分之一时不要读均值,去附录找分种子的表,读最小值与失败率。

(五)headline 那个骨干是八个里最好的,而且不是单调的。 Qwen2.5-0.5B 在 S5S_5 的 d=256d=256 上拿 99.3;换成 Qwen3 家族,0.6B 拿 36.2、1.7B 拿 38.8、4B 拿 53.0,而 chance 是 20——超出随机的部分从 79 分缩到 16 到 33 分。摘要写 “show consistent benefits across backbones up to 7B”,这句话在 PAR 都高于同骨干 fixed depth 这个意义下成立(4B 上 53.0 对 17.7),在效果随规模保持这个意义下不成立。论文在 Limitations 里承认了后者。判据:凡跨骨干一致的说法,把每个骨干在同一档的数字抄成一行看单调性;一致不等于单调,而工程上关心的是单调。

(六)无标签路线的最好数字,来自第二段微调加多个起点取最好。 正文写 label-free 模型 “reach up to 99.7% accuracy at 16×16\times“。附录 Table 12 把这一列摊开:四条位置拉伸微调在 16×16\times 上给 26.7、99.7、99.7、65.5,另加一条从头就用拉伸的种子 7 给 100.0。4 个起点里 2 个到 99.7、1 个停在 65.5、1 个停在 26.7。Table 9 的教师配置同理:五档里三档到 ≈16×\approx16\times 或更高,两档停在 2.6 与 5.6,而正文 Table 5 报的 85% 取的是五档里最好的那一档。判据:凡正文出现 up to X 而全表在附录,把附录那一列抄下来数有几个达到 X;达到率是这条路线真正的成熟度指标。

顺带一条统计口径:swap-S5S_5 上 PAR 与 RLT 的比较,8×8\times 是 99.5±1.2(6 种子)对 97.3±2.8(3 种子),合成标准误约 1.69,t 约 1.3,这一格的差异未检出;16×16\times 是 95.5±11.0 对 55.7±25.8,合成标准误约 15.6,t 约 2.6。两臂种子数不等(6 对 3)时要手算合成 SE,别只看均值差;本文真正立得住的只有 16×16\times 那一格。

4.3 对大模型领域的影响

这篇的分量不在 0.5B 模型解了 512 步的置换追踪,在于它把测试时计算从多跑几轮推进到了每一轮有明确职责。过去一年循环深度这条线上的工作大多在问跑多少轮、怎么稳住、怎么停,本篇问的是跑的每一轮到底在算什么——把这个问题从架构问题变成了监督问题。

对 latent reasoning 这条路线,结论偏冷:把推理内化到深度维度需要中间目标,而中间目标要么来自合成器,要么来自模型自己在短问题上的预测。真实语料没有前 kk 步的状态这种东西,prefix self-distillation 是本文给出的桥梁,但它的成熟度按上面第六条只有五档里三档。这条路能不能接到开放式自然语言推理上,论文明确留给了未来工作。

对长度外推这个老问题,本篇给出的机制诊断(状态漂移与目标不对齐)是可迁移的。任何把同一个模块反复调用的结构——SSM 的递推、MoE 的路由复用、agent 的多轮工具调用——都会遇到同一对毛病:调用次数上去了,模块在算的东西跟着变。范数锚定这种每次调用后把状态尺度拉回起点的操作,成本极低,值得在别的地方试一遍。

5 实践启示

5.1 可以借鉴的技术

  1. 零改动起点的加权初始化:W=[0 ∣ I]W=[0\,|\,I] 让 R=1R=1 的改装模型与父模型同函数。任何往预训练模型里插循环的改装都该这么做,它把插进去之后先别变差变成了构造性质而不是调参结果。
  2. 每次迭代一次的 RMS 重缩放:sk←sk⋅rms(s1)/rms(sk)s_k \leftarrow s_k\cdot \mathrm{rms}(s_1)/\mathrm{rms}(s_k),参考项 stop-gradient。消融里它一个条件就把外推倍数从 1.81 抬到 16,是全篇性价比最高的一行代码。
  3. 把是否完成做成复用读出头的二分类,权重 0.5 的类别平衡交叉熵,不新增参数、不需要 ACT 或 PonderNet 的 ponder loss。
  4. 多步确认窗:单轮阈值在长程上会被瞬时尖峰打穿(Table 8 单轮在 16×16\times 只有 77.8±25.7),8 次里 6 次比连续 8 次更稳(90.3 抬到 92.9)。这个思路可以直接搬到早停、早答、早退避的判定上。
  5. 短问题当中间标签源的 prefix self-distillation:任何能按步切分的数据集都能用,教师可以是 EMA 也可以是学生自己。
  6. 一条要避开的坑:不要把完成做成吸收态(训练时多跑几轮要求保持 zdz_d),推进与不动点这两个目标会打架,本文里 16×16\times 崩到 1% 以下。也不要从一个单遍就会做的检查点热启动,GG 会从 16 掉到 1.4。

5.2 潜在应用场景

  • 长程状态追踪类任务:配置漂移追踪、事务流水对账、多步状态机仿真——凡答案由一串顺序操作累积出来的场景,都符合第 kk 轮持有前 kk 步状态这个前提。
  • agent 的多轮工具调用:把第 kk 轮调用后的世界状态当成 zkz_k,这套对应关系可以搬到轨迹层面。前提是每一步有可数的、可标注的中间状态,这与本文在图可达任务上失败的原因是同一个。
  • 测试时算力的按需分配:学会停加确认窗给了一个不新增参数、不需要外部阈值的自适应深度方案,比固定跑 NN 轮省算力,也比越贵的题跑越多轮这种启发式更可监督。
  • 把长程能力塞进小模型:0.5B 的模型在 512 步上拿 95.5%,而同骨干的 fixed depth 完全不行。对端侧与低延迟场景,用循环深度换参数这条路有了具体的训练配方。

需要留意的前提:本文的全部证据都在合成或模板化的状态追踪任务上。图可达这类没有顺序分解的任务明确出界;自然语言格式只在 BBH 风格的物体追踪上试过(32 步 94 到 96%、64 步 79%,chance 17%)。把它搬到开放式推理之前,先确认那个任务有没有第 kk 步之后的状态这种东西。

参考文献

  1. Pan Wang, Yihao Hu, Guangyuan Dong, Yitong Lin, Hang Wang, Zimi Liu, Zhihao Wen, Jianshe Li, Jiang-Ming Yang, Wei Wu, Yongqi Tong. “PAR: Progress-Aligned Recurrence for Length Generalization in State Tracking.” arXiv:2610.27628 (cs.CL), v1, 2026-10-20.
  2. S. McLeish et al. “Teaching pretrained language models to think deeper with retrofitted recurrence.” arXiv:2511.07384.
  3. J. Geiping et al. “Scaling up test-time compute with latent reasoning: a recurrent depth approach.” NeurIPS 38.
  4. H. Chen. “Thinking deeper, not longer.” arXiv:2603.21676.
  5. Y. Fan, Y. Du, K. Ramchandran, K. Lee. “Looped transformers for length generalization.” ICLR 2025.
  6. M. Shapiro. “Retrofitting recurrent depth into a pretrained language model.” arXiv:2608.11233.
  7. A. Ruoss et al. “Randomized positional encodings boost length generalization of transformers.” ACL 2023.

相关精读