作者:李季 LI JI
AI 前沿技术跟进
全局:

LLM 架构与效率 Architecture & Efficiency

注意力/循环/记忆结构、looped(循环深度)模型、线性注意力、参数与计算的重新分配。

条目(3 项)

日期条目 / 一句话通俗分类
2026-10-20PAR: Progress-Aligned Recurrence for Length Generalization in State Tracking
让「循环式」模型的第 k 圈恰好算完前 k 步,并把状态的大小锚定住;这样训练时只见过 32 步,也能算对 512 步的序列。
LLM 架构与效率
2026-10-19Kronecker Delta Rule for Long Context Linear Attention(KronLSTM)
线性注意力的「记忆矩阵」在更新时会误伤旧记忆;Kronecker Delta 规则只沿「这一对 key-value」自己的方向修改一个标量关联,旧记忆被误伤的概率更小,长文本检索更好。
LLM 架构与效率
2026-10-16NVIDIA-Nemotron-Labs-Dory1.0-4B:looped(latent-recurrent)4B 语言模型
同一个 4B 模型,推理时可以让中间那一大段网络「多转几圈」换取更高准确率;转 1/2/4 圈由你按任务选择,不用换模型。
LLM 架构与效率 推理与服务

条目详解

2026-10-20arXiv 论文第1期 · 2026-10-31

PAR: Progress-Aligned Recurrence for Length Generalization in State Tracking

PAR:用于状态跟踪长度泛化的「进度对齐」循环
Pan Wang, Yihao Hu, Guangyuan Dong, Yitong Lin, Hang Wang 等共 11 位(Ant International;NUS)
一句话通俗:让「循环式」模型的第 k 圈恰好算完前 k 步,并把状态的大小锚定住;这样训练时只见过 32 步,也能算对 512 步的序列。
阅读模式:

报告的主要结果(均为原文自报,非本站复现)

方法(swap-$S_5$,训练长度 $\le32$)256 步(8×)512 步(16×)
Transformer(引用报告值)—0.85±0.30
RLT(引用报告值)97.3±2.855.7±25.8
显式 CoT0.80.8
PAR(6 个种子)99.5±1.295.5±11.0
PAR + learned halting(不知道长度)98.7±3.192.9±16.2

无步骤标签的 prefix self-distillation 在 $S_5$(训练 $d\le16$)上 256 步准确率 85%,$G\ge16$(原文自报)。

通俗解释

有一类模型可以「在脑子里多转几圈」(looped model),推理时想多想一会儿就多转几圈。但转了几圈并不保证能解更长的题。

论文的发现是:只用最终答案当监督,没人规定「每一圈该前进多少」,于是模型学到的是不能外推的捷径。PAR 的办法很朴素:规定第 k 圈就要输出「做完前 k 步之后的状态」,一圈对应一步;同时每圈结束后把内部状态的「音量」调回第一圈的水平,防止转多了数值漂移。

效果:在经典的「五个盒子交换物品」状态跟踪题上,训练只见过最多 32 步,测试到 512 步(16 倍长度)仍有 95.5% 的整体状态准确率;而让模型写出完整思维链的做法在同一骨干上降到 0.8%。

专业解释

问题:looped LM 在测试时可增加迭代次数,但额外迭代未必帮助解决更长的问题。对于顺序状态跟踪,最终答案监督没有规定每次迭代前进多少,并且重复更新会改变循环状态的尺度(norm drift)。

PAR(Progress-Aligned Recurrence) 由两个条件构成:(i) progress-aligned targets:第 $k$ 次迭代的读出必须等于前 $k$ 步操作之后的状态,建立显式的「深度—长度」对应(每次迭代前进 $c=1$ 步);(ii) state-norm anchoring:每次迭代后把每个 token 的状态缩放到其第 1 次迭代状态的 RMS norm,保持步映射的平稳(stationary),并用 positional stretch 处理长 prompt 中查询与早期操作距离过远的问题。

此外有:learned halting(读出头同时预测 Yes/No 的「是否完成」,用「6/8 确认窗口」规则在不知道问题长度时停止)与 prefix self-distillation(只有最终答案标签时,用 EMA 教师在被截断前缀上的输出来监督更早的迭代)。消融显示两个条件缺一不可:去掉 norm anchoring 外推倍数从 16× 降到约 1.8×(Table 7 中 1.81 / 1.84);用「每一圈都监督最终答案」则外推倍数仅约 2。

详细算法

1. 问题设定

