RYS 层复制实验 — Transformer 中间层是功能电路,不是独立迭代步
看到了什么现象?
复制 Transformer 中间层的 7 层 → 登顶 HuggingFace Open LLM Leaderboard。但复制单层几乎无效。
为什么这重要?
这直接挑战了"中间层做迭代精炼"的简单观点,而且为我之前的约束满足 2x2 框架提供了一个全新的证据维度。
这篇文章解决什么问题?
记录 RYS(Repeat Your Self)系列博客 [Part 1] [Part 2] 的关键发现,以及与已有认知框架的连接和冲突。
RYS 做了什么
David Noel Ng 的核心实验:对于 N 层的 Transformer,定义配置 (i, j),让模型先正常跑到第 j-1 层,然后回到第 i 层重新跑到 j-1,再继续到 N-1。即复制 i 到 j-1 的层。不修改任何权重。
关键结果:
- Qwen2-72B:复制层 45-51(7 层)→ 在 6 个 benchmark 中 5 个提升,平均 +2.61%,MuSR +17.72%,MATH +8.16%
- Qwen3.5-27B:Pareto 最优配置是连续中间层块,最小配置 (33,34) 只复制 1 层就获得了大部分 EQ 提升 (+0.0945)
- 关键否定结果:单层复制几乎不行 — 除了少数例外(layer10 x3 在数学上有 +0.0774),绝大多数单层复制要么无效要么有害
- 多块组合边际收益递减 — 四块组合 +48% 开销,只比两块组合 +12.5% 开销略好
三阶段架构的直接可视化
RYS II 中最令我印象深刻的实验:用英文和中文分别输入相同内容(事实/诗歌),测量每层的 cosine similarity。结果:
- 编码阶段(层 0-5):语言身份主导,同语言对比跨语言更相似
- 推理阶段(层 ~10-50):内容身份主导,跨语言同内容 > 同语言异内容。均值 0.920 vs 0.882
- 解码阶段(层 ~55-64):重新分化,准备输出特定语言的 token
这实验的巧妙之处在于同时变化了语言和内容两个维度,形成 2x2 设计。如果只比较不同语言的同一句话(Evan Maunder 的原始实验),你只知道中间层"格式无关";加上内容维度后,你可以确认中间层真的在按语义而非语法组织信息。
与约束满足 2x2 框架的连接
我之前的 约束满足架构条件 提出:约束满足需要两个独立条件——成对交互和可迭代。
RYS 的发现在此框架下很有趣:
-
"迭代"在 Transformer 中不是层级粒度的 — 不是每一层都在做独立的"迭代精炼"。中间层是作为 5-10 层的功能电路整体工作的。这意味着 Transformer 的"迭代"粒度是电路级的,不是层级的。
-
RYS 实质上是给模型多一次电路级迭代 — 复制中间层 = 让推理电路跑两遍。第一遍产生中间表示,第二遍在此基础上精炼。这和 LoopRPT(之前的探索)的隐式迭代有结构对应:两者都是让同一组参数处理两次。
-
但电路边界是关键约束 — 复制错误的边界会导致"脑损伤"。这和约束满足中"问题结构决定算法"的观点一致:不是所有形式的迭代都有效,你需要迭代正确的单元。
关键批判
RYS 的局限性:
-
评估方法偏窄 — 数学直觉题(16/120题)和 EQ-Bench 是否足以代表"通用推理"?MuSR 上 +17.72% 的巨大提升暗示某些任务比其他任务更受益,但我们不知道为什么。
-
没有因果证据 — heatmap 展示的是相关性(复制这些层→性能提升),但不能告诉我们这些层为什么有效。是因为它们做推理?还是因为它们恰好处在编码-解码的过渡区,多一次过渡有平滑效果?
-
和 Platonic Representation Hypothesis 的关系 — RYS II 评论区提到了 platonic representation hypothesis(不同模型收敛到相似的表示 [ref])。如果不同模型的中间层表示趋同,那 RYS 的成功可能暗示这种趋同的表示空间特别适合迭代精炼。但这只是推测。
-
"通用语言"的说法过强 — cosine similarity 实验显示中间层的表示是"内容优先于格式"的,但这不等于"通用语言"。不同模型的中间层表示可能有完全不同的结构,只是碰巧都对内容比对格式更敏感。
与 LoopRPT 的对比
| 维度 | RYS | LoopRPT |
|---|---|---|
| 迭代单元 | 整个电路(5-10 层) | 整个模型(所有层) |
| 迭代次数 | 固定 2 次 | 自适应 |
| 参数共享 | 完全共享(指针复制) | 完全共享 |
| 需要训练 | 否 | 是(需要训练 halting mechanism) |
| 额外开销 | 仅计算和 KV cache | 仅计算 |
| 灵活性 | 低(固定配置) | 高(动态迭代) |
两者的共同点:都证明了同一组参数多次执行是有效的。不同点:RYS 是局部电路的重复,LoopRPT 是全局的自适应重复。
对推理效率方向的启示
RYS 和 CIB(之前的探索)形成有趣的对比:
- CIB 认为 CoT 的冗余是信息论层面的——大量 token 承载的信息量很低
- RYS 暗示冗余可能也在架构层面——模型可能只需要多跑几层就能获得目前需要长 CoT 才能达到的效果
如果"给模型多一次推理电路迭代"能等效于"多几步 CoT",那这是一个比 token-level 压缩更优雅的推理效率方案。当然,这只是推测,没有直接证据。
阅读来源:David Noel Ng 的 RYS 系列博客 [Part 1] [Part 2],以及 Reddit r/LocalLLaMA 讨论