Huginn:prelude、循环块、coda

Geiping 等(2025)的 Huginn 是个 3.5B 的模型,结构分三段:

  • prelude(2 层):把输入变成 embedding $e$;
  • 循环块(4 层):反复跑;每一圈都用一个 adapter 把当前状态 $s$ 和 $e$ 拼起来、再压回原来的宽度,相当于每圈把输入重新喂一遍;起始状态 $s_0$ 是随机的;
  • coda(2 层):把最后的状态变回下一个 token 的分布。

训练随机采样递归深度,配置期望约 32 圈,反向最多穿过最后 8 圈。更早的状态仍参与前向,只是不保留完整反传链;这不是完整展开目标的无偏梯度。论文在约 800B token 训练的模型上报告了增加推理计算的收益;“50B 等效计算量”不是 50B 的参数容量,更不是每一题随圈数单调变好。

Ouro:把循环放进预训练

Ouro(2025;以下按 v5,2026-07-01;2026-10-11 的 v6 中所引内容未变)重复 decoder 层栈,不是每圈重新查一次 token embedding:

Ouro 1.4B Ouro 2.6B
层数 × 宽度 24 × 2048 48 × 2048(由复制层扩展)
最终配置的循环次数 4 4
训练 token 7.7T 7.7T

7.7T 是完整训练路线的 token 账,包括两种尺寸分叉前的共同阶段,不表示 2.6B 从第一步就独立训练了这么多。表 1 和 §4.3 记载,共同的首个 3T-token 阶段使用 8 圈,随后因稳定性问题降为 4 圈,并扩展出 2.6B 分支;不能把最终的 4 圈配置当成整个训练过程。深度外推也不保证提升。退出 gate 和实际执行循环的区别在上一篇。

Relaxed Recursive Transformers:从现成模型改过来

Bae 等的工作从预训练(pre-training)模型初始化共享层,再继续训练;不同深度的小 LoRA 允许它们有一定差别,也需要额外参数。论文中的模型比较有指定任务和训练预算,并非“绑好权重就无损压缩”。其 2–3× 吞吐潜力来自理论 / 模拟及 oracle early-exit 条件,不是直接部署必得的收益。

放在一起看

怎么循环 训练时转几圈 每圈注入输入 深度怎么定
Huginn 中间 4 层 随机,平均 32 是 推理时指定圈数
Ouro decoder 层栈 共同阶段 8,之后 4 否 gate 选择输出;是否跳过计算看引擎
Relaxed Recursive 共享基座与按深度区分的 LoRA 配置的最大深度 否 可研究 early exit 与深度组批
Mixture-of-Recursions 共享 block 由 router 分配 否 每个 token 一个深度

Mixture-of-Recursions 的路由和缓存边界见自适应深度。选型时至少固定 checkpoint、最大圈数、输入 / 输出长度、dtype、KV 方案和 batch;不然“参数更少”与“服务更快”很容易被混成同一件事。

本页术语 1
预训练 pre-training
先用大量数据学习通用表示和能力,再适配具体任务