任务:群字问题(group word problem)。提示给出 $d$ 个对五个盒子(各放一件物品)的操作,询问某个盒子里是什么。swap-$S_5$:每步为恒等或 10 个对换之一;$A_5$:每步为一个 3-循环。随机猜测准确率 0.2。训练长度 $\le 32$(swap-$S_5$)或 $d\le16$($S_5$、$A_5$),测试至更长。整体状态准确率要求五个盒子全对。

模型:把 Qwen2.5-0.5B 的 24 层改造成 prelude $P$(1–8 层)+ 权重共享的 core $C$(9–16 层)+ coda $Q$(17–24 层)的 retrofitted looped LM(沿用 McLeish 等的做法)。答案用分类头在候选答案 token 上读出,不生成任何中间 token。

2. 关键公式

retrofitted 循环($e=P(x)$,$s_0=e$,adapter $W\in\mathbb R^{h\times 2h}$ 初始化为 $[0\,|\,I]$,使 $R=1$ 时与父模型等价):

$$s_k=C\big(W[e;\,s_{k-1}]\big),\quad k=1,\ldots,R,\qquad y_k=Q(s_k)$$

进度对齐损失($z_j$ 为前 $j$ 步之后的答案,$d$ 为总步数,步长 $c=1$,$\mathcal K$ 为梯度窗口内的迭代集合):

$$\mathcal L_{\text{PAR}}=\sum_{k\in\mathcal K}\mathrm{CE}\big(Q(s_k),\ z_{\min(ck,\,d)}\big)$$

状态 norm 锚定(stop-gradient 于参考项):

$$s_k\leftarrow s_k\cdot\frac{\mathrm{rms}(s_1)}{\mathrm{rms}(s_k)}$$

Positional stretch:短暂微调阶段把位置索引乘以 $s\sim U[1,s_{\max}]$,$s_{\max}$ 从 1 斜升到 8,测试时用普通位置。

学习停止:读出头在 $ck\ge d$ 时对 token「Yes」放概率,否则放在「No」,类别平衡交叉熵权重 0.5。推理取第一个满足 $P(\text{Yes})>\tau$ 且在窗口 $R,\dots,R+m-1$ 内至少 $k$ 次超过 $\tau$ 的迭代 $R$($\tau=0.5,k=6,m=8$)。

Prefix self-distillation:对 $k<\lceil d/c\rceil$ 的迭代,用 EMA 教师在截断到 $ck$ 步的 prompt 上、在其自身完成迭代处的答案分布做 KL 监督;$k\ge\lceil d/c\rceil$ 的迭代用最终答案 $z_d$ 交叉熵。

3. 逐步伪代码
# 训练 (forced depth, 默认的 PAR)
for 每个 batch (同一 batch 内深度 d 相同):
    R = ceil(d / c)                       # c = 1
    e = P(x);  s = e
    for k = 1..R:
        s = C( W · concat(e, s) )
        s = s * rms(s_1) / rms(s)          # state-norm anchoring (stop-grad 于 rms(s_1))
        if k 在最后 8 次迭代 (梯度窗口):  loss += CE( Q(s), z[min(c*k, d)] )
        # 同时训练 halting 头: 目标 = Yes if c*k >= d else No (类别平衡, 权重 0.5), 另加一个更早的迭代作额外负例
    反向传播 (梯度只通过最后 8 次迭代)

# 推理 (不知道问题长度)
s = e = P(x)
for k = 1..Kmax:
    s = C(W·[e; s]); s = anchor(s)
    p_yes[k] = P_Q(Yes | s)
    if 存在 R<=k-m+1 使 p_yes[R] > 0.5 且 窗口 [R, R+8) 内至少 6 次 > 0.5:
        return 读出 Q(s_R)                 # 在「完成信号」刚出现处读取答案
4. 训练 / 推理流程

训练:AdamW,学习率 $2\times10^{-5}$(adapter $10^{-4}$),200 步 warm-up,约 40 万样本一个 epoch,训练深度均匀分布;全程不产生中间 token。深度调度有两种:forced depth(每批一个深度 $d$,迭代 $R=\lceil d/c\rceil$)与 hold($R$ 取自重尾分布,超过 $d/c$ 的迭代保持 $z_d$)。

评测:swap-$S_5$ 用 Zhang 等的协议(训练 $\le32$ 步,每个长度 1,024 条序列测整体状态准确率);外推倍数 $G=d_{50}/d_{\rm train}$,以测试深度至 256、$d_{\rm train}=16$ 时 $G=16$ 为最大可测值。

