仅用于站内搜索,没有排版格式,具体信息请跳转上方微信公众号内链接
在推理模型与rag搜索结合方向,为大家介绍5个易于上手的小项目。
第一个项目探讨如何在rag的过程中引入思考模块,缓解rag错检遗漏的问题。
第二个项目探讨如何扩展推理模型的思维链过程,边思考边搜索来解决问题。
第三个项目探讨用强化学习训练方法优化推理模型规划、反思工具的能力。
第四个项目会基于第二、三项目中的技术,探讨成熟的搜索工具。
第五个项目会在推理的过程中引入图片等多模态数据。
传统的RAG(检索增强生成)模式相对刻板,通常是在完成搜索后,借助相似性搜索筛选出部分内容,依据匹配程度重新排序,挑选出看似可靠的信息片段传递给大型语言模型(LLM)以生成答案。这种方式高度依赖重排序模型的性能,如果模型表现不佳,就极易遗漏关键信息,甚至将错误信息提供给LLM,致使生成的答案不尽人意。
r1-reasoning-rag项目则另辟蹊径,借助推理模型(Largereasoningmodels,LRM)的强大推理能力,将原本固定的筛选过程转变为灵活可变的动态机制,他们称之为“代理检索”。在这一机制下,AI仿若拥有自主意识,不仅能够主动探寻缺失的信息,还能在检索过程中不断优化自身策略,形成良性循环,从而为LLM提供更为精准的内容。
例如,当被问及“《封神演义》中哪吒的师祖是谁”这一复杂问题时,该项目不会像传统RAG那样盲目检索。首先,基于DeepSeek-R1的推理能力,它会对问题进行拆解分析,理解到需要先明确哪吒的师父,再进一步探寻其师父的师父。
接着,从知识库中检索出“哪吒的师父是太乙真人”这一信息。此时,智能体并不会满足于此,而是通过反思模块意识到还缺少“太乙真人的师父(即哪吒的师祖)”的关键信息。
于是,它自动再次检索,直到获取到完整准确的答案——元始天尊。在这个过程中,智能体不断地根据已有信息进行反思和调整检索策略,确保最终答案的完整性和准确性。
项目地址:https ://github. com/deansaco/r1-reasoning-rag
大型推理模型(LRMs),如OpenAI-o1,在长步骤推理方面展现出了令人惊叹的实力。然而,在推理过程不断延长时,知识储备不足的问题逐渐凸显,频繁引发不确定性,甚至导致错误的产生。
Search-o1创新性地提出了一个框架,首次将代理检索增强生成(RAG)机制与大型推理模型(LRMs)的推理过程紧密集成,赋予模型自主补充知识的强大能力。在推理进程中,当LRMs遇到不确定的知识点时,Search-o1能够自动触发检索操作,从外部知识源获取相关信息,扩展模型思维链。
同时,考虑到检索到的文档往往篇幅冗长,可能包含大量冗余信息,项目专门设计了Reason-in-Documents模块。该模块能够对检索到的文档进行深度剖析,精简并提炼出关键信息,并将其巧妙地注入推理链中,确保推理过程的连贯性不受影响。
论文实验结果很好,但是我建议主要学习利用推理模型边思考边检索的思路。
项目地址:https ://github. com/sunnynexus/Search-o1
前两个项目项目在推理与搜索结合方面已经取得了显著成果,但它们均未引入训练机制。Search-R1项目则在此基础上进行了大胆创新,引入强化学习技术,为智能体的发展注入了新的活力。
通过强化学习,Search-R1能够让智能体在与环境的持续交互过程中不断学习和成长。智能体每执行一个动作,都会根据环境反馈的奖励信号来判断该动作的优劣。如果动作带来了积极的结果,智能体将获得正奖励,其执行该动作的倾向会增强;反之,如果动作导致了不良后果,智能体将得到负奖励,执行该动作的概率会降低。在这样的机制下,智能体逐渐学会如何更加高效地反思自身行为,优化对工具的调用策略。
项目地址:https ://github. com/PeterGriffinJin/Search-R1
WebThinker巧妙融合了Search-o1和Search-R1的相关思想,成功突破了仅停留在理论研究阶段的局限,初步实现了在搜索中应用。
当你向AI提问OpenAI有哪些模型,它们之间的差异是什么,AI不仅能给出答案,还能自主搜索最新信息、深度浏览网页内容,并生成结构完整的研究报告。在官方演示中,WebThinker仅通过用户的问题输入,就能启动\“思考-搜索-撰写\“的闭环流程,最终输出包含模型技术细节、应用场景对比、发展历程分析的专业报告,整个过程无需人工干预。
不同于传统的单次搜索,WebThinker开发了智能网页交互模块:
支持点击链接、按钮等交互元素进行页面跳转
基于当前信息判断是否需要进一步搜索或深度浏览
自动提取关键信息并整合到推理过程中
这种\“思考式搜索\“模式,使模型能够像人类研究员一样,从初始搜索结果出发,逐步挖掘深层信息,形成完整的知识图谱。
此外在搜索、挖掘的过程中,构建大规模推理轨迹数据集,并采用强化学习优化模型性能。
目前模型已开源,共有四个版本,可huggingface搜索:
WebThinker-QwQ-32B
WebThinker-R1-7B
WebThinker-R1-14B
WebThinker-R1-32B
项目地址:https ://github. com/RUC-NLPIR/WebThinker
以上方法都是在思考过程中引入语义数据,而VRAG能够让推理模型在思考时动态地引入图像等多种模态的数据。这意味着推理模型在处理问题时,可以综合利用来自不同模态的丰富信息,从而更加全面、深入地理解问题,并生成更加准确、丰富的回答。
在VRAG-RL的演示场景如上所示,这张图展示了一个关于印度“能源鸿沟”(EnergyDivide)背景下,人机对话解决具体问题的过程。:
解答过程:
第一步:理解问题并搜索相关信息
思考:要回答这个问题,需要找到与印度“能源鸿沟”地图中水井和浅层管井相关的具体数据。
搜索:“印度能源鸿沟IWMI小规模灌溉普查水井浅层管井”
第二步:图像检索与初步分析
图像检索:获取了一张显示印度“能源鸿沟”的地图。
思考:这张地图展示了不同颜色编码的电力结构比例,但没有提供水井和浅层管井的具体数量。因此,需要进一步搜索更详细的数据。
第三步:搜索详细数据
搜索:“水井和浅层管井的详细数据”
图像检索:获取了一张包含各种灌溉结构数量的图表。
第四步:聚焦相关数据
思考:图像中的表格包含了包括水井和浅层管井在内的各种结构的数量。需要裁剪图像以聚焦于相关数据。
区域选择:[361,366,721,517](这是裁剪图像的坐标范围)
第五步:裁剪、选择并放大
操作:对图像进行裁剪、选择和放大,以便清晰地看到相关数据。
第六步:分析具体数据并得出答案
思考:裁剪后的图像提供了水井(9. 20百万个)和浅层管井(9. 10百万个)的具体数量。要找出水井比浅层管井多多少,需要用水井的数量减去浅层管井的数量。
答案:水井比浅层管井多0. 10百万个(或100,000个)。
项目地址:https ://github. com/Alibaba-NLP/VRAG