精读:三明治包络、输入注入与状态组织的三轴审判——Looped Models Done Right 与那笔藏在全胜账本背面的 5.4 分
把 Huginn 与 Ouro 两个循环模型家族纠缠的三个设计差异拆成可控变量逐轴对照:三明治包络贡献 MATH500 +12.0,输入注入在数学任务上倒贴 3.6,随机初始化与 H/L 双状态没有稳定收益;结论迁到 MoE 仍然成立,8.0B 常驻的 Huginn MoE 把与 32B 前馈基准的平均差距从 4.96 压到 1.71——但完整 Huginn 的数学成绩比它自己的路径中点低 5.4 分。
1 论文概览
一句话总结:把 Huginn 与 Ouro 两个循环模型家族纠缠在一起的三个设计差异——循环放在哪、输入怎么重新注入、隐状态怎么组织——拆成可控变量,从零预训练做逐轴对照后给出判决:三明治包络贡献最大(MATH500 +12.0),输入注入次之但在数学任务上倒贴(−3.6),随机初始化与 H/L 双状态没有稳定收益;这套结论迁到 MoE 上仍然成立,8.0B 常驻参数的 Huginn MoE 把与 32B 前馈基准的平均差距从 4.96 分压到 1.71 分。
核心问题:循环语言模型用同一组物理 Transformer 层在深度方向反复执行,用计算换显存——常驻参数 730M 的模型可以跑出 112 层的逻辑深度。两个代表性家族 Ouro(全栈循环,从 token 嵌入初始化)与 Huginn(前奏-循环-尾声三明治,持续注入前奏表征)在循环位置、输入注入、状态组织三件事上全都不同,此前的性能对比分不清哪个设计在起作用:
Despite their growing influence, the architectural differences between these two families have not been systematically isolated.
(§1)
论文要回答三个问题:三根轴各值多少分;合起来的 Huginn 优势是否就是这几根轴的加和;结论在 MoE 上是否存活。
主要贡献:
- 三轴形式化。把任意 tied 迭代模型写成五步:、、、、(式 1–5)。Ouro 是 全取恒等映射的角点,Huginn 是三者非平凡的角点(表 1),任何既有循环模型都能摆进这张设计空间。
- 控制变量的改造路径。730M 常驻 / 2.9B unrolled 参数、112 逻辑深度、TxT360 数据、四档训练预算(42B/84B/168B/336B token),从 Ouro 出发逐步装上三明治包络(Q1)、前奏条件化的输入注入(Q2)、状态组织变体(Q3),每步只动一根轴。
- 逐轴判决。包络与注入解释了 Huginn 优势的主体,状态组织提供不了稳定增量——终点配置对 Ouro 十项全胜,但这份全胜的账本里藏着路径中点更好的数学成绩。
- MoE 迁移与因果证据。8.0B 常驻 / 793.9M 激活的 Huginn MoE 在 500B token 上对 Ouro MoE 十项中八项领先,负载更均衡;用”冻结路由”干预证明逐迭代选专家这件事本身在因果上贡献性能。
2 方法详解
架构分解。给定 112 层的逻辑深度预算,两个家族的取法是(表 1):
| 设计轴 | Ouro() | Huginn() |
|---|---|---|
| 前奏 | 恒等 | 8 层不共享 |
| 状态初始化 | (token 嵌入) | (随机)或 |
| 输入写入 | 恒等(不写) | 每轮写入 |
| 共享体 | 28 层全栈,循环 4 次 | 12 层中段,循环 8 次 |
| 尾声 | 恒等 | 8 层不共享 |
两侧常驻层都是 28,逻辑执行都是 112 次——参数量与计算量双匹配,差异只剩三根轴。写入门控沿用对角形式(Parcae 的设计):,、,每轮把前奏表征 写回演化中的循环流。
关键创新点是归因方法而不是新架构。论文没有提出新模型,做的是给两个既有家族做受控解剖:同一份数据(TxT360、seq 8192、每步 4,194,304 token)、同一条训练曲线(四档 token 预算)、学习率在 里逐个扫描取最优——给每个变体公平调参的机会,这一点比多数消融实验做得干净。评测覆盖十项基准,按能力分四组:知识(ARC-C/HellaSwag/MMLU/TriviaQA)、上下文抽取(BBH-CoT/DROP)、数学(MATH500/GSM8K)、代码(HumanEval+/MBPP+)。
Q3 的 H/L 对照做了真正的匹配。HRM-Text 的高速/低速双状态设计此前的证据混杂——对比时把更新规则、有效深度、参数量一并动了。这里把循环体、循环次数、注入、参数量、预算全部钉死,只引入第二个状态和 H/L 调度( 个高速周期、每周期 次低速更新,共享同一个循环体),把”状态层级本身”单独拎出来审。
与基线方法的区别。两个前馈参照锚住坐标:(730M,匹配常驻参数)与 (2.9B,匹配逻辑深度)。循环模型的分数落在两者之间还是之外,本身就是”深度能否靠复用买到”的直接读数。
3 实验结果
Q1:包络 alone 就买到了数学。336B token、460 tokens-per-parameter 处(表 2):
| 基准 | Ouro | 三明治 | Δ(三明治−Ouro) | ||
|---|---|---|---|---|---|
| MATH500 | 12.80 | 47.60 | 20.80 | 32.80 | +12.00 |
| GSM8K | 29.11 | 64.22 | 54.97 | 62.02 | +7.05 |
| DROP | 31.04 | 40.88 | 36.38 | 38.99 | +2.61 |
| BBH-CoT | 34.42 | 55.91 | 45.83 | 48.30 | +2.47 |
| TriviaQA | 25.21 | 38.83 | 28.51 | 28.60 | +0.09 |
| HumanEval+ | 21.34 | 42.07 | 29.88 | 28.66 | −1.22 |
单轴换包络,MATH500 抬 12 分、GSM8K 抬 7 分——这两项恰是”深度换推理”叙事最需要证据的地方,且增益在四档预算下都可见(图 5)。知识类几乎不动(TriviaQA +0.09),论文对此的边界划得很清楚:
The observed pattern therefore bounds the benefit of the sandwich envelope: the results are consistent with improved reasoning over instance-provided information, but do not indicate better retrieval of learned knowledge or more reliable compliance with strict output contracts.
(§3.4.1)
Q2:注入是上下文的药、数学的税。表 3 把”写 vs 不写”在两个家族内各做一对:
| 基准 | 中段环:不写 → 前奏写 | Δ | 全栈 Ouro:不写 → 裸 token 写 | Δ |
|---|---|---|---|---|
| BBH-CoT | 48.30 → 54.94 | +6.63 | 45.83 → 47.63 | +1.80 |
| HumanEval+ | 28.66 → 34.15 | +5.49 | 29.88 → 32.32 | +2.44 |
| MBPP+ | 43.12 → 47.35 | +4.23 | 41.01 → 45.50 | +4.50 |
| MMLU | 47.27 → 49.79 | +2.53 | 46.32 → 48.11 | +1.79 |
| MATH500 | 32.80 → 29.20 | −3.60 | 20.80 → 19.20 | −1.60 |
| GSM8K | 62.02 → 59.51 | −2.51 | 54.97 → 55.50 | +0.53 |
注入把每一轮迭代都接回输入,BBH-CoT(题面带示范)、代码(题面带规格)、DROP(题面带证据段)这类”答案藏在 prompt 里”的任务全部受益;代价是数学任务——论文给的解释是反复把状态拉回输入条件化的表征,挤掉了中间量累积需要的自主演化空间:
Persistent prelude-state injection may instead continually pull the state back toward its input-conditioned representation.
(§3.4.2)
Q3:状态组织审了个寂寞。表 4:随机初始化对 ARC-C +3.34、GSM8K +1.22,对 MMLU/MATH500/HumanEval+/MBPP+ 各掉超过 1 分;共享体的 H/L 双状态最惨的一格是 MATH500 从 29.20 掉到 22.00(−7.20)。论文的结论收得很克制:
Random initialization should instead be viewed as a task- and objective-dependent inductive bias, rather than as a universally beneficial design choice.
(§3.4.3)
端点全胜的账本要翻到背面看。装齐三件的完整 Huginn(随机初始化列)对 Ouro 十项全胜——但 MATH500 只有 27.40,比路径中点”三明治 + 不写”的 32.80 低 5.40 分;GSM8K 60.73 也低于中点的 62.02。包络买来的数学优势,被注入和随机初始化各自收走了一截。全胜是真的,帕累托最优不是。
MoE 迁移。两个完整架构各把 FFN 换成 25 专家 top-2 路由(28 个路由层、8.0B 常驻、793.9M 每轮激活、unrolled 后约 3.2B 激活),500B token(表 5):
| 基准 | 前馈 (32.0B 常驻) | Ouro MoE | Huginn MoE | Δ |
|---|---|---|---|---|
| GSM8K | 80.82 | 78.92 | 83.62 | +4.70 |
| MATH500 | 53.40 | 49.80 | 53.40 | +3.60 |
| MMLU | 67.13 | 64.03 | 66.81 | +2.78 |
| DROP | 56.81 | 57.70 | 59.65 | +1.95 |
| TriviaQA | 59.02 | 50.98 | 51.04 | +0.07 |
| HumanEval+ | 56.10 | 48.17 | 49.39 | +1.22 |
对 Ouro 十项八胜,数学增益最大(GSM8K +4.70)。对前馈基准:DROP 与 GSM8K 反超,MATH500 打平,TriviaQA 还差 7.98 分——知识缺口与前馈 32B 常驻参数的四倍容量差直接挂钩。全部九项可比分上,循环-前馈平均差距从 dense 的 4.96 分缩到 MoE 的 1.71 分。
路由诊断给了因果证据。Huginn MoE 的负载均衡损失全程低于两个对照(图 10);top-2 专家分布随循环轮次变化(图 11)。关键一步是干预实验:强制第 2–8 轮复用第 1 轮选中的专家身份、只保留轮次专属的混合权重:
Forcing iterations 2–8 to reuse the expert identities selected at iteration 1, while retaining iteration-specific mixture weights, reduces accuracy on all six evaluated tasks.
(§4.3)
六个评测任务全线下滑——轮次专属的专家选择不是装饰,是性能的组成部分。
4 个人分析
亮点。
- 归因研究的工艺标准。同数据、同深度、同预算、逐变体扫学习率取最优,四个训练档位的曲线而非单点,这在”架构对比”类论文里少见。多数架构论文的消融只在最终配置附近微动,这份工作把两个家族的公共骨架抽出来做成坐标系,后续任何循环模型设计都该先在这张表里报坐标。
- 单轴效应与能力分组对齐得干净。数学 ↔ 包络、上下文与代码 ↔ 注入、知识 ↔ 独占参数,三条线各自独立成立,交叉处(注入伤数学)也被如实报出。这种”每个设计买什么、花什么”的记账方式比单一只看平均分的对比信息量大一个量级。
- 容量与计算的解耦读数。TriviaQA 上循环模型贴着 (28.60 vs 25.21,距 的 38.83 很远),MATH500 上三明治拿到 增幅(47.60−12.80=34.8)的 57%(20.0/34.8)——知识存储吃独占参数,多步推理吃可复用计算,一张表把”深度该买什么”讲清楚了。
- 干预实验补上了因果链。路由均衡与性能的相关性谁都能报,冻结路由再测的消融把相关性升级成因果。
局限性。
- 单一规模(730M/8B MoE)、单种子,作者在 §5 里自己列了 scaling ladder 与多种子复现的欠账。十项基准上 1–3 分级别的差异在种子方差下是否稳定,没有答案。
- MoE 对比是两个完整角点的端到端比较,三根轴在 MoE 里没有单独拆——dense 结论是否逐轴迁移,严格说只验证了”组合迁移”。
- 注入伤数学的机制停留在假说(写入强度?注入位置?与前奏表征的相互作用?),论文承认未定位。既然对角写入门控的 是可学的,按任务调制写入强度是一个显然没做的实验。
- 500B token 对 3.2B unrolled 激活约 156 token/参数,两侧 MoE 都按今天的标准欠训练;TriviaQA 的 7.98 分缺口有多少来自容量、有多少来自训练不充分,无法从现有数据分离。
对大模型领域的影响。这篇论文把循环模型从”有趣的玩具”推向”有设计准则的架构家族”:中段循环 + 前后不共享层的配方值得当默认起点。NVIDIA 的 Dory 1.0(8 层输入 + 20 层共享 + 8 层输出,本文之外的产品化证据)已经用了同款三明治结构,这篇论文等于补上了该设计受控实验层面的辩护。对推理侧的吸引力在常驻内存:8.0B 常驻对 32.0B 常驻是 75% 的削减,配合循环次数可调,天然支持”按问题难度花深度”的测试时计算策略。MoE 与循环的组合另有惊喜——轮次专属路由等于把 25 个专家当成了一个随深度变化的功能池,这条线值得单独展开。
5 实践启示
可以借鉴的技术。
- 的层配比。常驻 28 层里前后各 8 层不共享、中段 12 层循环 8 次,在 336B token 规模上是全栈循环的稳定上位替代。若做循环模型,从这组比例起步。
- 对角写入门控。、 的参数化保证写入强度非负、衰减与写入耦合,是一个可直接搬进任何迭代模型的组件——数学任务上的负效应提示:给 加任务条件或按轮次退火,是现成的改进口。
- 冻结路由干预。把”复用第一轮专家身份”当成探针,成本极低,能直接测出 MoE 里各维度(层、轮次、专家)的调度自由度哪些在承重。这个诊断手法对任何 MoE 训练都适用。
- 能力分组记账。知识/上下文/数学/代码四组的消融读法,比平均分能更早暴露设计的真实收益面。
潜在应用场景。
- 显存受限部署。消费级显卡(16–24GB)跑 8B 常驻、逻辑 112 层的模型,替代 32B 前馈——DROP/GSM8K/MATH500 打平或反超的前提下,TriviaQA 类知识密集任务要靠外挂检索补。
- 按难度调深度。训练时固定循环 8 次,推理时对简单样本减轮次、困难样本加轮次,是比早退更细的测试时计算旋钮(论文未做,Dory 与 Huginn 原作的可变深度推理已有先例)。
- 数据工程的启示。写这篇文章时对照自己手上的预训练管线,三明治包络的增益集中在”推理”而非”知识”——给小常驻模型堆深度的预算,不如拿去买数据多样性;知识容量这块短板由独占参数决定,复用计算补不上。
参考文献
- Huang, B., Shi, C., Chen, J., Wen, S., Liu, Z., Xing, E., Ma, X., Towards Looped Models Done Right, Part I: Topology, Input Injection, Recurrent-State Design, arXiv:2610.23036(本文,全部表格与引文出处:表 1–5、图 5/10/11/12、§1/§3.4.1/§3.4.2/§3.4.3/§4.3/§5)。
- Geiping, J. et al., Scaling up test-time compute with latent reasoning: A recurrent depth approach, arXiv:2502.05171(Huginn 原作,recurrent depth 与可变深度推理)。
- Zhu, R.-J. et al., Scaling latent reasoning via looped language models, arXiv:2510.25741(Ouro 原作,全栈循环家族)。
- Prairie, H. et al., Parcae: Scaling laws for stable looped language models, arXiv:2604.12946(对角写入门控 的来源)。
- Gao, Z. et al., MoEUT: Mixture-of-experts universal transformers, NeurIPS 2024(循环与稀疏专家的早期组合)。
- Soldaini, L. et al., TxT360(训练语料,99 个 Common Crawl 快照去重 + 14 个策展源)。
- Gholami, A. et al., AI and memory wall, arXiv:2403.14123(算力增长快于内存带宽的硬件背景)。
相关精读
-
本篇把本专栏连续五十五期的主线再挪一格:此前五十四期回答的是「挑哪些 token、挑哪些轨迹、信用按哪套口径记账、信号被消费时旧了多少、数据分布离基座多远、整条响应有没有资格参与这次更新、策略容量会不会被优化动力学耗光、教师分布里哪些位置允许比较、事后经验除了改行为还能不能改行动之前的那次预测、参考模型的 KL 该从哪条边进组相对更新、教师的意见从哪条通道进 RL、off-policy 校正的记账区间有多长、裁剪区间那两个端点由什么决定、干预落在流水线的哪一环、逐步信用从哪个模型里来、一个已经报出来的增益该怎么拆账、这些信号最终以什么形状落到参数上、结局空间该分成几档、同一笔优势在响应内部怎么分、教师交出来的那笔位移里哪些前缀有资格进损失、这笔信用在更新里当斜率还是当终点、一次迭代该对齐到任务的哪一格、一份外部语料要进模型,是作为检索出来的文本进上下文,还是作为预测出来的隐状态进解码器、模型内部被拆出来的那批坐标能不能当作可以相加的行为解释单元、思考预算拧大之后,模型换掉的是对一个句子的读法,还是只换掉了答对的比例、一组 token 压成一个向量时,这个压缩动作本身该不该由输入自己解出来、一份原生多模态预训练预算该在三个模态之间怎么切成参数、token 与重复次数、生成过程里没有左右顺序时 token 级信用该记在什么量上、当奖励本身就是一份由打分器算出来的清单覆盖率时,优化器在最大化哪一样,以及给这份奖励补上一个精确率项之后,模型缩短的究竟是废话还是内容」;这一期问的是当参数量被钉死、深度靠同一组权重反复复用来买时,多出来的计算到底在买什么——三明治包络、输入注入、隐状态组织这三件被既往工作捆在一起卖的设计,各自值几分——上一期退到损失的上游看奖励函数的形状,这一期退到最上游:计算本身的组织方式。