logo

循环深度:一组参数反复推理的大模型新架构

作者:谁偷走了我的奶酪2026.11.11 00:29浏览量:0

简介:循环深度(recurrent depth)通过复用同一组Transformer参数,在潜在空间中迭代精化内部表示,让模型获得可调节的“思考深度”。本文梳理其技术脉络与核心机制,解读小参数量循环模型逼近大模型等效计算、循环并非越多越好等关键实证结论,并给出在既有模型上叠加循环结构的工程思路与部署建议,帮助读者判断该范式是否适合自身场景。

一、背景:当“堆层数”遇到边际收益递减

过去数年,大语言模型的能力提升主要依赖三条曲线:更大的参数量、更多的训练数据、更长的上下文。这些手段的共同代价是,参数量、显存与推理成本随模型规模线性甚至超线性增长。与此同时,研究社区逐渐意识到一个事实:不同输入的“难度”差异极大,让简单问题与复杂推理题消耗相同的静态计算,本身就是一种浪费。

由此,“测试时计算扩展”(test-time scaling)成为新的关注焦点:与其在训练阶段把所有能力固化进固定深度的网络,不如让模型在推理阶段按需分配更多计算。目前这条路线分化为两种代表性做法:

  • 显式路线:让模型在输出空间生成更长的中间推理步骤(即思维链),以更多 token 换取更高质量;
  • 隐式路线:让模型在潜在空间(latent space)中对内部表示进行多轮迭代精化,不产生可见 token。

循环深度(recurrent depth)正是隐式路线的集大成者。近期有新一代旗舰模型被业界推测采用了此类架构,并由此获得跨越式的推理能力提升,这让“循环”重新回到架构研究的聚光灯下。

二、核心思想:把“深度”从静态资源变成可调预算

2.1 形式化定义

传统 Transformer 的深度由堆叠层数决定:第 1 层的输出交给第 2 层,第 2 层交给第 3 层,每一层拥有独立参数。循环深度的做法截然不同——只保留一组(或少数几组)Transformer 块,并让同一组参数沿“深度方向”反复执行 k 次:

  1. h0 = Embed(x)
  2. h(t+1) = Block(h_t | x) # 同一组权重
  3. y = Head(h_k)

参数量不随 k 增长,而等效计算深度随 k 线性增加。这与循环神经网络(RNN)沿时间维度展开的循环形成呼应,区别在于:RNN 循环的是序列时间步,循环深度循环的是表示抽象的层级。二者的共同点是权重共享带来的归纳偏置——模型必须学会“用同一个函数迭代逼近答案”。

2.2 思想脉络

这一思路并非凭空出现。早期就有一批权重共享类研究尝试把 Transformer 的可并行性与循环结构的归纳偏置结合起来:固定总计算预算,让同一组层在不同位置反复调用,从而在数据受限时也能获得更好的泛化。受限于当时的训练规模与工程条件,这类工作长期停留在“学术上有启发、工业上难规模化”的阶段。

2025 年前后,有研究正式提出并系统验证了“循环深度”这一概念,用可控实验证明:在小到中等规模上,循环深度带来的测试时扩展收益真实且可量化。此后多项规模化验证工作进一步表明,该范式已跨过“学术玩具 → 可规模化训练范式”的临界点。

三、为什么有效:潜在空间中的隐式推理

3.1 每一轮循环都是一次“思考迭代”

可以将单次循环理解为对当前表示的一次精化:第一轮粗读,第二轮聚焦矛盾,第三轮校正细节……模型在潜在空间中完成了传统架构需要显式生成思维链才能完成的推理过程。由于中间状态是连续向量而非离散 token,这条路线有两个天然优势:

  • 无 token 开销:迭代过程不占用上下文窗口,也不产生对用户可见的冗长输出;
  • 延迟与成本可调:循环次数是推理期超参数,同一份权重可按场景提供“快速档”与“深思档”。

3.2 与显式思维链的互补

显式思维链可解释性好,还能借助采样与验证进一步提质,但推理延迟与上下文成本随思考长度线性膨胀。循环深度把推理过程“折叠”进前向计算内部,二者并不互斥:实践中完全可以在循环精化之后,再叠加显式推理步骤,形成“隐式酝酿 + 显式展开”的组合。

3.3 代价

隐式推理的代价是可解释性变差:我们无法直接“读出”模型在第 3 轮循环里想了什么,只能借助探针与可视化间接观察。此外,循环引入了新的超参数(循环次数、停止准则),训练与推理协议需要精心设计。

四、关键实证结论:收益真实,但“循环不是越多越好”

4.1 小模型 + 多循环 ≈ 大模型的等效计算