与既有方法对比

  • 显式思维链(CoT):同一骨干上,训练范围内完美但到 8 倍长度崩溃至接近随机(swap-$S_5$ 上 512 步为 0.8%)。
  • RLT(Zhang 等,文中引用其报告值):swap-$S_5$ 上 256 步 97.3%,512 步降为 55.7%±25.8;PAR 为 99.5% 与 95.5%±11.0。
  • 固定深度 / 48 层不共享 / 随机 $R$ 循环:外推倍数都低于约 2×,说明「迭代次数」或「参数量」本身都不能替代深度—长度对应关系。
  • 「每圈都监督最终答案」(Chen 2025 一类做法):外推倍数约 2。

优势

  • 给出清晰的因果诊断:监督信号必须定义「一圈做多少」,并且步映射必须平稳;两个条件在消融中都被证明必要。
  • 完全不生成中间 token,推理时可以用学到的「完成信号」自适应停止,不依赖知道问题长度。
  • 只要有「前缀即更短问题」的结构,就可用 prefix self-distillation 只靠最终答案学习,不需要逐步标签。
  • 在 16× 外推下对比 CoT、RLT 等强基线有明显优势。

劣势 / 局限

  • 只在算法型、模板化的状态跟踪任务上验证;作者明确说开放式自然语言推理留待未来,没有顺序分解的任务(如图可达)不在适用范围。
  • 扩展性不确定:更大骨干的结果跨种子波动很大(Qwen2.5-1.5B 到 7B 在 16× 的标准差为 33 ~ 43 分),准确率不随规模单调上升,Qwen3 骨干都达不到 0.5B 的 16× 水平。
  • swap-$S_5$、learned halting 与 prefix self-distillation 只在 Qwen2.5-0.5B 上评估;PAR 的 16× 结果在 swap-$S_5$ 上标准差 11 分,仍不稳定。
  • label-free 变体需要额外的 positional stretch 微调才能达到 16×。

与工业 AI 的关系(作者判断,非论文结论)

工业场景里有大量「按顺序更新状态」的问题:工序/配方步骤推演、批次过程的状态机、设备的开关量时序。PAR 提示:想让模型在训练外的更长序列上仍可靠,需要显式规定「每次内部迭代对应一步」。但目前证据仅限合成任务,不应直接当作工艺推理方案;更可行的是把它当作研究方向,用工艺步骤仿真数据做小规模验证。

待确认事项

  • 待确认:PAR 是否能迁移到自然语言推理与真实工业时序任务 依据:作者在 Limitations 中自述未验证(2026-10-31)
  • 待确认:论文是否提供代码 依据:HF 页面无 githubRepo 字段,全文未见仓库链接(2026-10-31)
核验:arXiv 摘要页标题与提交日期(2026-10-20)核对一致;已读 §3 方法、§4–§6 实验与消融、Limitations;表中数字摘自 Table 1、4、5 与 7。(2026-10-31(北京时间))
2026-10-19arXiv 论文第1期 · 2026-10-31

Kronecker Delta Rule for Long Context Linear Attention(KronLSTM)

面向长上下文线性注意力的 Kronecker Delta 规则(KronLSTM)
Anamaria-Roberta Hartl, Levente Zólyomi, Michael List, Günter Klambauer, Sebastian Böck, Sepp Hochreiter(NX-AI / JKU Linz)
一句话通俗:线性注意力的「记忆矩阵」在更新时会误伤旧记忆;Kronecker Delta 规则只沿「这一对 key-value」自己的方向修改一个标量关联,旧记忆被误伤的概率更小,长文本检索更好。
阅读模式:

报告的主要结果(均为原文自报,非本站复现)

(Table 1,1.5B / 100B tokens,原文自报。)

设置模型Avg-6 ↑LAMBADA ppl ↓
线性GDN57.7312.58
线性KDA58.1212.67
线性GDN-257.9412.54
线性KronLSTM59.7211.72
混合(SWA)GDN-258.7911.85
混合(SWA)KronLSTM59.5611.18
  • 真实召回套件(2k 上下文)Avg-6:线性 30.31(GDN 29.81),混合 37.40(Mamba-3 36.96)。
  • 32k 上下文扩展后:线性 Avg-6 60.19 vs GDN-2 58.75;LAMBADA ppl 7.66 vs 8.36;召回平均 31.08 vs 29.95。
  • 训练吞吐:36.8 ~ 44.5K tokens/s,比 GDN-2 高 11 ~ 18%,在 8K×2 及以下与 KDA 相差 4 ~ 8%,GDN 最快。
  • 反例:RULER S1(高度重复噪声句)上 KronLSTM 明显落后(线性 4k 66.2 vs GDN 100.0;16k 11.6 vs GDN 99.2)。

