本文介绍了18种不同的RAG(Retrieval-Augmented Generation,检索增强生成)技术,旨在优化信息检索和生成过程,提高检索效果和生成质量
1 、Simple RAG
从 PDF 中提取文本。
将文本分割成更小的块。
将块转换为数值嵌入。
根据查询搜索最相关的块。
使用检索到的片段生成响应。
2、 语义分块RAG
简单 RAG 方法中,我们只是将文本切割成固定大小的块。这相当粗糙!可能会把句子切成两半,或者把不相关的句子放在一起。
语义块划分旨在更智能。它不是基于固定大小,而是尝试根据意义来分割文本,将语义相关的句子分组在一起。
3 、上下文丰富检索
语义分块(Semantic Chunking):将文本按照语义分割成不同的片段(chunks)。虽然理论上有助于信息检索,但在实践中可能因过于专注于片段本身而忽略了周围上下文,导致结果不够理想。
上下文丰富检索(Context-enriched Retrieval):一种改进的检索方法,旨在解决语义分块可能遗漏关键上下文的问题。它不仅检索与查询最匹配的片段,还会获取该片段周围的相邻片段,从而提供更丰富的上下文信息。
4 、上下文化块标题
语义分块虽然可以将文本分割成有意义的片段,但有时可能遗漏重要信息,尤其是在片段内容本身不完整的情况下。 文档通常具有清晰的结构(如标题、小标题等),这些结构提供了关键上下文信息,但传统的分块方法可能没有充分利用这些结构。
在创建嵌入向量之前,为每个文本块添加一个描述性标题。这个标题就像一个迷你摘要,能够为检索系统和语言模型(LLM)提供更多的上下文信息,从而更有效地组织和检索相关信息。
5 、文档增强
在语义检索中,仅仅依靠文本块本身可能无法完全匹配用户的查询意图。
通过从文本块中生成问题,可以为检索系统提供更多角度的匹配内容,从而提高检索效果。
在文本块分割和嵌入创建之间添加了一个步骤:问题生成。从每个文本块中生成一定数量的问题。这些生成的问题可以作为替代“查询”,可能比原始文本块本身更好地匹配用户的意图
6、 查询转换
用户提出问题的方式可能并不适合直接用于检索知识库中的信息查询转换旨在优化用户的原始查询,使其更适合检索系统,从而提高检索效果和生成质量
查询重写:目的是通过更精确的表达,提高检索的准确性和相关性。
回退提示:创建一个更广泛、更一般的查询,以检索有用的背景信息。与查询重写相反,回退提示通过放宽查询范围,获取更广泛的上下文信息。
子查询分解:通过多个子查询更全面地覆盖原始查询的意图,从而提高检索效果。
7 、重排器
在传统的RAG系统中,简单的相似度搜索可能会返回相关和不相关的结果混合,导致检索效果不够理想。
为了提高检索质量,需要对初始检索结果进行进一步优化,确保最有用的信息排在前面
在初始检索之后,对检索到的结果进行重新排序(重排),以提高结果的相关性和实用性。
8、 RSE
RSE旨在解决最佳信息可能分布在多个连续片段中的问题,通过识别并提取整个相关文本段来优化检索效果 在传统的RAG系统中,通常只检索前k个片段,但最佳信息可能分布在多个连续片段中。
单个片段可能无法完整地表达关键信息,导致检索结果不完整或不准确
不是仅仅抓取前k个片段,而是试图识别并提取整个相关文本段。
通过提取连续的相关片段,确保检索到的信息是完整且连贯的
9、上下文压缩
为了提高检索效果,往往会检索大量上下文(如邻近的块、生成的提问、整个段落等)。然而,LLMs具有有限的内容窗口,过多的无关信息可能会导致性能下降,甚至干扰模型的理解和生成。
检索大量上下文,但在传递给LLM之前对其进行压缩,只保留与查询直接相关的部分。
通过精炼上下文,减少无关信息的干扰,提高LLM的生成质量和性能。
10 、反馈循环
之前提到的所有技术(如查询转换、重排器、上下文压缩等)都是“静态”的,它们不会从错误中学习。 为了使系统能够根据用户反馈不断改进,需要引入反馈循环。
用户对RAG系统的响应提供反馈(如好/坏、相关/无关),系统存储这些反馈,并在未来检索中使用这些反馈来改进。
目标:通过用户反馈不断优化检索效果,使系统能够适应用户需求并持续改进。
11 、Adaptive RAG
不同的查询类型可能需要不同的检索策略。例如,事实性查询需要精确的事实和数字,而分析性查询则需要全面覆盖主题的不同方面。
根据查询的类型动态选择最适合的检索策略,而不是使用单一的静态策略。
提高适应性:根据查询的类型动态选择最适合的检索策略,使系统能够更好地适应不同类型的查询。
提高检索质量:不同的查询类型需要不同的检索策略,适应性RAG能够更精准地满足用户需求。
灵活性:适应性RAG可以与其他优化方法(如查询转换、重排器、上下文压缩等)结合使用,进一步提升系统的性能
12 、Self RAG
传统的RAG系统主要是反应式的,接收查询后直接进行检索和生成响应,缺乏对检索必要性和检索内容的反思
自我RAG不仅检索和生成,还会思考是否需要检索、检索什么以及如何使用检索到的信息。它通过生成“反思令牌”来推理自己的过程,从而更加智能地决定何时需要检索以及何时不需要。
13、 知识图谱
传统的RAG系统将文档视为独立的块集合,忽略了信息之间的关联性。
图RAG将信息组织成知识图谱,其中节点代表概念、实体或信息片段,边表示节点之间的关系。通过遍历知识图谱,不仅能找到直接相关的信息,还能找到提供关键背景的间接相关信息。
核心逻辑: 计算每个文本块的嵌入向量。 为每个文本块提取概念(concepts)。 将文本块作为节点添加到图中,节点包含文本、概念和嵌入向量。 根据共享概念和嵌入相似度创建边,边的权重由相似度和共享概念的比例决定。
14、 层级索引
层次索引通过创建两个级别的表示——摘要(summaries)和详细块(detailed chunks),解决小块和大块之间的权衡问题
小块:虽然能够提供精确匹配,但可能失去上下文信息。
大块:虽然能够保留上下文,但可能导致检索到的信息不太相关。
创建两个级别的表示:
摘要:对较大文档部分的简洁概述。
详细块:这些部分中的更小部分。
通过两阶段检索,既保留了上下文信息,又提供了小块的精确性。
15 、HyDE(假设文档嵌入)
直接嵌入用户的查询或其变换版本,可能导致查询的语义表示不够丰富,影响检索效果。
HyDE是通过生成一个假设文档来回答查询,然后对这个假设文档进行嵌入,而不是直接嵌入查询。这种方法能够提供更丰富的语义表示,从而更好地在查询和文档的嵌入空间之间架起桥梁。
16、 Fusion RAG
向量搜索擅长语义相似度,但可能忽略精确匹配。
关键词搜索擅长找到精确匹配,但可能缺乏语义理解。 融合检索的目标:结合向量搜索和关键词搜索的优势,同时捕捉语义相似度和精确关键词匹配。
17、 多模融合
传统的RAG系统主要处理文本信息,忽略了文档中的图像、图表等视觉信息。许多关键信息可能被锁在图像、图表和图表中,仅靠文本检索可能无法充分利用这些信息。
多模态RAG的目标:
提取文档中的文本和图像信息。 为图像生成文本描述(标题),并将这些描述与文本信息一起嵌入到向量存储中。 通过跨文本和图像信息进行搜索,提高检索效果和生成质量。
18 、CRAG
传统RAG系统在检索到信息后直接生成响应,没有对检索到的信息进行评估。如果检索到的信息是错误的、无关的、不完整的,甚至是矛盾的,可能会导致生成的响应质量不高。
在初始检索之后,评估检索到的文档的相关性。 根据评估结果采取不同的策略,确保生成的响应更加准确和可靠。
提高稳健性:通过评估检索到的文档的相关性,CRAG能够更稳健地处理信息,避免因错误或不完整的检索结果导致生成的响应质量不高。
灵活性:根据评估结果采取不同的策略,能够更好地适应不同的查询和文档质量。
提高响应质量:通过结合文档和网络的信息,CRAG能够生成更准确、更可靠的响应
结论
在测试的18种RAG技术中,从简单的分块策略到高级的Adaptive RAG方法,各种技术都从不同角度提升了检索质量。其中,Simple RAG作为基线方法,虽然简单,但效果有限。而分层索引、融合检索和CRAG等更复杂的方法,通过解决检索挑战的不同方面,显著优于Simple RAG,其性能指标分别达到0.84、0.83和0.824。 然而,Adaptive RAG凭借其智能选择检索策略的能力,能够根据查询类型动态调整,最终脱颖而出,其性能指标达到0.86。这表明,具有情境感知和灵活性的系统,能够在满足多样化信息需求方面提供最佳结果。
那么,如何系统的去学习大模型LLM?
作为一名从业五年的资深大模型算法工程师,我经常会收到一些评论和私信,我是小白,学习大模型该从哪里入手呢?我自学没有方向怎么办?这个地方我不会啊。如果你也有类似的经历,一定要继续看下去!这些问题啊,也不是三言两语啊就能讲明白的。
所以我综合了大模型的所有知识点,给大家带来一套全网最全最细的大模型零基础教程。在做这套教程之前呢,我就曾放空大脑,以一个大模型小白的角度去重新解析它,采用基础知识和实战项目相结合的教学方式,历时3个月,终于完成了这样的课程,让你真正体会到什么是每一秒都在疯狂输出知识点。
由于篇幅有限,⚡️ 朋友们如果有需要全套 《2025全新制作的大模型全套资料》,扫码获取~
👉大模型学习指南+路线汇总👈
我们这套大模型资料呢,会从基础篇、进阶篇和项目实战篇等三大方面来讲解。
👉①.基础篇👈
基础篇里面包括了Python快速入门、AI开发环境搭建及提示词工程,带你学习大模型核心原理、prompt使用技巧、Transformer架构和预训练、SFT、RLHF等一些基础概念,用最易懂的方式带你入门大模型。
👉②.进阶篇👈
接下来是进阶篇,你将掌握RAG、Agent、Langchain、大模型微调和私有化部署,学习如何构建外挂知识库并和自己的企业相结合,学习如何使用langchain框架提高开发效率和代码质量、学习如何选择合适的基座模型并进行数据集的收集预处理以及具体的模型微调等等。
👉③.实战篇👈
实战篇会手把手带着大家练习企业级的落地项目(已脱敏),比如RAG医疗问答系统、Agent智能电商客服系统、数字人项目实战、教育行业智能助教等等,从而帮助大家更好的应对大模型时代的挑战。
👉④.福利篇👈
最后呢,会给大家一个小福利,课程视频中的所有素材,有搭建AI开发环境资料包,还有学习计划表,几十上百G素材、电子书和课件等等,只要你能想到的素材,我这里几乎都有。我已经全部上传到优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费
】
相信我,这套大模型系统教程将会是全网最齐全 最易懂的小白专用课!!