衡宇 白小交 发自 凹非寺
量子位 | 公众号 QbitAI
一个新框架,让Qwen版o1成绩暴涨:
在博士级别的科学问答、数学、代码能力的11项评测中,能力显著提升,拿下10个第一!
这就是人大、清华联手推出的最新「Agentic搜索增强推理模型框架」Search-o1的特别之处。
项目团队成员发现,o1和o1类模型在推理过程中表现突出,但却存在“知识不足”的明显缺陷——
推理步骤太长/模型知识不足时,推理过程就很容易卡壳,导致推理链中的错误传递。而其中任何知识误差都可能破坏整个推理链,最终对答案的正确性造成影响。
好着急,在线等,怎么办?
Search-o1的解题思路是:暂停推理,去搜索查找缺少的知识/资料,然后再回来继续推理。
就像咱人类思考不明白,就去查查资料,然后就想明白了似的。
研究者在初步实验中发现,类o1推理模型在处理复杂问题时,平均每个推理过程中会出现超过30次的不确定词汇,be like“或许”“可能”等。
这不仅增加了推理的复杂性,还使得手动验证推理过程变得更加困难。因此,如何在推理过程中自动补充所需知识,成为提升大型推理模型可信度的关键。
针对于此,而Search-o1的解决办法是这样的:
结合RAG和用于精炼检索文档的Reason-in-Documents模块增强框架,将Agentic搜索工作流整合到推理过程中,旨在通过自主知识检索,提升大型推理模型的可靠性和适用性。
如此一来,推理模型在遇到不确定的知识点时,就能都发挥主观能动性板去检索外部知识,同时保持整个过程的连贯性,让自己的推理能力更进一步。
研究团队做了广泛的测试后发现,在科学、数学和编码等复杂推理任务,以及六个开放领域QA基准测试中,Search-o1的表现杠杠的。
目前项目已开源,抱抱脸和GitHub可自取。按惯例,本文文末有指路直通车。
(特别注明:Search-o1框架使用的基础模型是开源的QwQ-32B-Preview)
Search-o1新框架
其实自从o1问世后,原生推理“在遇到知识缺口时易出错”这一问题就已经被摆到台前。
已经有很多团队来尝试解决上述问题,比如将策略和奖励模型与蒙特卡洛树搜索相结合(但这并没有将推理内化到模型中);或者在训练过程中将故意错误纳入推理路径,以部分内化这些能力;也有研究者选择蒸馏训练数据。
然而,这些方法受到对静态参数化模型的依赖的限制,当内部知识不足时,这些模型无法利用外部世界的知识。
后来,又有研究团队提出利用RAG,在推理模型中引入检索机制,来解决生成模型中静态参数的限制,允许访问外部知识来解决更复杂的问题。
当出现不确定性时(例如化合物的结构),这种方法会生成有针对性的搜索查询(例如,“反式肉桂醛的结构”);但是,检索到的文档通常包含冗长且不相关的信息,可能会破坏推理流程并损害连贯性。
因此,团队提出Search-o1的核心动机,是通过自主检索来增强具有类o1的推理模型。
Search-o1将推理模型的推理过程,和两个核心组件集成在一起:
- Reason-in-Documents模块
- Agentic RAG机制
Reason-in-Documents模块
先来说说Reason-in-Documents模块。
在Search-o1框架中,当 agentic RAG机制检索到的外部知识文档可能冗长且包含冗余信息,这些内容直接输入给推理模型,可能会干扰接下来的推理。
于是团队就提出了Reason-in-Documents,这个模块是独立于主推理链的。
它的作用是基于当前搜索查询、先前推理步骤和检索文档,先分析文档生成中间推理序列,再生成与当前推理步骤高度相关的精炼知识,并整合到推理链。
按照规定的输出格式,若文档提供了有用信息,则以 “Final Information [Helpful information]” 的形式输出精炼后的知识。
若未找到有用信息,则输出 “Final Information No helpful information found.”。
以此来确保推理过程简洁且专注,以及推理过程的连贯性和逻辑一致性。
Agentic RAG机制
再来说说Agentic RAG机制。
Search-o1让模型能够在推理过程中,自主决定该在什么时候检索外部知识。
单个问题推理时,对于每个问题,Search-o1会先初始化推理序列q。
由于推理模型M生成推理链R,这个过程可能会生成封装在特殊符号 <|begin_search_query|> 和 <|end_search_query|> 中的搜索查询。
当检测到 <|end_search_query|> 符号后,会提取相应的搜索查询qsearch,触发检索函数Search以获取相关的外部文档D。
接着把外部文档交由Reason-in-Documents模块处理,然后把结果整合回推理链。
而批量推理时,Search-o1会对这批问题创建推理序列集,并行生成tokens,检索和精炼文档后,更新推理链,提高系统处理多输入的吞吐量。
上述的所有过程都能反复进行,确保模型在整个推理过程中,都能获得所需的外部知识支持。
实验设置与结果
为了验证Search-o1的有效性,研究人员进行了广泛的实验,评估任务包括以下两类:
第一种是复杂推理任务。
包括PhD级别的科学问答(GPQA)、数学(MATH500、AMC2023、AIME2024)、代码(LiveCodeBench)等。
Table 1数据显示,在复杂推理任务中,所有的11个测试集上,Search-o1在其中10个任务上,都优于原生推理和传统RAG方法。
仅有一项——LiveCodeBench之easy的成绩57.7。
这个成绩在Qwen2.5-Coder-32B和QwQ-32B上的表现低于原生推理,在RAG-Qwen2.5-32B、RAgent-QwQ-32B的比凹陷低于传统RAG方法。
多提一嘴,项目论文中,研究团队还展示了Search-o1与人类专家的比较。
研究者将Search-o1的性能和GPQA扩展集中各个领域的人类专家进行了比较人类,下面的Table 2展示的是专家在物理、化学、生物等各个学科的人类专家成绩。
结果显示,Search-o1在整体性能(57.9)、物理学(68.7)和生物学(69.5)方面都优于人类专家。
不过在化学子领域落后于化学家,Search-o1是40.7,人类专家是72.6。
第二种是开放域问答基准,包括:
- 单跳QA,如自然问题(NQ)、TriviaQA等。
- 多跳QA,如HotpotQA、2WikiMultihopQA、MuSiQue、Bamboogle等。
Table 3数据显示,Search-o1在多跳QA任务表现尤为突出,平均准确率提升了近30%,优于所有基线模型。
不过相比较而言,Search-o1在单跳任务上的成绩提升不显著。
研究人员在最后表示:
Reason-in-Documents模块 + Agentic RAG机制,通过有效解决模型本身知识不足的问题,增强了推理模型的可信度和实用性。
在复杂问题解决场景中,Search-o1为更值得信赖和更有效的智能系统铺平了道路
目前外网冲浪了一下,网友们表示对这个工作还是非常肯定的。
尤其是对它“模拟人类认知过程”和“增强推理模型推理能力”这俩方面。
作者团队
Search-o1的通讯作者是人大高瓴人工智能学院的教授窦志成。
他从南开大学博士毕业后,先加入了MSRA担任研究员,2014年9月份加入中国人民大学,并于2018年8月破格晋升教授。
其余的作者包括Xiaoxi Li,Guanting Dong, Jiajie Jin,Yuyao Zhang,Yujia Zhou,Yutao Zhu, Peitian Zhang。
其中,Yujia Zhou是团队中唯一一个来自清华的同学(其余都来自人大)。
Zhou目前在清华大学任博士后研究员,与清华大学科研院院长、计算机科学与技术系教授刘奕群合作。
这位同学在人大取得博士学位,导师正是窦志成。
arXiv:https://arxiv.org/abs/2501.05366
GitHub:https://github.com/sunnynexus/Search-o1
抱抱脸:https://huggingface.co/papers/2501.05366
参考链接:
[1]https://x.com/rohanpaul_ai/status/1880173989143921058
[2]https://www.cs.tsinghua.edu.cn/info/1121/3557.htm
[3]https://www.zhouyujia.cn/