通俗解释

线性注意力把整个上下文压进一个固定大小的「记忆矩阵」里,边读边更新。更新规则决定了「新信息会不会破坏旧信息」。

最早的 Hebbian 规则只加不改,记忆越积越大、数值不稳。Delta 规则(DeltaNet 系列)会先查一下「这个 key 现在存的是什么」,再改成新值,记忆有界、更稳,但它的修改方向取决于当前记忆内容,凡是 key 有重叠的旧条目都会被连带改动(干扰)。

KronLSTM 的 Kronecker Delta 规则只检查并修正一个标量:「这对 (key, value) 的关联强度是多少」,然后沿着这对输入自己的外积方向去修正。结果是:只有 key 和 value 都与新条目重叠的旧条目才会受影响(而不是 key 重叠就受影响),所以更「手术刀式」,在长上下文检索上受到的干扰更少。

专业解释

背景:线性注意力 $\mathbf S_{t+1}=\mathbf S_t+\mathbf v_t\mathbf k_t^\top$(Hebbian,加性);Delta Rule(Widrow–Hoff)$\mathbf S_{t+1}=\mathbf S_t-\beta_t(\mathbf S_t\mathbf k_t-\mathbf v_t)\mathbf k_t^\top$ 用 $d_v$ 维残差修正,方向由记忆内容决定,会波及 key 重叠的旧条目。

Kronecker Delta Rule:只修正标量 $\mathbf v_t^\top\mathbf S_t\mathbf k_t$(关联强度)向目标 $c_t$:$\mathbf S_{t+1}=\mathbf S_t-\beta_t(\mathbf v_t^\top\mathbf S_t\mathbf k_t-c_t)\mathbf v_t\mathbf k_t^\top$。令 $\mathbf a_t=\mathbf k_t\otimes\mathbf v_t$、$\mathbf s=\mathrm{vec}(\mathbf S)$,则等价于对向量化记忆的标准 Widrow–Hoff Delta Rule(因此 DeltaNet 的 chunkwise 并行形式可直接套用,$\mathbf a_t$ 代替 $\mathbf k_t$)。对其他已存对 $(\mathbf k_i,\mathbf v_i)$ 的干扰是 value 重叠 × key 重叠(式 5),任一因子正交即受保护;而 Hebbian 与 Delta 规则的干扰只由 key 重叠决定。容量:每个三元组 $(\mathbf k,\mathbf v,c)$ 给出 $\mathbf a^\top\mathbf s=c$ 一条线性约束,理论上可精确存 $d_kd_v$ 个标量关联(Delta 规则为 $d_k$ 个向量)。

稳定性理论:期望迭代按 $(\mathbf I-\beta\bar{\mathbf A})$ 收敛到最小二乘记忆;迭代构成马尔可夫链,存在唯一平稳分布;在 $\kappa=\beta\max\|\mathbf a\|^2\le1$ 时 $\mathbb E[\|\mathbf S\|_F^2]\le\mathbb E[c^2]/\lambda_{\min}(\bar{\mathbf A})$,故记忆范数有界。

KronLSTM 块:在 Kronecker Delta 之上加三个解耦的门——遗忘 $\mathbf F_t$(对角,作用于 key 维,$f=(1-\sigma(s_f))^{a}$,$a=\exp(a_{\log})$ 为每头可学习指数)、擦除 $\beta_t$、写入 $c_t$(sigmoid 标量);q/k/v 经短因果卷积 + SiLU + $\ell_2$ 归一化,读出 $\mathbf S_t\mathbf q_t$ 再经 sigmoid 输出门。通过令 $\beta_t\in(0,2)$ 可获得负特征值,用于状态跟踪。

详细算法

1. 问题设定

序列建模层:输入 $\mathbf x_t\in\mathbb R^d$,每头记忆 $\mathbf S_t\in\mathbb R^{d_v\times d_k}$,读出 $\tilde{\mathbf h}_t=\mathbf S_t\mathbf q_t$。目标:在保持线性复杂度与恒定记忆的同时,降低更新对旧关联的干扰,使长上下文(超出训练长度或经上下文扩展后)检索更稳健。

2. 关键公式

