腾讯AI Lab&厦大联合研究:Fetch框架高效解决大语言模型树搜索中的“过思考”与“欠思考”难题

腾讯AI Lab与厦大联合提出Fetch框架,解决大语言模型树搜索中的“过思考”与“欠思考”问题,提升计算效率和推理效能。

原文标题:树搜索也存在「过思考」与「欠思考」?腾讯AI Lab与厦大联合提出高效树搜索框架

原文作者:机器之心

冷月清谈:

本文介绍了腾讯AI Lab与厦门大学、苏州大学联合提出的高效树搜索框架Fetch,旨在解决大语言模型在树搜索推理过程中存在的“过思考”与“欠思考”问题。研究团队通过解构树搜索的行为范式,发现传统树搜索存在节点冗余和验证器不稳定性两大缺陷,导致计算资源错配,算力消耗大但性能提升有限。Fetch框架通过冗余节点合并和验证方差抑制两大核心机制,有效提升计算效率和性能。实验结果表明,Fetch在GSM8K、MATH等基准测试中表现出显著优势,为提升大语言模型推理效能提供新的方法论支持。

怜星夜思:

1、Fetch框架中提到的“过思考”和“欠思考”现象,在实际应用中除了数学推理,还可能出现在哪些其他类型的任务中?
2、文章中提到使用SimCSE模型提取节点语义特征向量,并进行微调。除了SimCSE,还有哪些其他的语义相似度计算方法可以应用在这个场景中?各自的优缺点是什么?
3、Fetch框架通过合并语义重复的节点来避免冗余计算,但是如何确定两个节点是否“语义重复”?如果判断不准确,可能会导致什么问题?

原文内容


通讯作者包括腾讯 AI Lab研究员宋林峰与涂兆鹏,以及厦门大学苏劲松教授。论文第一作者为厦门大学博士生王安特。


本文探讨基于树搜索的大语言模型推理过程中存在的「过思考」与「欠思考」问题,并提出高效树搜索框架——Fetch。本研究由腾讯 AI Lab 与厦门大学、苏州大学研究团队合作完成。



  • 论文题目:Don't Get Lost in the Trees: Streamlining LLM Reasoning by Overcoming Tree Search Exploration Pitfalls

  • 论文地址:https://arxiv.org/abs/2502.11183


背景与动机


近月来,OpenAI-o1 展现的卓越推理性能激发了通过推理时计算扩展(Test-Time Computation)增强大语言模型(LLMs)推理能力的研究热潮。


该研究领域内,基于验证器引导的树搜索算法已成为相对成熟的技术路径。这类算法通过系统探索庞大的解空间,在复杂问题的最优解搜索方面展现出显著优势,其有效性已获得多项研究实证支持。


尽管诸如集束搜索(Beam Search)、最佳优先搜索(Best-First Search)、A*算法及蒙特卡洛树搜索(MCTS)等传统树搜索算法已得到广泛探索,但其固有缺陷仍待解决:树搜索算法需承担高昂的计算开销,且难以根据问题复杂度动态调整计算资源分配。


针对上述挑战,研究团队通过系统性解构树搜索的行为范式,首次揭示了该推理过程中存在的「过思考」与「欠思考」双重困境。


「过思考」与「欠思考」


研究团队选取最佳优先搜索算法为研究对象,基于 GSM8K 数据集开展系统性研究。实验设置中逐步增加子节点拓展数(N=2,3,5,10)时发现:模型性能虽持续提升但呈现边际效益递减规律(图 a),而计算开销却呈指数级增长(图 b),二者形成的显著差异揭示出传统树搜索在推理时计算扩展的效率瓶颈。



通过深度解构搜索过程,研究团队首次揭示搜索树中存在两类关键缺陷:


  • 节点冗余:由于大语言模型采样机制的随机性,搜索树中生成大量语义重复节点(图 c)。量化分析采用基于语义相似度的节点聚类方法,定义重复度为平均类内节点数,该指标与计算开销呈现显著正相关,此现象直接导致算法重复遍历相似推理路径,形成「过思考」困境;


  • 验证器不稳定性:引导搜索的验证器存在一定的鲁棒性缺陷,节点评分易受推理路径表述差异影响而产生非必要波动(图 d),在复杂数学推理场景中尤为明显。这种不稳定性可能引发搜索路径的局部震荡,迫使搜索算法过早终止高潜力路径的深度探索,从而产生「欠思考」现象。


Fetch


为应对「过思考」与「欠思考」问题,研究团队提出适用于主流搜索算法的高效树搜索框架 Fetch,其核心包含两部分:


  • 冗余节点合并(State Merging):通过合并语义重复的节点,有效避免冗余节点的重复探索。


  • 验证方差抑制(Variance Reduction):采用训练阶段与推理阶段的双重优化策略,降低验证器评分的非必要波动。



冗余节点合并


