干货!带你了解7种检索增强生成 (RAG) 技术

news/2025/1/7 12:27:57/文章来源:https://www.cnblogs.com/quincyqiang/p/18654066

回顾2023年RAG技术的发展,检索增强生成(Retrieval-Augmented Generation,RAG)技术彻底改变了人工智能模型的工作方式,它将生成式人工智能的优势与检索现实世界文档的精确性相结合。通过从外部来源提取相关数据,RAG使得人工智能能够生成更准确且上下文更合适的答案。

随着这项技术的不断发展,RAG的多种变体应运而生,每种变体都在解决不同的挑战并提升人工智能的整体性能。在本文中,我们将深入探讨七种关键的RAG技术,重点介绍每种技术如何独特地提升AI生成内容的质量。

1. 简单RAG(Simple RAG)

在简单RAG中,大型语言模型(LLM)接收用户查询,在向量存储库中进行相似性搜索或在知识图谱中进行关系搜索,然后基于检索到的信息生成答案。

工作原理:

  1. 用户查询:用户提供一个查询或输入,该查询被输入到系统的检索部分。
  2. 搜索与检索:模型在向量存储库或知识图谱中搜索相关文档或文本。检索器根据相关性对文档进行排名,并选择最相关的k个(例如,前5个)段落。
  3. 生成答案:选定的文档被传递给LLM,LLM使用这些文档作为上下文,生成一个结构良好且相关的答案。

2. 校正RAG(Corrective RAG)

在校正RAG中,系统不仅检索和生成答案,还会验证并校正这些答案。

工作原理:

  1. 搜索与检索:与简单RAG类似,系统根据查询检索相关文档。
  2. 评分:将检索到的上下文与可信数据集(如测试集或带有预定义规则的提示)进行比较。此步骤的方法根据项目目标有所不同。
  3. 校正:如果在评分过程中发现任何不准确或不一致之处,模型将使用从查询中提取的关键词进行网络搜索,以生成新的答案或优化之前的答案。

3. 自省RAG(Self RAG)

自省RAG通过自我反思或自我批评来提高RAG结果的质量。

工作原理:

  1. 搜索与检索:模型首先检索相关信息并根据输入查询生成答案。
  2. 评分:为了对文档进行评分或反思,LLM会对每个答案进行批评,判断其是否与查询相关。如果文档不相关,则使用外部来源;如果相关,则检查是否存在幻觉和准确性。
  3. 幻觉检查:幻觉节点检查答案是否由文档支持。有时,AI模型会“幻觉”,即生成听起来正确但实际上没有任何真实数据或文档支持的答案。幻觉节点通过确保模型的答案有文档支持来防止这种情况,确保答案的准确性和可靠性。
  4. 回答问题:回答问题节点检查生成的答案是否回答了问题。它查看生成的答案并检查其是否相关且完整地回答了原始问题。如果没有,模型可以改进或调整答案以确保其准确性。
  5. 输出:通过每次迭代,模型生成更准确且上下文更相关的答案。迭代次数取决于项目规模和可用处理能力。

4. 推测RAG(Speculative RAG)

推测RAG是一种为给定查询生成多个答案的方法,利用检索模型提供相关信息。然后通过评分系统评估这些答案,选择最准确且上下文最合适的答案。这种方法有助于处理模糊性或查询可能有多种解释的情况。

工作原理:

  1. 搜索与检索:与简单RAG类似,系统检索与查询相关的多个文档。
  2. 推测:LLM从检索到的文档中生成多个推测性答案,探索各种可能的输出,而不仅仅是一个。
  3. 评分:评分机制根据相关性、连贯性、完整性和事实准确性等标准对每个答案进行评估和打分。这可能涉及将答案与更多检索到的文档进行比较或使用评分模型。与校正RAG类似,此步骤取决于项目目标和领域。
  4. 选择与答案:模型对答案进行排名,并选择得分最高的答案作为最终输出。

5. 融合RAG(Fusion RAG)

融合RAG结合了来自多个检索来源的信息,以生成一个全面的答案。

工作原理:

  1. 搜索与检索多样化文档:系统检索多个相关文档,确保它们代表不同的观点或解决查询的不同方面。每个文档都可以被视为查询的一个答案。
  2. 信息整合:LLM不仅结合了多个来源一致的文档,还考虑了不同文档中的各种观点或角度,旨在生成一个公平代表这些不同观点的答案。然后,模型通过结合所有检索到的文档中的相关信息,生成一个连贯、统一的答案,基于证据呈现一个平衡的观点。
  3. 冲突解决:当存在冲突时,模型使用额外的上下文或预定义规则来解决冲突,以确保最终答案的一致性。

6. 自主RAG(Agentic RAG)

自主RAG涉及一个具有特定目标的AI系统,它使用检索过程来自主做出决策并指导其行动。