Hebbian 线性注意力(式 1):$\mathbf S_{t+1}=\mathbf S_t+\mathbf v_t\mathbf k_t^\top,\ \ \mathbf h_t=\mathbf S_t\mathbf q_t$

Delta Rule(式 2):

$$\mathbf S_{t+1}=\mathbf S_t-\beta_t(\mathbf S_t\mathbf k_t-\mathbf v_t)\mathbf k_t^\top=\mathbf S_t(\mathbf I-\beta_t\mathbf k_t\mathbf k_t^\top)+\beta_t\mathbf v_t\mathbf k_t^\top$$

Kronecker Delta Rule(式 3):

$$\mathbf S_{t+1}=\mathbf S_t-\underbrace{\beta_t(\mathbf v_t^\top\mathbf S_t\mathbf k_t)\,\mathbf v_t\mathbf k_t^\top}_{\text{erase}}+\underbrace{\beta_tc_t\,\mathbf v_t\mathbf k_t^\top}_{\text{write}}$$

向量化形式(式 4,$\mathbf a_t=\mathbf k_t\otimes\mathbf v_t$):

$$\mathbf s_{t+1}=(\mathbf I-\beta_t\mathbf a_t\mathbf a_t^\top)\mathbf s_t+\beta_tc_t\mathbf a_t$$

重复同一对的误差收缩:$\mathbf v_t^\top\mathbf S_{t+1}\mathbf k_t-c_t=(\mathbf v_t^\top\mathbf S_t\mathbf k_t-c_t)(1-\beta_t\|\mathbf a_t\|^2)$,故 $0<\beta_t<2/\|\mathbf a_t\|^2$ 时收缩,$\beta_t=1/\|\mathbf a_t\|^2$ 一步达标。

干扰(式 5):

$$\Delta(\mathbf v_i^\top\mathbf S\mathbf k_i)=-\beta_t(\mathbf v_t^\top\mathbf S_t\mathbf k_t-c_t)(\mathbf v_i^\top\mathbf v_t)(\mathbf k_t^\top\mathbf k_i)$$

KronLSTM 完整更新(式 10,$\mathbf F_t=\mathrm{diag}(\mathbf f_t)$,使用目标 $\tilde c_t=c_t/\beta_t$ 解耦擦除与写入):

$$\mathbf S_{t+1}=\underbrace{\mathbf S_t\mathbf F_t}_{\text{forget}}-\underbrace{\beta_t(\mathbf v_t^\top\mathbf S_t\mathbf F_t\mathbf k_t)\,\mathbf v_t\mathbf k_t^\top}_{\text{erase}}+\underbrace{c_t\,\mathbf v_t\mathbf k_t^\top}_{\text{write}}$$

门(式 11–12):$\beta_t=\sigma(\mathbf w_\beta^\top\mathbf x_t+b_\beta)$,$c_t=\sigma(\mathbf w_c^\top\mathbf x_t+b_c)$,$\mathbf f_t=(1-\sigma(\mathbf W_f\mathbf x_t+\mathbf b_f))^{a}$。

范数界(式 8,$\kappa\le1$ 时):$\mathbb E_{\pi_\beta}\|\mathbf S\|_F^2\le \mathbb E[c^2]/\lambda_{\min}(\bar{\mathbf A})$。

3. 逐步伪代码
# 单头, 逐 token 递推形式 (训练时用 DeltaNet 式 chunkwise 并行, 以 a_t = k_t ⊗ v_t 代替 k_t)
输入 x_t
q, k, v = 线性投影 -> 短因果深度卷积 -> SiLU -> L2 归一化
β_t = sigmoid(w_β·x_t + b_β)                      # 擦除强度 (状态跟踪时用 2*sigmoid, 取值 (0,2))
c_t = sigmoid(w_c·x_t + b_c)                      # 写入强度
f_t = (1 - sigmoid(W_f x_t + b_f)) ** exp(a_log)  # 对 key 维的遗忘, 逐头可学习时间尺度
o_t = sigmoid(W_o x_t + b_o)                      # 输出门

S' = S_t · diag(f_t)                              # 遗忘 (右乘: 按 key 方向衰减)
s  = v^T S' k                                     # 标量: 当前对 (k,v) 的关联强度
S_{t+1} = S' - β_t · s · (v k^T) + c_t · (v k^T)  # 擦除 + 写入, 方向只由 (k,v) 决定
h_t = S_{t+1} q_t                                 # 读出 (线性注意力读出 S q)
y_t = 归一化(h_t) * o_t -> 输出投影
4. 训练 / 推理流程