研究团队采用层次聚类算法(Agglomerative Clustering)实现节点冗余合并。具体而言,当搜索算法生成子节点后图片,首先基于 SimCSE 句子表示模型提取节点语义特征向量图片,随后应用聚类算法形成超节点(Hyper-Node,图片)。该机制通过将语义等价节点聚合为单一超节点,有效避免冗余节点的重复拓展。



针对通用领域预训练 SimCSE 在数学推理场景下存在的领域适配问题,研究团队对 SimCSE 进一步微调。为此,提出两种可选的节点对语义等价标注方案:


  • 基于提示:利用大语言模型的指令遵循能力,通过用户指令自动生成节点对语义等价性标注。但受限于专家模型的指令遵循局限性,该方法可能依赖于额外的通用模型;


  • 基于一致性:基于重复节点后续采样结果具有更高一致性的先验假设,通过比较节点后续推理路径的概率相似度,构建无监督标注数据集。该方法规避了对外部模型的依赖。


最终,利用收集的节点对标注,通过交叉熵损失对 SimCSE 进行微调:


图片


其中,图片 表示余弦相似度计算函数。


验证方差抑制


现有验证器普遍采用判别方式对树节点进行质量评分。传统训练方法基于强化学习经验,通过蒙特卡洛采样估计节点期望奖励:



其中,图片表示从当前状态(节点图片)出发通过策略模型采样获取的推理路径,即图片图片 是采样的次数。受限于高昂的采样代价,图片 通常设置较小(例如图片),导致奖励估计存在显著方差,进而削弱验证器的决策稳健性。

为此,研究团队提出训练和测试两阶段的优化方案:


训练阶段,研究团队借鉴时序差分学习(Temporal Difference Learning),引入图片训练验证器。图片是经典的强化学习算法,通过将蒙特卡洛采样与时序差分学习结合,以平衡训练数据的偏差(bias)及方差(variance)。对于节点图片,其期望奖励为



其中,图片是总计后续采样节点数,图片为偏差-方差权衡系数,图片


随后,通过标准的均方误差损失进行训练:


图片


该方案虽有效降低方差,但引入的偏差可能损害验证精度,且不兼容现有开源验证器的迁移需求。因此,研究团队进一步提出在推理阶段实施验证器集成策略,以有效抑制个体验证器的异常波动:



其中,图片为集成验证器的个数。


实验结果



实验结果表明,Fetch 框架在跨数据集与跨算法测试中均展现出显著优势。例如,对于 BFS 及 MCTS 算法,相较于基线,Fetch 计算开销降低至原有的 1/3,并且保持 1~3 个点的准确率提升。



当测试时计算规模逐步提升时,Fetch 带来的增益也更加显著,验证了框架的效率优势。


总结


本研究由腾讯 AI Lab 联合厦门大学、苏州大学科研团队共同完成,首次揭示基于树搜索的大语言模型推理中存在的「过思考-欠思考」双重困境。


分析表明,该现象的核心成因源于两个关键缺陷:搜索树中大量语义冗余节点导致的无效计算循环,以及验证器评分方差过高引发的探索路径失焦。二者共同导致树搜索陷入计算资源错配困境——即消耗指数级算力却仅获得次线性性能提升。


针对上述挑战,研究团队提出高效树搜索框架 Fetch,其创新性体现在双重优化机制:


  • 冗余节点合并机制,实现搜索空间的智能压缩;

  • 验证方差抑制机制,保障搜索方向稳定性。


结果表明,Fetch 在 GSM8K、MATH 等基准测试中展现出显著优势:相较传统树搜索算法,框架实现了计算效率和性能的同步提升。该成果为提升大语言模型推理效能提供了新的方法论支持。


© THE END 

转载请联系本公众号获得授权

投稿或寻求报道:liyazhou@jiqizhixin.com


关于语义相似度计算,除了SimCSE,可选择的方案还真不少!

1. Sentence-BERT (SBERT): SBERT是基于BERT的改进模型,专门用于计算句子嵌入。它通过孪生网络结构并行处理两个句子,从而显著提高了计算效率。优点是效果好,速度快;缺点是需要预训练模型,对硬件资源有一定要求。

2. TF-IDF: 这是一种传统的文本向量化方法,通过统计词频来表示文本。优点是简单易懂,计算速度快;缺点是忽略了词语的语义信息,效果相对较差。

3. Word2Vec/GloVe: 这些是词嵌入模型,可以将词语映射到低维向量空间。可以通过对句子中所有词语的词向量进行平均或加权平均来得到句子向量。优点是计算速度快,资源消耗低;缺点是忽略了词语之间的顺序信息和上下文关系。

4. Universal Sentence Encoder (USE): 这是Google开源的句子编码器,基于Transformer架构,可以生成高质量的句子嵌入。优点是效果好,通用性强;缺点是模型较大,计算速度较慢。

具体选择哪种方法,需要根据实际应用场景和需求进行权衡。如果对效果要求较高,可以选择SBERT或USE;如果对计算速度有要求,可以选择TF-IDF或Word2Vec/GloVe。