有研究给出了一个颇具冲击力的数据点:一个约 3.5B 参数的循环模型,仅通过在推理时增加循环次数,就能达到约 50B 参数模型的等效计算水平。需要强调的是,“等效计算”描述的是前向计算量级的对齐,并不等价于“全面能力对齐”——但即便如此,它也说明:在计算受限的场景下,循环深度提供了一条用时间换质量、用复用换参数的现实路径。

4.2 “两次最优”现象及其解释

另一些研究观察到一个看似矛盾的现象:在部分设置下,“循环两次接近最优,三次以上反而回退”。目前较为公认的解释包括:

  • 训练-推理不匹配:若训练时只见过固定的循环次数,推理时强行增加,表示会漂移到训练分布之外;
  • 残差流饱和:重复迭代同一组变换,若缺乏归一化与残差缩放的精细设计,表示容易退化为近似不动点,后续循环的信息增量趋近于零;
  • 缺乏新信息注入:若每次循环的输入条件完全相同,迭代很容易收敛到平凡解。

换句话说,“两次最优”更像是朴素实现的天花板,而非范式本身的极限。前沿系统的通行做法包括:训练时随机化循环次数、课程式逐步增加深度、在每一轮循环中重新注入对原始输入的注意力回读,让“迭代”变成“带着上下文的迭代”。被广泛推测采用循环架构的新一代模型之所以能实现断崖式领先,合理的推测正是在这些环节上做了系统性工程。

五、工程落地:给已有模型“套一个循环外壳”

5.1 免重训的增益路径

循环深度的另一吸引力在于:它不一定需要从头训练。已有研究表明,可以在既有开源预训练模型之上,通过少量参数的循环适配结构(冻结主干、学习若干循环间变换),在少量继续训练后获得质量提升。对工程团队而言,这意味着:

  • 参数量不变,显存占用不增(权重共享反而降低激活存储压力);
  • 主干能力被完整保留,循环结构只负责“多想几步”;
  • 推理循环次数可在线调整,天然支持质量-延迟权衡。

5.2 示意伪代码

  1. # 循环深度前向过程(示意,非任何具体框架接口)
  2. def looped_forward(model, tokens, max_loops=4, min_loops=1):
  3. h = model.embed(tokens) # 嵌入
  4. for t in range(max_loops):
  5. h = model.block(h, memory=tokens) # 同一组参数反复调用
  6. # memory: 每轮回读原始序列,避免平凡收敛
  7. if t + 1 >= min_loops and model.exit_head(h) > tau:
  8. break # 自适应停止:按难度决定思考深度
  9. return model.head(h)

两个工程要点:其一,循环间的“回读”机制是避免表示退化的关键;其二,自适应停止(根据隐藏状态置信度决定是否提前退出)可以大幅压低平均延迟——简单问题一至两轮即出,难题才启用完整预算。

5.3 评估方法

建议采用“循环次数扫描 + 质量-延迟帕累托曲线”作为标准评估:固定模型与数据,扫描 k=1,2,4,8,…,分别记录基准质量与推理时延,画出帕累托前沿。若曲线明显优于同等参数量的非循环基线与同等计算量的加深基线,则循环深度的收益即得到确认。

六、部署视角:一个模型,两档服务

循环深度对线上服务结构的改造是优雅的:同一份权重,通过循环次数即可分化出“标准档”与“深思档”两种服务水平。配合自适应停止,绝大多数请求在低循环数下完成,只有高难度请求消耗完整预算,整体算力成本可控。

在基础设施层面,该范式的需求与常规大模型训练/推理并无本质不同:高带宽 GPU 资源、弹性容器平台、对象存储用于存放检查点与数据集、日志与监控告警体系跟踪循环次数分布与长尾时延。例如,依托百度智能云的 GPU 云服务器与容器类产品即可搭建消融实验环境;上线前重点监控两个指标,线上循环次数的分布(判断自适应停止是否失灵),以及帕累托前沿在真实流量下的漂移。

七、局限与开放问题

  • 停止准则尚无共识:固定次数简单但粗糙,学习式退出则增加训练复杂度;
  • 极深循环的表示退化仍未被完全解决,归一化与残差设计高度依赖经验;
  • 可解释性:潜在空间的“思考”难以审计,高合规场景需搭配显式推理与日志留痕;
  • 理论解释不足:为什么同一函数的迭代能产生如此丰富的计算,目前更多是实证而非定理。

八、小结

循环深度把“模型的思考深度”从训练期锁死的静态属性,变成了推理期可调的动态预算。它的价值链条清晰:参数复用降低训练与显存成本,测试时扩展撬动超出参数量的等效计算,循环次数提供细粒度的质量-延迟旋钮。对于资源受限却追求推理质量的团队,以及希望一份权重服务多档 SLA 的平台方,这都是一条值得投入评估的路线。可以预期,随着训练协议与停止机制的进一步成熟,“加深”与“加循环”将不再是二选一,而是大模型架构设计中两个相互正交的旋钮。

发表评论

活动