预训练:FineWeb-Edu(Llama2 tokenizer),训练上下文 8k;主实验 1.5B 参数 / 100B tokens(附录另有 400M)。对比 Gated DeltaNet(GDN)、Kimi Delta Attention(KDA)、Mamba-3、Gated DeltaNet-2(GDN-2)、mLSTM;两种设置:纯线性模型与混合(线性 : 滑动窗口注意力 SWA = 5 : 1,窗口 2048)。长上下文扩展:在 75B tokens 处分支,用 ProLong-64K 衍生的长文档混合再训练 25B tokens(32k),与 100B 模型 token 数对齐,与 GDN-2 对比。状态跟踪:训练长度至 128,评测至 1024(parity、$S_3$ 置换、模算术)。训练效率:单张 H100-80GB,每步 16,384 tokens。

与既有方法对比

  • mLSTM / xLSTM(Hebbian + 指数输入门 + 归一化器):论文称归一化依赖可能很大的量之比,在大模型中引发数值不稳定;stress test 中 mLSTM 梯度范数尖峰,KronLSTM 平稳(Figure 2)。
  • Gated DeltaNet / KDA / GDN-2(Delta 规则家族):修改方向取决于记忆内容,会波及 key 重叠的条目;KronLSTM 的更新方向只由 $(\mathbf k_t,\mathbf v_t)$ 决定,干扰 = value 重叠 × key 重叠。GDN-2 同样分离擦除与写入(通道级),论文用其做上下文扩展的参照。
  • Mamba-3:遗忘机制来自稳定状态空间 ODE;在模算术状态跟踪上优于 KronLSTM 与 GDN,但在常识 / 召回上低于 KronLSTM。
  • 结果(原文自报,1.5B/100B):线性模型 Avg-6 为 59.72,对比 KDA 58.12(+1.6)、GDN-2 57.94;LAMBADA ppl 11.72(GDN-2 12.54)。

优势

  • 规则本身有清晰的理论刻画:干扰为 value 重叠 × key 重叠、误差收缩条件、容量 $d_kd_v$、期望记忆范数有界并收敛到唯一平稳分布。
  • 与 DeltaNet 工程栈兼容:向量化后就是 Widrow–Hoff 规则,chunkwise 并行可复用;吞吐比 GDN-2 高 11 ~ 18%。
  • 在长上下文扩展(32k)后优势随上下文变长而扩大,与「干扰随长度累积」的理论预测相符。
  • 遗忘 / 擦除 / 写入三个门解耦,且用 Mamba 式可学习指数为各头设置不同时间尺度。

劣势 / 局限

  • 仅在 1.5B / 100B tokens(及 400M)规模验证,且混合模型只用 SWA 而非全 softmax 注意力层;作者自述放大规模与加入全注意力层为未来工作。
  • S1(重复噪声)任务上表现很差,作者归因于「重复键的残差累积」;说明该规则对重复 key 的处理有弱点。
  • 状态跟踪在模算术上落后于 Mamba-3;与 GDN 相近而非更强。
  • Avg-6 的差距在个别任务上很小,且每个模型只有一次训练结果,论文未见方差估计(待确认)。
  • 稳定性理论依赖 i.i.d. 输入流等假设,对真实语言序列只是近似。

与工业 AI 的关系(作者判断,非论文结论)

线性注意力 / 递归模型适合边缘侧「长时序、恒定显存」推理:设备振动、PLC 日志、长工单上下文等不需要 KV cache 线性增长。KronLSTM 说明更新规则的选择会影响长上下文检索质量。但当前只在 1.5B 规模的语言建模上验证,且 S1 之类重复噪声场景(日志里很常见)表现较弱;若考虑在边缘部署递归模型处理长日志,应自测重复模式下的召回。

待确认事项

  • 待确认:KronLSTM 是否有开源代码与权重 依据:HF Papers 页无 githubRepo;全文未见代码链接(2026-10-31)
  • 待确认:更大规模(≥7B)与含全 softmax 注意力层的混合模型上是否仍有优势 依据:论文列为未来工作(2026-10-31)
核验:arXiv 摘要页标题与提交日期(2026-10-19)核对一致;已读 §1、§2(含式 1–12)、§3 实验与 Table 1–4、§4 结论;附录证明未逐条验证。(2026-10-31(北京时间))
2026-10-16官方模型卡(实验室发布)第1期 · 2026-10-31

