RAG受关注,为何存在诸多问题?

1个回答

写回答

雪菲李

2026-02-04 03:40

+ 关注

教师
教师

其原因主要体现在两个方面。1、缺乏运行大模型的资源:多数人没有GPU集群来进行LLM预训练。2、大模型存在知识欠缺情况,像私域知识或者最新知识往往有所缺失。RAG方法使LLM能获取内化知识以外的信息,还能让LLM依据专业知识库更精准作答,并且不会消耗过多资源。

RAG主要检索语义匹配文档,把文档知识传给大模型,经大模型推理得出正确答案。它能减少预训练或通用LLM的幻觉问题,还能省去文档标注。一般而言,基于RAG的LLM应用可视为一种映射过程,就是依据给定数据D,把用户输入(查询Q)映射为预期响应(答案A)。本文对RAG整体技术方案及近两年实践成果进行总结,期望能给大家带来一定帮助。然而,很多人指出RAG有个原罪:一周能出demo,却半年都用不好。主要存在以下7个方面的问题:

问题2:TopK检索内容缺失。答案在文档库却因排名得分不高,无法提供给用户。理论上检索时所有文档都会有排名得分,但实际只会返回排名前K的文档。为提高召回率,K不能设为无穷大,而要基于LLM大模型的能力折中取值。

AI
AI

问题5:错误格式(Wrong Format)。当问题要求按某种格式(像表格或列表)提取信息时,大型语言模型却未遵循这一指示。问题6:错误的特异性。返回的答案虽在响应中,却不够具体或过于具体,不能满足用户需求。RAG系统设计者对问题有预期结果时(如教师对学生)就会出现这种情况,这时应给出具体教育内容和答案,而非仅有答案。而且当用户不确定如何提问而过于笼统时,也会产生特异性错误。

对于这些问题,我先给出RAG技术应用与优化的整体开发建议及思路。

RAG技术的产品架构包含四层。

RAG检索增强生成框架主要由query理解、检索模块、生成模型三部分构成。按照与外部数据D交互程度和认知处理水平要求,可把查询划分成不同层次。

显式事实查询(Level - 1 Explicit Facts),这是最简单的数据增强查询形式,示例如下:2、二级隐式事实查询(Level - 2 Implicit Facts),这种查询需一些常识或基本逻辑推理,示例如下:3、解释性理由查询(Level - 3 Interpretable Rationales),不但要掌握事实内容,还得理解领域数据,例如:4、Level - 4 Hidden Rationales(隐藏理由查询),这是最具挑战性的查询类型,要从外部数据推断出未被明确记录的推理规则。

当前,RAG系统在从知识库检索内容时,可能会检索到与用户query无关的内容。原因在于:一是用户问题的表述可能不利于检索;二是可能要从用户问题生成结构化查询。要解决这些问题,可以引入query理解模块。意图识别就是接收用户的查询(query)和一组由元数据定义的选择,然后返回一个或多个被选定的选择模块。它能单独当作选择器模块来用,也可作为查询引擎或者检索器(比如用在其他查询引擎/检索器之上)。这是个原理简单却功能强大的模块,当前主要靠大型语言模型(LLM)实现决策功能。其可应用于以下场景:核心模块存在以下几种形式:

分而治之策略是把复杂问题拆成简单子问题,分别找答案后合成最终答案。Step - Back Prompting技术能让LLM先得出高层次抽象概念,这样可减少推理错误,在有检索和无检索的场景都适用。CoVe(验证链)通过自我验证提高LLM答案的准确性,对于事实性问题效果尤其好,能让答案更精准,减少错误输出。在RAG - Fusion方法里,LLM会把原始查询扩展成多个可并行搜索的子查询,再用RRF重新排序结果,从而解决多面性查询的问题。ReAct把思维链提示和Action计划相结合,将复杂查询分解为简单子查询,还能让模型与外部知识库交互,在解决组合图等复杂结构的问题时能力更强。这种方法融合多种技术,优化处理复杂问题的流程,提升了RAG系统的响应质量与效率。

嵌入式兴起后,人们需要向量数据库来高效存储和搜索嵌入式内容。存储、搜索非结构化数据时,常见的做法是嵌入数据并存储生成的嵌入向量,查询时嵌入非结构化查询并检索与查询最相似的嵌入向量,而向量数据库就负责存储嵌入数据与执行向量搜索。

