700万参数模型迭代两万次:准确率从62.2%跌到58.1%再冲到97.9%
你可能听说过一个说法:让AI模型多想几遍,答案会更准。这个直觉大体上没错,就像你做数学题,演算两遍比演算一遍更容易发现错误。但如果让AI"想"两万遍呢?2025年底,一群研究者在做一个实验:训练一个只有700万参数的小模型去解极难的数独题,然后让它反复迭代计算,看看准确率会怎么变化。按常理,迭代次数越多,模型应...
有个说法流传挺广:AI模型多琢磨几遍,给出的答案会更靠谱。这个直觉大体没错,跟你做数学题演算两遍比一遍更容易揪出错来是一个道理。
可要是让AI“想”上两万遍呢?
2025年底,有研究团队做了一项实验:拿一个仅700万参数的小模型去解极难的数独,再让它反复迭代计算,观察准确率如何变化。按常理,迭代次数越多,模型该越接近正确答案。实验结果却出人意料:准确率一开始持续攀升,冲到62.2%的顶峰,随后掉头往下,迭代越多反而越差,最终跌到58.1%。
这并非训练没做到位,而是结构性的毛病。论文作者把这个毛病挖了出来,还给出了解法,让同一个模型在两万多次迭代之后仍在进步,准确率最后冲到97.9%。
论文题为《Scaling to Tens of Thousands of Test-Time Iterations with Loop-Native Attention Residuals》,核心方法叫InfiLoop。
循环神经网络这件事,说起来有点意思
先把这里的“迭代”讲清楚。
有一类AI模型叫循环Transformer*(循环Transformer:一种重复使用同一组神经网络参数、反复对输入进行处理的模型结构,每循环一次相当于增加一层计算深度,但不增加参数量)。它跟普通深度网络一层层堆不同参数的做法不一样,用的是同一套参数反复处理,循环次数越多,计算的“深度”越大,理论上能处理的问题也越复杂。
这个思路的好处很直接:参数量不用加,只要测试阶段多算几轮,模型就能变得更“聪明”。碰上数独、迷宫寻路这类要多步推理的任务,这种反复琢磨的本事很关键。
毛病出在“上一轮的结果怎么交给下一轮”这件事上。
眼下主流的做法叫carry-last规则*(carry-last规则:每一轮计算结束后,把这一轮产生的新状态直接作为下一轮的输入,完全替换掉之前的状态),说白了就是“这一轮算出来的东西原封不动交给下一轮,之前算过什么都不管”。
问题就卡在这儿。论文作者发现这个规则有隐患:新一轮算出来的结果未必比上一轮强,carry-last却照单全收,把旧状态彻底冲掉。某一轮计算要是掺了噪声或者出了错,这个错误会直接污染下一轮的起点,而且没有任何机制能帮你把先前正确的部分捞回来。
论文做了一个很直观的对比实验。他们用TRM(一个典型的carry-last模型)解数独,追踪模型每轮迭代后“改主意”的程度。结果显示:第36到72轮之间,TRM平均每道题要改动77次预测,错格子数量还在涨。更糟的是,第36轮时两个模型都已正确预测了142万个空格,可后续迭代里,TRM把自己20.9%的正确预测推翻改错了。InfiLoop这边只推翻了2.4%。
这就像你做完一套数独,检查一遍确认全对,偏偏有个“习惯”让你忍不住再去动已经填好的格子,改着改着把对的改成了错的。而且这“手欠”的毛病越往后越重:论文发现TRM解出答案后,状态变化率会先降到3%,很快又反弹回10%并一直居高不下,9轮之后开始丢失已经解出的答案,36轮后丢了19.7%的正确解。
你要是见过那种做完题还反复涂改、越改越乱的学生,大概能理解这个现象。不是能力不够,是没人告诉它“这儿已经对了,别动了”。
问题到底卡在哪:旧的信息只能靠最新状态来“转达”
为什么会出现这个问题?
论文的解释是:carry-last规则下,早期计算攒下的有用信息,只能通过“最新状态”这一条窄通道往下传。最新状态本身要是偏了,先前积累的正确信息理论上还躺在计算历史里,实际上后续迭代已经没法直接够到它们了。
标准的残差连接*(残差连接:神经网络中一种让信息跳过某些层直接传递到后面层的连接方式,最早由ResNet提出,用来缓解深层网络训练困难的问题)原本是为解决深层网络训练困难而设计的,可在循环Transformer里,同一套参数被反复套用,残差流会随循环次数不断累积,这种“深度坍塌”现象被称为深度诅咒*(深度诅咒:指标准深度Transformer中,越往后的层对最终输出的贡献越小,增加深度带来的收益递减甚至变负的现象)。
这就引出论文真正要解决的核心矛盾:模型看到新一轮计算结果时,怎么才能判断“这个新结果到底值不值得采纳”,而不是无脑全盘接受。
InfiLoop的设计:给循环也装一个“记忆打分器”
InfiLoop 的做法说白了是把“新状态覆盖旧状态”这一步换掉:模型先给每轮产出的候选结果分别打分,再结合分数高低和时间远近做加权平均,据此定下最终采纳多少新内容、留下多少旧内容。
具体机制由两部分组成。
第一部分是内容打分。模型用一个共享的“伪查询向量”(可以理解成一个固定的评判标准)给每一轮产生的候选状态打分,分数反映这个候选状态“靠不靠谱”。
另一块是时间衰减:越早出现的候选状态,权重按指数规律往下掉。这样,太久以前的信息不会盖过当前结果,最新的候选也不会一下子把历史全盘推翻。两套机制合在一起,就是一个加权求和——传给下一轮的状态,取所有历史候选状态按“内容分数乘以时间衰减”做加权平均。
麻烦在于存储。每一轮的候选状态全留下来再加权平均,循环次数一多,要存的东西就会膨胀到没法处理。论文的处理办法是证明这个加权和能写成精确的流式递推:只维护一个加权状态向量和一个归一化系数,每轮拿新候选结果更新这两个量即可,历史记录一条都不用留。循环一百次也好,两万次也好,占用的存储空间都是固定的。
换个角度看,这相当于一种自适应的残差更新。每轮更新多少,由步长决定——步长等于新候选状态的内容分数,除以“历史累积权重乘以衰减系数,再加上这个内容分数”。新结果分数远高于历史累积权重时,步长趋近1,新结果被大幅采纳;新结果分数很低时,步长趋近0,模型基本维持原状。
打个比方,像一位资深编辑审稿。手头有一份改了很多轮、质量不错的稿子(历史状态),又送来一份新投稿(新的候选状态)。新稿明显更好,她就大刀阔斧地替换;新稿很差,她只象征性采纳一点,绝大部分保留原来的好稿。要是没有这套审稿机制,编辑只能机械地“最新来的稿子直接发表”,哪怕比上一份差很多也照单全收,时间一长稿子只会越改越糟。carry-last规则实际做的正是这件事。
这套机制并不只作用于单一循环轴。论文用的是名为TRM的嵌套循环架构,分内循环和外循环两层,InfiLoop给内外两个循环轴各自配了独立的打分器和衰减参数,两条推理轨迹都能用上这种学习型的状态复用。
实验结果如何,可以看下面的数据。
测试覆盖四个推理基准:极难数独(Sudoku-Extreme)、30×30迷宫寻路(Maze-Hard),以及两个抽象推理测试集ARC-AGI-1和ARC-AGI-2*。ARC-AGI考察的是AI系统能否从极少量示例中归纳出变换规则,被视为检验通用推理能力的重要基准,连DeepSeek-R1这样的671B大模型在ARC-AGI-2上也只能拿到1.3%的准确率。
在同样700万参数规模的模型里,InfiLoop的数独精确匹配准确率达到97.9%,高于此前最好的FPRM模型(94.2%)和TRM模型(74.7%)。迷宫寻路任务上,InfiLoop为87.4%,略超FPRM的87.0%。两个ARC-AGI任务上,InfiLoop分别拿到49.1%和13.6%,后者接近TRM的7.8%的两倍。
测试阶段的深度扩展更值得看。论文做了对照实验:训练好的模型参数固定不动,只在测试时增加循环次数,观察准确率变化。结果InfiLoop用1,872层的计算量就达到90.9%的准确率,FPRM要花两倍的计算量(3,744层)才能拿到相近的90.1%。同样的准确率,InfiLoop的计算开销只要一半。
更极端的测试把循环次数拉到24,960层,相当于普通训练深度的26倍以上。这个深度下TRM的准确率只有83.65%,还不如InfiLoop用936层就达到的86.5%。InfiLoop在极限深度下仍在进步,最终达到92.74%。
放到日常经验里,这大概相当于一个学生做题,别人让他多检查26遍,结果越检查错得越多;InfiLoop这个“学生”却是越检查越细心,一直在进步。没有这套学会“什么该改、什么不该改”的机制,单纯堆检查次数只会越帮越忙。
难度分层测试中,优势在难题上更明显。空格数45到51个的简单题,InfiLoop和FPRM都能做到100%正确;空格数提到60个(最难级别)时,InfiLoop保持59.5%的准确率,FPRM是56.5%,TRM骤降到36.0%,差距拉大到23.4个百分点。InfiLoop省下来的“记忆力”,恰恰用在了最考验推理深度的难题上。
模型学到了什么,论文还记录了一种意外出现的自我验证行为。
研究者分析了InfiLoop内部那个“步长”参数(即决定接受多少新结果的量)在解题过程中如何变化。
如果模型对每轮结果一视同仁、不做区分,这个步长理论上应稳定在0.56左右,这是由衰减参数直接推算出的基准值。实际观察却是:题目解出来之前,步长被压得很低,约0.40,说明模型在“搜索阶段”对中间结果持保留态度,不轻易采纳;题目刚被解出的那一轮,步长突然升到0.91,几乎满额接受这个正确答案;再往后几轮,步长慢慢回落到0.56的基准线,维持已解出的状态不再大改。
这个行为是模型自己从数据里学出来的,训练中没人告诉它“这一步是对的,要全盘接受”。研究者进一步验证:统计模型给不同候选状态打的内容分数后发现,分数与候选状态里“错误格子的数量”高度相关。完全正确的候选状态平均能拿到7.25分,接近打分上限8.0;错误格子多达33个的候选状态,平均分数直接跌到负数。
也就是说,没有被明确告知“对错”标签,模型自己学会了判断一个中间结果靠不靠谱。这种能力有点像一种隐式的自我验证机制。
研究团队另外设计了一项压力测试,用来检验这套机制是否足够稳健。做法是:当模型跑到第36轮,往状态里掺入随机扰动,扰动幅度从万分之一到百分之三十不等,再让模型把剩下的36轮跑完,看先前算对的题能否守住。结果显示,InfiLoop无论扰动多大,已解出的题目都保持了100%正确;TRM则不同,即便毫无扰动,也会自行丢掉15%到20%的正确答案,而只要掺入万分之一的微小扰动,它的状态轨迹在12轮之内就彻底偏离原路,相对距离飞到了和原来完全不是一回事的程度。
打个比方,两个人走钢丝,一个握平衡杆(InfiLoop),一个空手(TRM)。同样轻轻推一下,空手的那位越走越偏,最终完全脱离原路线;握杆的那位很快把自己拉回正轨,继续稳稳前行。模型若没有这种“抗扰动”的本事,哪怕训练数据里从未见过的细微噪声,都可能让整段推理前功尽弃。
论文还安排了几组消融实验,进一步验证设计的必要性。把“内容打分”直接去掉(强行置0),无论训练阶段还是测试阶段去掉,准确率都会下滑6到7个百分点。他们还把衰减方向调反过来,让越早的信息权重越大(直觉上说不通,只作对照组),准确率随即崩到2%左右。这说明“越新的信息理应获得更高关注度”这个方向是必要的,并非随手调出来的。
写在后面
读这篇论文时,有个细节让我重新琢磨了“深度”这个概念。
通常我们会认为,给AI更多计算时间、更多思考步骤,它就该更聪明,这几乎是默认的直觉,类似“用功必有回报”。可TRM在数独任务上的表现打破了这个直觉:62.2%的准确率峰值出现在468层,再往后不但没有收益,反而开始倒退,跌到58.1%。也就是说,“多想”本身并非免费的好事,缺少一个筛掉该丢的想法、留下该留的想法的机制,思考越多可能越糟。这跟人类认知有点像,有些人反复纠结一个决定,想得越多反而越容易把原本正确的判断推翻。
另一点让我觉得有意思:InfiLoop学到的“自我验证”行为是涌现出来的,并非硬编码进去的规则。训练时没人告诉模型“这是正确答案,要全力接受”,但它自己从数据里总结出一套机制:不确定时谨慎一点,一旦找到靠谱答案就果断采纳并锁定。这种行为模式,某种程度上比“准确率提高了多少个百分点”更值得琢磨。
论文还留了一个没有完全展开的问题:这套机制能否用到更大规模的语言模型上,而不只是700万参数的小型推理器。如果一个千亿参数级别的大模型也能学会这种“什么该记住、什么该舍弃”的能力,那会对现在的长链推理训练产生什么样的影响,这大概是接下来值得追问的方向。
Q&A
Q1:InfiLoop解决了循环Transformer的什么问题?
循环次数一多,准确率反倒往下掉,要对付的就是这个。按传统的 carry-last 规则,每一轮新算出的结果直接顶掉旧状态,只要某一轮出了错,后面的计算全都会被带偏;InfiLoop 的办法是引入学习打分和时间衰减机制,让模型自己去判断哪些历史状态值得留下、哪些新结果可以收进来。
Q2:InfiLoop和TRM、FPRM相比效果如何?
A:在700万参数规模下,InfiLoop在数独任务上达到97.9%准确率,超过FPRM的94.2%和TRM的74.7%;在ARC-AGI-2任务上拿到13.6%,接近TRM的两倍;在测试阶段深度扩展上,InfiLoop只需一半计算量就能达到FPRM的准确率水平。
Q3:InfiLoop的核心机制是怎么实现的?
InfiLoop 会先给每一轮生成的候选状态算出一个内容分数,再按随时间指数衰减的权重做加权平均,据此决定下一轮接收多少新信息。整个做法能写成流式递推公式,存储空间固定,循环轮数再多也不会多占内存。