NVIDIA-Nemotron-Labs-Dory1.0-4B:looped(latent-recurrent)4B 语言模型

NVIDIA Dory 1.0 4B:可调节推理循环次数的小模型
NVIDIA(Nemotron Labs;模型卡未署个人姓名)
一句话通俗:同一个 4B 模型,推理时可以让中间那一大段网络「多转几圈」换取更高准确率;转 1/2/4 圈由你按任务选择,不用换模型。
阅读模式:

报告的主要结果(均为原文自报,非本站复现)

(以下均为模型卡表格自报,NVIDIA 统一框架测得;† 为引用的公开分数。)

指标Dory 1 圈2 圈4 圈Qwen3.5-4BQwen3.5-9BQwen3.6-35B-A3B
SWE-bench Verified50.359.561.854.76173.4†
Terminal-Bench 2.112.518.122.2152443
IFBench74.2977.947953.835957.44
GPQA Diamond69.1972.4172.1677.7180.9385.35
HLE(文本,无工具)8.2510.8910.4311.3115.4319.18

DGX Spark 上,MXFP8 / NVFP4 相对 BF16 的速度比为 1.69× / 2.17×(ISL 2560, OSL 300, batch 1)与 1.84× / 2.44×(ISL 128, OSL 1024)。

通俗解释

普通大模型是一条流水线,每个词只过一遍所有层。Dory 把中间的 20 层做成一个「可重复使用的积木」,同一块积木可以反复用 1 次、2 次、4 次。简单任务转 1 圈省钱,难的智能体任务转 4 圈,换来更好的编程与智能体成绩,而且用更少的输出 token。

模型卡提供了一个省内存的开关(last-loop KV cache):不管转几圈,KV 缓存只占「一圈」的大小,这样不会因为多转几圈就把显存吃光。

专业解释

Dory 1.0-4B 是 looped(latent-recurrent)normalized-GPT(nGPT):层堆叠分为 Input(I)、Recurrent(R)、Output(O) 三组,I 与 O 各 8 层,R 为 20 层,R 块在 I 与 O 之间被重复应用,并且「输入被重注入每一次循环」;骨干使用交错的滑动窗口注意力(SWA)与全注意力层,上下文最长 256K。

Elastic inference compute:循环次数在推理时 1 ~ 4 可调,无需重新训练或更换检查点;官方建议默认 2 圈(多数精度增益来自第二圈),智能体类任务(Terminal-Bench、SWE-bench)可用 4 圈。Memory-efficient looping:标准循环为每一圈存一份 KV,显存随圈数线性增长;Dory 支持 last-loop KV caching——每个循环注意力层只保留最后一圈的 K/V(后一圈覆盖前一圈),KV 占用与不循环的同规模模型相当;作者称其精度与 per-loop 模式接近。

训练:预训练 6T tokens,前约 4.5T 用 NVFP4、其余用 BF16,再用 300B tokens 做上下文扩展到 256K;随后 SFT;最后在数学、代码、科学、指令遵循、多步工具调用、多轮对话与结构化输出等环境上用 GRPO 做多环境 RL,采用训练与推理解耦的异步 RL 架构(NeMo RL / NeMo Gym)。

详细算法

1. 问题设定

输入 token 序列,输出自回归下一 token 分布。关键设计问题:如何在参数量固定(4B)的前提下,让每个 token 的计算量可调?Dory 的回答是 参数共享的深度循环:用同一个 20 层 R 块重复计算,把额外算力花在「潜空间思考」而不是更长的输出上。

2. 关键公式

【模型卡只给出结构描述、没有公式】 下式是依据模型卡文字(I/R/O 三组;R 重复;输入重注入每次循环)所做的示意,其中重注入的具体算子 $f$ 未公开(待确认):

$$h_I=I(x),\qquad s_0=h_I,\qquad s_k=R\big(f(h_I,\,s_{k-1})\big),\ k=1,\ldots,n,\qquad y=O(s_n),\quad n\in\{1,2,3,4\}$$

KV cache 内存(模型卡文字):per-loop 模式下 R 层 KV 占用 $\propto n$;last-loop 模式下与 $n$ 无关(每个循环注意力层仅保留最后一圈的 K/V)。

NVFP4(背景):4 位浮点(E2M1)按小块缩放;Dory 用它做前 ~4.5T tokens 的原生预训练,之后切回 BF16。

