RAG解决复杂问题—多跳推理
“ RAG多跳推理是解决复杂问题的基础,来源于人类分步解决复杂问题的过程。”
大家开发RAG系统是不是都是用户提问题,拿着问题向量化,然后去知识库中做相似度检索,然后直接回复问题;查到了就查到了,没查到就没查到。
比如说对简单的业务场景,公司的产品产品说明文档,你问某某产品怎么用?
这时,使用问题去做相似度检索就能准确检索到某个产品的说明,然后问题解决。
但是,不知道你是否考虑过这种问题,某某产品的老板是谁?
这个时候通过简单的相似度召回就很难解决问题了,因为在产品说明书上最多介绍产品上某某公司生产的,而不会说老板是谁。
这时候应该怎么办?
面对这种相对复杂的问题,就需要多跳推理技术来解决,简单来说就像我们普通人解决复杂问题需要拆分,分步骤解决。
第一步,先根据某某产品去检索其生产企业,然后再根据企业名称去检索企业信息获取到老板信息;面对这样的问题就需要分两步处理,如果面对更复杂的问题,可能需要三步或更多,这个过程就叫做多跳推理。
多跳推理
什么叫多跳推理?
多跳推理是指问题的答案依赖多个逻辑关联的知识片段,需要先处理第一个逻辑关系,再处理第二个逻辑关系,以此推类,直到获取最终结果。
本质上来说,多跳推理其实就是一个链式RAG,每个节点的输出都是下一个节点的输入,下一个节点依赖于上一个节点的输出;因此,如果一旦某个节点出现问题,那么最终的结果肯定会出问题。
举个生动的例子:
- 问题:"ChatGPT的开发公司CEO是谁?"
- 第1跳:检索"ChatGPT开发公司" → 得到"OpenAI"
- 第2跳:检索"OpenAI CEO" → 得到"Sam Altman"
- 答案:Sam Altman
传统RAG假设"一次检索就能命中答案",而多跳问答承认"复杂问题需要分步破解"。
但是,在多跳推理中有三个必须要解决的问题:
- 问题分解:模型怎么知道应该把用户问题分解成几个问题?
- 检索顺序:模型分解问题之后,需要按顺序检索,如果顺序错乱,那么结果肯定就乱了
- 结果融合:由于多跳推理需要经过多个步骤,也就是多次检索,但每次检索结果都可能存在噪音,因此怎么把多次检索的结果合并成一个连贯的推理过程?
以上三个问题不解决,那么多跳推理就只是一个概念,即使勉强做出来结果往往也差强人意。
解决方案
方案一:迭代检索
这是最简单也是最直接的方案,简单来说就是把多跳检索变成一个循环,让模型自己去分析问题,然后做检索,然后分析,再检索再分析,直到最终结果。
工作原理:
- 用原始问题做第一次检索
- 把检索结果交给LLM判断"信息够不够回答问题"
- 如果不够,让LLM生成下一个查询问题继续检索
- 重复直到信息充足或达到最大迭代次数
优点:
- 灵活性强,不需要预先规划推理路径
- 适合推理路径不固定、探索性强的场景
缺点:
- 容易陷入无效循环
- 每次判断都要调用LLM,延迟较高
- 难以调试,推理过程是黑盒
方案二:查询分解(Query Decomposition)
这是一种提前规划的思路,让LLM先把复杂问题一次性拆解成子问题序列,然后按照依赖关系逐个执行检索。
工作原理:
- 让LLM把原始问题拆成有依赖关系的子问题
- 按照依赖顺序逐个检索
- 每次检索都把前序答案拼接到当前查询中
- 最后聚合所有子问题的答案
优点:
- 推理路径清晰可控,便于调试和优化
- 可以并行执行无依赖关系的子问题,加速检索
- 适合模式固定的多跳场景
缺点:
- 对问题分解的准确性要求很高
- 如果第一步拆解错了,后面全错
- 难以处理动态调整推理路径的场景
方案三:图推理(Graph-based Reasoning)
这种方案把知识库预处理成实体关系图,把检索问题转化为图遍历问题。
工作原理:
- 把知识库构建成实体关系图(三元组:实体→关系→实体)
- 从问题中提取起始实体和目标类型
- 在图上进行多跳遍历,寻找连接路径
- 把路径上的实体和关系组合成答案
优点:
- 推理路径可解释性强
- 可以利用图算法优化检索效率
- 适合知识边界清晰、实体关系稳定的领域
缺点:
- 构建和维护知识图谱的成本很高
- 对非结构化文本处理能力弱
- 适合医疗诊断、法律咨询等专业场景,不适合通用问答
方案四:Agent框架
这是最前沿的方案,把整个多跳推理过程建模成Agent的规划和执行过程。
工作原理:
- Agent制定推理计划(需要哪些工具,执行顺序是什么)
- 调用不同工具(检索、计算、API调用等)逐步执行
- 每一步都有反思和修正机制
- 最终输出答案
优点:
- 能力上限很高,可以处理非常复杂的推理任务
- 支持工具调用,不仅限于检索
- 可以自主规划和纠错
缺点:
- 工程复杂度最高
- 需要解决工具调用的可靠性、异常处理、成本控制等问题
- 适合对准确性要求极高的核心业务
方案一和方案四,从本质上来说其实差不多,只不过方案四借助Agent的能力,会有更强的检索能力和处理复杂问题的能力。
学习资源推荐
如果你想更深入地学习大模型,以下是一些非常有价值的学习资源,这些资源将帮助你从不同角度学习大模型,提升你的实践能力。
一、全套AGI大模型学习路线
AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!
因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获取
二、640套AI大模型报告合集
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示
因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获取
三、AI大模型经典PDF籍
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。
因篇幅有限,仅展示部分资料,需要点击文章最下方名片即可前往获取
四、AI大模型商业化落地方案
作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。