5.5.1 摘要索引(曾被叫做链式索引)摘要索引把节点存为顺序链。后续检索和生成时,能顺序遍历所有节点,或者基于关键词进行过滤。

5.5.2 树型索引。

5.5.3 关键词表索引关键词表索引从各节点抽取关键词,构建起关键词到相应节点的多对多映射关系,即每个关键词可指向多个节点,每个节点也可能有多个关键词。检索时,能依据用户查询的关键词筛选节点。

5.5.4 有关向量的索引。

前面检索后会得到许多相关文档,这时就要筛选和排序了,常用的筛选和排序策略如下:

用于组合提示的不同部分,可采用字符串提示或聊天提示来做。这样构建提示能轻松对组件进行重用。6.2.1 关于字符串的提示。在使用字符串提示时,各个模板会相互连接。您能够直接使用提示或者字符串(列表里第一个元素得是提示),就像langchAIn所提供的prompttemplate那样。6.2.2 聊天相关提示5. 向量数据库的组成。仅仅是为了让开发人员有更好的体验,我们增添了一种便捷的创建提示的方法。在这个流程里,每一个新元素都会成为最终提示中的一条新消息,像langchAIn提供的AIMessage、HumanMessage、SystemMessage就是如此。

推测型RAG并行生成多个草稿,利用验证模型,既能提升生成效率与质量,又可提高速度且保持较高准确性,很适合快速生成内容的应用场景。

融合型RAG会从多个检索源获取信息来作答,这样回答更全面。它可依据用户查询动态改变检索策略,避免依赖单一数据源,通过多源检索让生成结果更多样、更完整。

在图谱RAG里,模型会动态构建知识图谱(Knowledge Graph),把相关实体连接起来,从而提高检索效率与准确度。它能依据查询构建简洁的知识图,防止检索冗余,增强处理复杂任务的能力。

Adaptive RAG能够动态判定检索外部知识的时机,平衡内外部知识的运用。它借助语言模型内部状态的置信度评分来确定是否要检索,还运用诚实探针避免幻觉,让输出与实际知识相符。这种方法减少了多余检索,提高了效率与响应的精准度。

REALM(检索增强语言模型预训练)会从像维基百科这样的大型语料库中检索相关文档,从而提升模型的预测能力。它的检索器借助掩码语言模型(MLM)来训练,通过优化检索提升预测的准确性。在训练期间,REALM运用最大内积搜索,高效地从数百万份候选文档里找出相关内容。由于整合了外部知识,REALM在开放领域问答任务上的表现比以往的模型更出色。

REFEED无需微调,靠检索反馈优化模型输出。它借助检索相关文档完善初始答案,依据新信息调整生成结果。REFEED还会生成多个答案提升检索准确性,并且结合检索前后的结果,利用排序系统让答案更可靠。

迭代式的RAG会进行多次检索操作,依据之前检索文档的反馈持续改进结果。其检索决策依照马尔可夫决策过程,利用强化学习提高检索能力。模型维持内部状态,凭借积累的知识调整后续检索步骤,逐步提升检索的精准度。

REVEAL属于视觉 - 语言增强模型,它融合了推理、任务特定动作与外部知识。该模型依靠现实世界的事实来减少错误与虚假信息,从而让推理更精准。它能生成清晰、类人化的任务解决步骤,增强了透明度。REVEAL在任务中的表现很出色,只需少量训练数据就能高效且适应性良好地发挥作用,还具备灵活的互动调整能力,这让模型在实际应用里更可控、响应更及时。

REPLUG借助检索外部相关文档来强化大型语言模型(LLMs)的预测能力。它把语言模型当作固定的黑箱,在输入前添加检索到的信息。这种灵活设计能无缝用于现有模型,无需修改模型。REPLUG整合外部知识,减少幻觉等错误,还能扩展模型对小众信息的理解。而且其检索组件能依据语言模型的反馈微调,进一步提升与模型需求的匹配度。

MEMO RAG通过融合记忆与检索功能来处理复杂查询。记忆模型先产生初始答案以引导检索外部信息,接着检索器从数据库搜集相关数据,再让更强大的语言模型生成完整的最终答案。这一方法使MEMO RAG能够处理模糊查询,且高效应对各类任务中的海量信息。

纠错型RAG的目的在于借助反馈机制持续优化生成结果。模型生成的初始内容将通过反馈循环加以调整,保证最终输出准确,这在高准确度要求的领域尤为适用。

举报有用(0分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号