3. 逐步伪代码
# 推理(示意;f 的具体形式模型卡未公开 -> 待确认)
def forward(tokens, n_loops, kv_mode):          # n_loops ∈ {1,2,3,4}; kv_mode ∈ {per_loop, last_loop}
    h_in = I_block(tokens)                       # 8 层
    s = h_in
    for k in 1..n_loops:
        s = R_block( inject(h_in, s) )           # 共享的 20 层; 输入重注入每一圈
        if kv_mode == "last_loop":
            覆盖写入 R 层的 K/V (只保留最后一圈)
        else:
            按圈各存一份 K/V
    return O_block(s)                            # 8 层 -> logits

# 服务(模型卡示例参数)
vLLM:      --hf-overrides '{"n_recurrent_loops": 2, "recurrent_kv_cache_mode": "last_loop"}'
llama.cpp: --override-kv "dory.num_loops=int:2,dory.recurrent_kv_cache_mode=str:last_loop"
4. 训练 / 推理流程
  1. 预训练:6T tokens,Megatron-LM;前约 4.5T 为 NVFP4,其余为 BF16;数据为爬取 + 合成的代码、数学、科学与通用知识。
  2. 上下文扩展:300B tokens → 256K。
  3. SFT:NVIDIA 精选 SFT 数据。
  4. RL:多环境 GRPO(数学、代码、科学、指令遵循、多步工具使用、多轮对话、结构化输出),异步 RL 架构解耦训练与推理。
  5. 部署:BF16 / MXFP8(W8A16)/ NVFP4(W4A16)/ GGUF Q5_K_M;模型卡注明:vLLM 的 Dory 支持仍在评审中(vllm-project/vllm#60149,需从该 PR 安装);llama.cpp 的支持在 PR #30306 中(需从含 Dory 的源码构建)。

与既有方法对比

  • PAR(本期第 3 项) 讨论的是 looped 模型「循环次数—问题长度」如何对齐;Dory 则是工程化的 looped 产品,用「可调圈数」换取弹性算力。两者共同点:额外迭代本身不保证有用,需要训练目标把迭代的作用定义清楚(待确认:Dory 的具体训练目标未公开)。
  • 同级别非循环模型(模型卡自报,NVIDIA 统一评测框架):4 圈 SWE-bench Verified 61.8,对比 Qwen3.5-4B 54.7、Qwen3.5-9B 61、Qwen3.6-35B-A3B 73.4(† 为公开报告值)。但在 GPQA Diamond、HLE 与知识类指标上落后于 Qwen3.5-4B 及更大者。

优势

  • 同一检查点覆盖不同算力预算:用圈数而不是换模型来权衡成本与精度,部署简单。
  • 额外算力花在潜空间而非更长输出上;模型卡称圈数增加后完成同样任务所需生成 token 更少。
  • last-loop KV cache 让显存占用不随圈数增加,对长上下文与高并发友好。
  • 原生 NVFP4 预训练 + 多种量化格式,4B 规模适合端侧与 DGX Spark 一类小设备。

劣势 / 局限

  • 增益主要出现在编码 / 智能体 / 指令遵循;GPQA、HLE 与知识类指标(AA-Omniscience 约 10,而 Qwen3.5-4B 为 15.02)不升反平,循环不增加参数化知识。
  • 第 2 圈之后收益递减,部分指标 4 圈甚至略低于 2 圈(如 GPQA 72.41→72.16、HLE 10.89→10.43)。
  • 所有数字均为 NVIDIA 自报,且模型卡注明 AA 分数为内部估计、可能偏离官方 AA 分数;评测用部分基准只重复 1 次。
  • 仅英语;模型卡发布时 vLLM 支持仍在 PR 评审中、llama.cpp 需从 PR 源码构建,生态未成熟;技术报告未找到,训练目标与重注入细节待确认。

与工业 AI 的关系(作者判断,非论文结论)

对工业边缘侧很有意思:产线边缘盒子算力有限,「按任务难度选择圈数」可以在同一模型上兼顾实时告警(1 圈)与离线诊断(4 圈)。但它的强项是编码与智能体类任务,而不是知识;用于设备知识问答仍需检索增强。是否适合国产化 / 受限硬件部署待确认(模型卡目标硬件为 NVIDIA Hopper / Blackwell)。

待确认事项

  • 待确认:循环块输入重注入的具体算子、训练目标与是否有配套技术报告 依据:模型卡只给出结构描述;未检索到论文或技术报告(2026-10-31)
  • 待确认:「圈数增加所需生成 token 更少」的具体数值 依据:模型卡中该结论以图给出,本站未读取图中数值(2026-10-31)