工作原理:

  1. 查询输入:过程从用户的明确目标或查询开始,例如解释一个概念、提供定制建议或解决复杂问题。此查询作为模型行动的基础。
  2. 搜索与检索:模型访问知识库或数据库,该数据库经过预处理阶段以高效地构建信息以供后续使用。预处理后的数据存储在向量存储库或知识图谱中,以便于检索。
  3. 问答检查:生成初始答案后,模型检查问题是否已得到充分回答。这是过程中的一个关键决策点。如果是,则继续提供最终答案给用户。如果否,则进入下一阶段。
  4. 代理干预与行动:如果初始答案未能充分回答查询,模型通过代理采取行动。代理可能会执行额外的任务,例如使用外部工具或调用进一步的操作以收集更多相关信息。LLM自主决定检索哪些信息以及采取哪些行动以实现目标。这可以通过在该步骤中为LLM定义一个思维链提示来完成。
  5. 迭代过程与动态调整:该过程是动态且迭代的。代理持续评估模型的进展并实时调整行动,优化策略以获得更好的结果。此步骤涉及评估中间结果并采取纠正措施,例如重新查询或更改检索方法。
  6. 目标完成:一旦模型确认已达到目标或解决了问题,它将生成最终输出或答案,并交付给用户。如果需要进一步调整,该过程可能会再次循环,直到查询完全解决。

7. 图RAG(Graph RAG)

GraphRAG 是微软公司内部广受赞誉的一种结合了检索增强生成(RAG)技术和知识图谱的先进框架。它在传统 RAG 框架的基础上,进一步强化了实体、社区以及文本切块(Chunking)之间的内在联系,并且巧妙地将现有知识图谱(KG)中的知识融入其中。这一系列的改进措施,显著提升了信息检索的召回率与准确性,为用户带来了更为优质的信息检索体验。

GitHub: microsoft/graphrag
论文: From Local to Global: A Graph RAG Approach to Query-Focused Summarization
项目文档: microsoft.github.io/graphrag/

GraphRAG 旨在通过利用外部结构化知识图谱来增强大型语言模型(LLMs)的性能,有效解决模型可能出现的“幻觉”问题、领域知识缺失以及信息过时等问题。GraphRAG 的核心目的在于从数据库中检索最相关的知识,以增强下游任务的答案质量,提供更准确和丰富的生成结果。

工作原理

1. 索引建立阶段
在 GraphRAG 的索引建立阶段,主要目标是从提供的文档集合中提取出知识图谱,并构建索引以支持后续的快速检索。这一阶段是 GraphRAG 工作流程的基础,其效率和准确性直接影响到后续检索和生成的质量。

  • 文本块拆分:首先,原始文档被拆分成多个文本块,这些文本块是 GraphRAG 处理的基本单元。根据微软的研究,每个文本块的大小和重叠度可以调整,以平衡处理速度和输出质量。
  • 实体与关系提取:利用大型语言模型(LLM),对每个文本块进行分析,提取出实体和关系。这一步骤是构建知识图谱的关键,涉及到命名实体识别(NER)和关系抽取(RE)技术。
  • 生成实体与关系摘要:为提取的实体与关系生成简单的描述性信息,这些信息将作为图节点的属性存储,有助于后续的检索和生成过程。
  • 社区检测:通过社区检测算法,如 Leiden 算法,识别图中的多个社区。这些社区代表了围绕特定主题的一组紧密相关的实体和关系。
  • 生成社区摘要:利用 LLM 为每个社区生成摘要信息,这些摘要提供了对数据集全局主题结构和语义的高层次理解,是回答高层次查询问题的关键。

2. 查询处理阶段
查询处理阶段是 GraphRAG 工作流程的最终环节,它决定了如何利用已建立的索引来回答用户的查询。

  • 本地搜索(Local Search):针对特定实体的查询,GraphRAG 通过扩展到相关实体的邻居和相关概念来推理,结合结构化数据和非结构化数据,构建用于增强生成的上下文。
  • 全局搜索(Global Search):对于需要跨整个数据集整合信息的复杂查询,GraphRAG 采用 Map-Reduce 架构。首先,利用社区摘要独立并行地回答查询,然后将所有相关的部分答案汇总生成全局性的答案。

在查询处理阶段,GraphRAG 展示了其在处理复杂查询任务上的优势,尤其是在需要全局理解和高层语义分析的场景中。通过结合知识图谱的结构化信息和原始文档的非结构化数据,GraphRAG 能够提供更准确、更全面的答案。

GraphRAG 的成功也催生了一系列轻量级的优化版本,诸如 LightRAG 与 nano-GraphRAG 等。与此同时,还涌现出了一些别具一格的变体,如 KAG 框架。这些框架在传统 RAG 框架的基础上,进一步强化了实体、社区以及文本切块(Chunking)之间的内在联系,并且巧妙地将现有知识图谱(KG)中的知识融入其中。这一系列的改进措施,显著提升了信息检索的召回率与准确性,为用户带来了更为优质的信息检索体验。

示例
针对新闻文章数据集的示例问题,Graph RAG(C2)和基础 RAG 的表现显示,GraphRAG 在处理复杂查询任务上具有显著优势,尤其是在需要全局理解和高层语义分析的场景中。

参考资料

  • GraphRAG、Naive RAG框架总结主流框架推荐(共23个):LightRAG、nano-GraphRAG、Dify等

