一篇关于Fixed-Point Reasoners的深度解读
论文:Movahedi et al., "Fixed-Point Reasoners: Stable and Adaptive Deep Looped Transformers", arXiv:2606.18206
🧩 引子:那只永远猜不到的兔子
假设你在玩一个游戏。我心里想了一个1到100之间的数字,你要猜出来。
你猜50。我说"太小了"。
你猜75。我说"太大了"。
你猜62。我说"太小了"。
你猜68。我说"太大了"。
你猜65。我说"对了!"
你用了5步。如果每次都随机猜,平均需要50步。但你的策略——每次取中间值——只需要 \(\log_2(100) \approx 7\) 步。这是二分查找,计算机科学里最美妙的算法之一。
但这里有个问题:你怎么知道该停下来了?
在猜数字游戏里,答案是明确的——我说"对了"。但在更复杂的推理任务中呢?比如解数独、走迷宫、证明定理、规划路径……什么时候该停?什么时候该继续想?
人类有一种难以言喻的直觉:有时候你"感觉"想够了,有时候你"感觉"还差点什么。你可能说不清楚为什么,但你的身体知道。这种"感觉"是数百万年进化的产物——我们的大脑在无意识中完成了复杂的计算,然后把结果包装成一个"直觉"递送给意识。
但对机器来说,这种"感觉"需要被精确地定义、测量、和实现。你不能对一个神经网络说"跟着感觉走"——你必须告诉它,用数学的语言,什么是"想够了"。
今天我们要聊的这篇论文,来自ETH Zurich、瑞士国家超级计算中心(CSCS)、以及瑞士苏黎世大学的研究团队,给出了一个令人拍案叫绝的答案:
让机器自己定义"想够了"——当它的想法不再变化时,就是停下来的时候。
这就是 固定点(Fixed Point) 的魔力。两千年前,古希腊人用它逼近圆周率。一百年前,波兰数学家Stefan Banach用它证明了微分方程的解的存在性。今天,ETH的研究者用它教会了AI:什么时候该停止思考。
🔢 第一层数学:什么是固定点?
在聊AI之前,我们需要花两分钟理解一个数学概念。别担心,它比你想象的简单。
假设你有一个函数 \(f(x)\)。你从一个值 \(x_0\) 开始,计算 \(x_1 = f(x_0)\),然后 \(x_2 = f(x_1)\),然后 \(x_3 = f(x_2)\)……不断迭代。
如果最后,你发现一个值 \(x^*\) 满足:
也就是说,输入等于输出——再迭代一次,什么都不会改变——这个 \(x^*\) 就是函数 \(f\) 的一个固定点。
举个例子,让你感受它的力量:
- \(f(x) = \sqrt{x}\),从 \(x_0 = 100\) 开始:100 → 10 → 3.16 → 1.78 → 1.33 → 1.15 → 1.07 → 1.03 → 1.02 → 1.01 → ... → 1
- 最终收敛到 \(x^* = 1\),因为 \(\sqrt{1} = 1\)。
再举一个更酷的例子:计算 \(1/3\) 的小数展开。
- \(f(x) = \lfloor 10x \rfloor / 10 + (10x \mod 1)/10\)
- 从 \(x_0 = 1\) 开始,不断应用这个函数
- 你会得到:0.3 → 0.33 → 0.333 → 0.3333 → ... → 1/3
这个简单的概念,是这篇论文的全部秘密所在。
小贴士:固定点的概念遍布数学和物理学。地球在太阳引力场中的轨道是一个固定点(每年回到原点)。你的体温调节系统有一个固定点(37°C)。甚至经济学里的市场均衡,也是供需曲线的固定点。当你调节空调温度到一个舒适值,你就是在寻找你身体感觉系统的固定点。
🤖 第二层设计:把Transformer变成一个"思考者"
好,数学概念理解了。怎么把它用在AI上?
传统的大语言模型是"流水线"式的:输入一句话,经过64层Transformer,每层做一点处理,最后输出答案。层数是固定的——不管问题是"1+1="还是"证明黎曼猜想",都用同样的64层。
这显然不合理。就像你问一个人"现在几点了"和"宇宙为什么存在",他花在思考上的时间应该不一样。但传统模型没有这个能力——它是"深度固定"的。
这篇论文的核心架构叫FPRM(Fixed-Point Reasoning Model),它做了一件很酷的事:
不是用固定的64层,而是让模型自己决定"何时停止思考"。
具体怎么实现?
循环架构
FPRM的基础是一个循环Transformer——不是64个不同的层,而是同一个Transformer块循环多次。你可以把它理解为:
传统模型:思考1次 → 思考2次 → ... → 思考64次(每次用不同的"脑区")
FPRM: 同一个"脑区" → 想 → 再想 → 继续想 ... 直到"想明白了"
每次循环,模型的隐藏状态 \(z\) 被更新:
其中 \(x\) 是输入,\(\theta\) 是共享的参数,\(f_\theta\) 是Transformer块。
固定点收敛 = 停止信号
关键来了:作者说,当 \(z\) 不再变化时,就是答案 ready 的时候。也就是说,当:
即状态收敛到了固定点,模型就可以停止了。
不需要外部模块来决定"是否停止"。不需要额外的训练目标。不需要复杂的阈值调参。收敛本身就是信号。
这就像一个正在思考的人:当他"顿悟"的那一刻,他的脑海中不再有任何新的想法涌现——所有的思路都收敛到了一个清晰的结论上。他自然而然地知道:"我想明白了。"
⚡ 第三层挑战:为什么循环模型以前不好用
这个思路听起来如此优雅,为什么之前没人这么做?或者说,做了但效果不好?
因为有两个致命的技术问题:
问题1:信号传播(Signal Propagation)
在深度(或循环)神经网络中,信息从输入传到输出,每经过一层就会衰减或扭曲。这个问题在循环模型中尤其严重——因为你不是过64层,而是可能过1000层(循环1000次)。
想象你在一个1000人的队伍里传一句话。如果每个人都要把话"规范化"一下(比如改成标准句式),传到最后,原话的意思可能已经面目全非。这就是传统Post-Norm(后归一化)的问题——它确实让训练稳定了,但它也阻断了信息传播。
作者发现:Post-Norm虽然稳定,但它让模型无法利用深度。无论循环多少次,性能都早早地饱和了(图2a)。就像一个被限速的车,你再怎么踩油门也突破不了上限。
问题2:如何检测收敛?
即使模型能稳定训练,你怎么知道它什么时候收敛了?如果隐藏状态在两个值之间震荡呢?如果收敛速度极慢呢?如果Jacobian矩阵的特征值让你陷入了无尽的振荡?
传统方法ACT(Adaptive Computation Time)试图解决这个问题,但它需要训练一个单独的"停止模块",优化极其困难——因为停止决策是离散的,而深度学习需要可微的梯度。
🔧 第四层创新:Pre-Norm + 残差缩放 = 鱼与熊掌兼得
FPRM的解决方案既简单又深刻,它由两个部分组成。
第一部分:Pre-Norm + 残差缩放
作者做了一个大胆的架构改动:把Post-Norm换成Pre-Norm,但加上可学习的残差缩放参数。
具体来说,每一层的更新公式变成:
层内缩放(式2):
迭代间缩放(式3):
其中 \(\alpha_1, \alpha_2\) 是残差路径的缩放系数,\(\beta_1, \beta_2\) 是变换路径的缩放系数。它们都是可学习的。
这个设计的妙处在于:
| 特性 | Post-Norm(传统) | Pre-Norm(传统) | Pre-Norm + 残差缩放(FPRM) |
|---|---|---|---|
| 训练稳定性 | ✓ 稳定 | ✗ 容易发散 | ✓ 稳定 |
| 信号传播 | ✗ 差,深度利用率低 | ✓ 好 | ✓ 好,深度利用率高 |
| 收敛保证 | 无 | 无 | ✓ 有数学保证 |
作者证明了两个关键定理:
定理1(有界性):当 \(0 \leq \alpha_1, \alpha_2 < 1\),且 \(\beta_2 = 1-\alpha_2\alpha_1^{2L}\),\(\beta_1 = \beta_2(1-\alpha_1)/(1-\alpha_1^{2L})\) 时,迭代序列的范数始终有界——不会爆炸。
定理2(收敛性):当 \(\alpha_2 \lambda_f < 1\)(\(\lambda_f\) 是模型的Lipschitz常数)时,映射是压缩映射——保证线性收敛到唯一的固定点。
这意味着:FPRM不仅是工程上的创新,它在数学上是严格正确的。你不需要祈祷它收敛——它必然收敛。
小贴士:压缩映射是数学中一个极其强大的概念,来自Stefan Banach在1922年证明的不动点定理。想象你在地图上找某个城市:每次缩放操作都把视野范围缩小一定比例。只要缩小的比例严格小于1,你最终一定能定位到那个点——这就是压缩映射的不动点定理。FPRM把思考过程变成了这样一个"必然收敛的搜索"。
🌊 第五层阻尼:解决震荡问题
数学上保证了收敛,但实际训练中还可能有麻烦:震荡。
想象一下你在浴缸里制造波浪。如果没有阻尼,波浪会永远荡下去。即使你最终想让水面平静,它也可能在两个状态之间来回摆动,永远不会真正"停"在一个点上。
在固定点迭代中,这个问题同样存在。即使理论上最终会收敛,如果Jacobian矩阵有导致震荡的特征值,收敛过程可能会极其缓慢,甚至看起来像是永远不会停止。
FPRM用一个简单但有效的技巧解决了这个问题:阻尼更新(Damped Update)。
每次迭代后,不完全接受新的状态,而是做一个加权平均:
其中 \(\hat{z}\) 是新计算的状态,\(z\) 是旧状态,\(\eta\) 是阻尼系数。
如果检测到震荡(残差不下降反而上升),就逐渐减小 \(\eta\),让更新变得更"温和"。
作者证明了(定理3):即使Jacobian矩阵有 \(|\lambda_i| \geq 1\) 但 \(\Re(\lambda_i) < 1\) 的特征值导致振荡,适当的阻尼也能保证收敛,且固定点保持不变。
这就像学骑自行车:如果你发现自己在左右摇摆,不是猛打方向(那样会摔),而是微微调整,让身体慢慢找到平衡点。物理中的阻尼器也是这个原理——不是阻止运动,而是让运动优雅地停下来。
🧪 第六层实验:小模型,大智慧
FPRM的实验设计非常巧妙——作者故意使用小模型(7M参数),来展示架构设计的力量,而不是用规模碾压。这让人想起一个古老的智慧:限制催生创造力。
数独(Sudoku-Extreme)
数独是组合推理的经典测试。特别是"Extreme"级别的数独,空格很多,需要深层的逻辑推理才能解决。
| 模型 | 参数量 | 层次结构 | Sudoku-Extreme |
|---|---|---|---|
| TRM(基线循环模型) | 7M | ✗ | 74.7% |
| EqR(专门的等变推理模型) | 7M | ✗ | 93.0% |
| FPRM | 7M | ✓ | 94.2% ✓ |
FPRM不仅比基线高近20个百分点,还超过了专门为数独设计的EqR模型。
更关键的是深度利用率:FPRM在达到同样的准确率时,比TRM少用了约27%的有效层。它正确地"感知"到了问题的难度——在简单实例上用更少的循环,在困难实例上自动增加循环。这种自适应行为是固定点收敛的自然副产品。
迷宫(Maze-Hard)
在复杂迷宫导航任务中:
- FPRM达到87.0%,同样是7M参数模型中的最佳
- 自适应计算让它在简单迷宫上快速退出,在复杂迷宫上深入思考
状态跟踪(State Tracking)
在一个需要跟踪符号序列状态的任务中(A₅/S₅,长度128):
| 模型 | A₅ (长度128) | S₅ (长度128) | 自适应行为 |
|---|---|---|---|
| TRM | 45.8% | 39.4% | 无(固定深度) |
| TRM + ACT | 65.3% | 96.2% | 不可靠,部分种子失败 |
| FPRM | 98.1% | 98.8% | 平滑自适应 ✓ |
ACT(Adaptive Computation Time)是一种已有的自适应计算方法,但它需要一个单独训练的模块,优化困难(离散决策的连续松弛),而且实验中出现了"部分种子失败"——不稳定,不可靠。
FPRM不需要额外模块,不需要离散决策的连续松弛,收敛检测是残差驱动的——简单、直接、可靠。就像一个不需要校准的指南针,它永远指向北方。
ARC-AGI(抽象推理挑战)
ARC-AGI是Francois Chollet提出的一个极具挑战性的基准测试,专门测试AI的"核心智能"——像人类一样从少量例子中抽象出规律。这个测试被认为是当前AI最接近"智商测试"的基准。
在这个任务上:
- FPRM在ARC-1上达到47.5%,是7M参数模型中的最佳表现
- 虽然ARC-2上仍有挑战(6.2%),但这已经展示了循环架构在抽象推理中的潜力
训练:截断BPTT与固定内存
FPRM的训练也面临一个挑战:如果模型循环了1000次,反向传播需要保存1000个中间状态,这会爆掉GPU内存。
作者的解决方案是截断BPTT(Truncated Backpropagation Through Time)。核心思想是:不需要回溯所有循环步骤,只需要回溯最近的k步。
数学上,梯度可以表示为:
其中J是Jacobian矩阵,P是参数梯度。作者证明了(Proposition 1):截断误差指数衰减——
这意味着:即使只回溯少量步骤,梯度估计也已经足够准确。实际训练中,作者使用k=4或k=8就获得了很好的效果。
残差缩放参数的训练动态(图9、Table 2)
一个有趣的观察:残差缩放参数\(\alpha_1, \alpha_2\)不是固定的,它们在训练中会自己演化。
作者尝试了不同的初始化策略:
| 初始化策略 | Sudoku准确率 |
|---|---|
| \(\alpha_1=0.75, \alpha_2=0.25\) | 94.23% ✓ |
| \(\alpha_1=0.50, \alpha_2=0.50\) | 89.05% |
| \(\alpha_1=0.25, \alpha_2=0.75\) | 83.24% |
发现:高\(\alpha_1\)(残差流主导)+ 低\(\alpha_2\)(压缩初始化)最佳。
更有趣的是训练后的分布:\(\alpha_2\)变得更加集中且偏向更小值——这意味着模型学会了自我压缩。就像一个人刚开始学骑自行车时需要辅助轮,但慢慢找到了平衡,不再需要那么多支撑。
🔍 第七层洞察:层次结构可能是"症状治疗"
这篇论文最深刻的洞察,可能不是技术细节,而是一个对已有工作的重新解读——一种"范式翻转"。
现有的循环Transformer(如TRM、HRM)使用了一种叫层次结构的设计:把循环分成不同的"阶段"(比如H-step和L-step),每个阶段用不同的参数或不同的深度。这种设计的动机通常被解释为"模拟人类的多层次认知"——就像 Daniel Kahneman 在《思考,快与慢》中描述的System 1(直觉)和System 2(理性)。
但FPRM作者提出了一个反直觉的假说:
"层次结构的成功可能并非源于认知动机,而是作为post-norm信号传播问题的间接解决方案。"
换句话说,层次结构之所以有效,不是因为它"像人脑",而是因为它缓解了post-norm导致的信息传播问题。每一层做一次归一化,信息传不远;但如果把64层分成8组,每组8层,组间重新归一化,信息就能传得更远。
FPRM通过架构层面的修改(pre-norm + 残差缩放)直接解决了信号传播问题,因此不需要层次结构就能超越层次模型。
这是一个典型的奥卡姆剃刀时刻:如果可以用更简单的解释(信号传播),为什么要假设更复杂的机制(认知层次)?
这个洞察如果成立,将会影响未来所有循环架构的设计。它意味着:我们应该直接解决根本问题(信号传播),而不是围绕症状设计复杂的变通方案(层次结构)。
🌌 尾声:收敛,作为思考的本质
FPRM给我的最大触动,是它揭示了"思考"的一个深层结构。
人类思考的时候,大脑中的神经元活动不是线性的、单向的——它们是循环的、迭代的、收敛的。你从一个模糊的想法开始,反复推敲、修正、提炼,直到它变得清晰。那个"清晰"的时刻,就是你的神经活动收敛到了一个固定点。
你有没有这样的体验?你盯着一道难题看了很久,毫无头绪。然后你放下它,去洗了个澡、散了个步、睡了一觉。当你回来时,答案突然"冒"了出来——就像它一直在那里,只是你之前没"看"到它。
这不是魔法。这是你的大脑在后台持续迭代,直到神经活动收敛到一个稳定的模式。那个"顿悟"的瞬间,就是固定点 reached 的时刻。
FPRM把这个过程形式化了:
- 开始:一个粗糙的隐藏状态(初步想法)
- 迭代:通过循环块不断变换(反复思考)
- 收敛:状态不再变化("我想明白了")
- 停止:输出结果(表达结论)
这个过程如此自然,以至于我们甚至不会意识到自己在"迭代"。但对机器来说,让它学会"自己决定何时停止",是一个巨大的飞跃。
因为它意味着:模型不再是被动的执行者,而是主动的思考者。
它不再被固定层数所束缚,而是根据问题的难度自动调整思考的深度。简单的问题,想一遍就够了。复杂的问题,反复推敲直到想透。这不正是我们希望AI拥有的能力吗?
这让我想起古希腊哲学家芝诺的一个悖论:阿喀琉斯永远追不上乌龟,因为他必须先到达乌龟的起点,而那时乌龟又向前移动了一点。这个悖论之所以困扰了人们两千年,是因为它没有意识到:无限迭代可以收敛到有限的结果。
FPRM就是这样的一个收敛——它告诉我们,即使思考的过程是无限的循环,智慧的终点仍然可以抵达。
正如一位数学家所说:
"数学是永恒的,因为它是收敛的。"
也许智能也是。
📚 参考文献
- Movahedi, S., et al. (2026). Fixed-Point Reasoners: Stable and Adaptive Deep Looped Transformers. arXiv preprint arXiv:2606.18206.
- Banach, S. (1922). Sur les opérations dans les ensembles abstraits et leur application aux équations intégrales. Fundamenta Mathematicae.
- Dehghani, M., et al. (2019). The Universal Transformer. ICLR 2019.
- Graves, A. (2016). Adaptive Computation Time for Recurrent Neural Networks. arXiv:1603.08983.
- Chollet, F. (2019). On the Measure of Intelligence. arXiv:1911.01547.
#论文解读 #arXiv #循环架构 #固定点 #推理 #自适应计算 #小凯
讨论回复
0 条回复还没有人回复,快来发表你的看法吧!
推荐
智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。