我觉得在需要策略规划的任务里,“过思考”和“欠思考”也挺常见的。像下围棋,有时候想得太多,反而束手束脚,下出臭棋;有时候没想清楚就落子,结果损失惨重。感觉跟这个 Fetch 框架要解决的问题挺像的,都是要在计算资源和效果之间找到一个平衡。

从理论上讲,完美的“语义重复”判断是很难实现的,因为语言的表达方式多种多样。即使是表达相同意思的句子,也可能在措辞、结构等方面存在差异。因此,在实际应用中,只能追求尽可能高的准确率。

为了提高准确率,可以考虑以下方法:

* 使用更强大的语义表示模型: 例如,可以使用更大的预训练模型,或者使用专门针对特定领域的模型。
* 引入外部知识: 例如,可以使用知识图谱等外部资源,来辅助判断节点之间的语义关系。
* 结合多种判断方法: 例如,可以同时使用基于语义相似度和基于规则的方法,取长补短。

除了上面提到的方法,还可以考虑以下几种:

* 基于预训练语言模型的表示: 使用BERT、RoBERTa、DeBERTa等预训练语言模型,将句子输入模型,提取CLS token的输出作为句子表示。这种方法可以捕捉更丰富的语义信息,但计算成本较高。

* 基于对比学习的方法: 除了SimCSE,还有ConSERT等基于对比学习的句子表示方法。这些方法通过构建正负样本对,训练模型学习区分语义相似和不相似的句子。

选择哪种方法,需要考虑以下因素:

* 任务类型: 不同的任务对语义相似度的要求不同。例如,对于文本匹配任务,需要更精确的语义表示;对于文本聚类任务,则可以容忍一定的误差。

* 数据量: 如果数据量较小,可能需要使用预训练模型,以提高泛化能力;如果数据量较大,则可以考虑训练自己的模型。

* 计算资源: 不同的方法对计算资源的要求不同。如果计算资源有限,则需要选择计算复杂度较低的方法。

从学术角度来看,可以将“过思考”理解为过拟合,模型过度关注训练数据中的噪声,导致泛化能力下降;将“欠思考”理解为欠拟合,模型未能充分学习训练数据中的特征,导致性能不足。因此,任何需要平衡模型复杂度和数据拟合程度的任务,都可能出现类似“过思考”和“欠思考”的现象。

例如,在推荐系统中,“过思考”可能导致模型过度推荐用户已经购买过的商品,忽略了用户潜在的需求;“欠思考”可能导致模型推荐的商品与用户的兴趣毫不相关,无法提高用户满意度。

我来补充一个偏工程实践的视角。在实际应用中,可以考虑使用一些开源的语义相似度计算库,例如:

* sentence-transformers: 这是一个基于PyTorch的库,提供了各种预训练的句子嵌入模型,包括SBERT、SimCSE等。使用方便,功能强大。

* gensim: 这是一个Python库,提供了TF-IDF、Word2Vec等模型的实现。功能全面,文档完善。

选择哪个库,取决于你的技术栈和需求。如果使用PyTorch,可以选择sentence-transformers;如果使用Python,可以选择gensim。

这个问题很有意思!我觉得“过思考”和“欠思考”的概念可以推广到很多领域。比如,在文本生成任务中,“过思考”可能表现为模型过度重复某些句式或关键词,导致文本冗余;“欠思考”可能表现为模型未能充分理解上下文,生成的内容逻辑不连贯。在图像识别领域,“过思考”可能导致模型过度关注图像中的细枝末节,而忽略了整体结构;“欠思考”可能导致模型对图像的理解过于粗糙,无法识别出关键特征。

另外,我想到一个比较有趣的例子:在玩狼人杀的时候,有时候玩家会过度分析每个人的发言和行为,结果反而被迷惑,这就是“过思考”;而有时候玩家过于相信自己的直觉,忽略了重要的线索,这就是“欠思考”。

我有个稍微有点“抖机灵”的想法,能不能用人类来辅助判断?比如,对于难以判断的节点对,可以让人工标注人员进行标注,然后将标注数据用于训练一个二分类器,用于判断节点是否语义重复。当然,这会增加一些成本,但可能会显著提高准确率。或者做一个“众包”平台,让用户来判断,判断正确的给与一定的奖励,效果应该会比纯机器判断好。

这个问题问到了关键!语义重复的判断确实是这个框架的核心,也是难点。文章里用的是层次聚类算法和SimCSE模型来提取语义特征,但我觉得这只是一个近似的判断。如果判断不准确,可能会出现两种情况:

1. 误判为重复: 如果两个语义略有不同的节点被错误地合并,可能会导致模型丢失一些有用的信息,从而影响最终的推理结果。这相当于剪掉了搜索树上的一条“可能正确”的分支。
2. 误判为不重复: 如果两个语义非常接近的节点被错误地判断为不重复,那么就达不到减少冗余计算的目的,Fetch框架的效果就会大打折扣。

所以,如何提高语义重复判断的准确性,是Fetch框架需要持续优化的一个方向。