添加微信1185918903,关注公众号ChallengeHub获取更所咨询

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/864586.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在浏览器中以按钮的方式执行Shell脚本

一、功能描述 有时候我们需要不定时的在服务器上执行某些脚本,当然我们可以使用电脑+XShell等工具登录到服务器运行脚本,如果使用手机就不方便操作了,那我们把脚本放在WEB页面中,只要手机可以正常访问到服务器,就可以使用浏览器打开页面,点击对应的按钮完成操作。 在网页…

基于ESP32的桌面小屏幕实战[5]:PCB下单

1. 焊接调试前准备 PCB下单 点击“PCB下单”检查一下DRC确认无错误之后,确认下单然后就会跳转到下面的网页基本上保持默认选项即可。可以看到“焊盘喷镀”有3个选项。在选择表面处理工艺时,应综合考虑产品的具体需求、环保法规以及成本等因素。例如,对于环保要求较高的消费电…

使用生成式人工智能进行软件测试1使用大型语言模型增强测试

1 使用大型语言模型增强测试 1.1 认识人工智能工具对测试和开发的影响 在过去,想要利用人工智能的个人必须具备开发、训练和部署人工智能模型的技能,或者有一个专家团队来完成这些任务,所有这些都会使在日常活动中使用人工智能成为一项昂贵而独特的工作。随着最近人工智能的…

20241319 《计算机基础与程序设计》课程总结

每周作业链接汇总第零周作业:链接,简要内容:自我介绍,课程预习与准备,建立个人技术博客,加入云班课.第一周作业:链接,简要内容:课程概论,工业革命与浪潮之巅,信息与信息安全,计算机系统概论,计算机安全,计算的限制,计算思维.第二周作业:链接,简要内容:数字化…

2024-2025-1 20241409《计算机基础与程序设计》第十五周学习总结

自我介绍很高兴加入2024计算机基础与程序设计 (北京电子科技学院 - 网络空间安全)的班级的大家庭。 第一周作业1.对《计算机基础与程序设计》进行了概述,有了基础的了解。 2.学习了有关2进制、8进制、10进制、16进制之间的转换。 第二周作业1.学习了《计算机科学概论》第一章,…

前端性能优化原理与实践笔记

知识体系与小册格局 写给读者 提起性能优化,大家现在脑海里第一时间会映射出什么内容呢? 可能是类似“雅虎军规”和《高性能 JavaScript》这样历久弥香的经典之作,也可能是搜索引擎聚合给你的一篇又一篇以性能优化为主题的个人或团队实践而来的“私货”。至少当我确定自己的…

20241420 《计算机基础与程序设计》课程总结

20241420 《计算机基础与程序设计》课程总结 每周作业链接汇总 第0周作业:自我介绍与展望 https://www.cnblogs.com/vincent2077/p/18432491第一周作业:安装Linux系统并根据每章内容提出先导提问 https://www.cnblogs.com/vincent2077/p/18438668第二周作业:《计算机科学概论…

2024-2025-1 20241317 《计算机基础与程序设计》课程总结

学号20241317 《计算机基础与程序设计》课程总结 (按顺序)每周作业链接汇总 第0周作业:自我介绍第一周作业:AI学习第二周作业:c语言程序设计第一章第三周作业:c语言程序设计第二章第四周作业:c语言程序设计第三章第五周作业:c语言程序设计第四章第六周作业:c语言程序设…

Linux服务器无Root权限安装Cuda方法及问题解决

CUDA 简介 什么是 CUDA ? CUDA(Compute Unified Device Architecture)是由 NVIDIA 提供的一种并行计算平台和编程模型,用于加速计算密集型任务。CUDA 允许开发者使用 GPU 的计算能力,通过并行处理来快速执行复杂的计算任务。 CUDA 包括以下主要组成部分:CUDA Toolkit:为…

开启家具组装新方式:产品说明书智能指导

在快节奏的现代生活中,人们越来越追求便捷与高效。无论是新房装修还是家具换新,家具组装已成为许多家庭不可避免的一项任务。然而,面对复杂多变的家具图纸和冗长的产品说明书,许多人常常感到无从下手,甚至因操作不当而损坏零件。为了解决这一难题,一种全新的家具组装方式…

2024-2025-1 20241408陈烨南《计算机基础与程序设计》课程总结

每周作业链接汇总 第0周作业 自我介绍 https://www.cnblogs.com/chenyenai/p/18432520第1周作业 计算机基础与程序设计中的问题提问 https://www.cnblogs.com/chenyenai/p/18439433第2周作业 阅读《计算机科学概论》第一章和《C语言程序设计》第一章,并进行总结 https://www.c…

# 学期(如2024-2025-1) 学号(如:20241402) 《计算机基础与程序设计》第15周学习总结

学期(如2024-2025-1) 学号(如:20241402) 《计算机基础与程序设计》第15周学习总结 作业信息这个作业属于哪个课程 <班级的链接>(如2024-2025-1-计算机基础与程序设计)这个作业要求在哪里 <作业要求的链接>(如2024-2025-1计算机基础与程序设计第一周作业)这个…