首页 > 其他分享 >一幅清晰、完整的大模型RAG 技术蓝图

一幅清晰、完整的大模型RAG 技术蓝图

时间:2024-12-14 16:28:00浏览次数:12  
标签:检索 RAG 增强 一幅 LLMs 模型 蓝图 技术

大型语言模型(LLMs)已经成为我们生活和工作的一部分,它们以惊人的多功能性和智能化改变了我们与信息的互动方式。

前排提示,文末有大模型AGI-CSDN独家资料包哦!

然而,尽管它们的能力令人印象深刻,但它们并非无懈可击。这些模型可能会产生误导性的 “幻觉”,依赖的信息可能过时,处理特定知识时效率不高缺乏专业领域的深度洞察,同时在推理能力上也有所欠缺。

在现实世界的应用中,数据需要不断更新以反映最新的发展,生成的内容必须是透明可追溯的,以便控制成本并保护数据隐私。因此,简单依赖于这些 “黑盒” 模型是不够的,我们需要更精细的解决方案来满足这些复杂的需求。

正是在这样的背景下,检索增强生成技术(Retrieval-Augmented Generation,RAG)应时而生,成为 AI 时代的一大趋势

RAG 通过在语言模型生成答案之前,先从广泛的文档数据库中检索相关信息,然后利用这些信息来引导生成过程,极大地提升了内容的准确性和相关性。RAG 有效地缓解了幻觉问题,提高了知识更新的速度,并增强了内容生成的可追溯性,使得大型语言模型在实际应用中变得更加实用和可信。RAG 的出现无疑是人工智能研究领域最激动人心的进展之一。

本篇综述将带你全面了解 RAG,深入探讨其核心范式关键技术未来趋势,为读者和实践者提供对大型模型以及 RAG 的深入和系统的认识,同时阐述检索增强技术的最新进展和关键挑战。

  • 论文原文:https://arxiv.org/abs/2312.10997

  • 官方仓库:https://github.com/Tongji-KGLLM/RAG-Survey

RAG 是什么?

图 1 RAG 技术在 QA 问题中的案例

一个典型的 RAG 案例如图所示。如果我们向 ChatGPT 询问 OpenAI CEO Sam Atlman 在短短几天内突然解雇随后又被复职的事情。由于受到预训练数据的限制,缺乏对最近事件的知识,ChatGPT 则表示无法回答。RAG 则通过从外部知识库检索最新的文档摘录来解决这一差距。在这个例子中,它获取了一系列与询问相关的新闻文章。这些文章,连同最初的问题,随后被合并成一个丰富的提示,使 ChatGPT 能够综合出一个有根据的回应。

RAG 技术范式发展

RAG 的概念首次于 2020 年被提出,随后进入高速发展。RAG 技术的演进历程如图所示,相关研究进展可以明确地划分为数个关键阶段。在早期的预训练阶段,研究的焦点集中在如何通过预训练模型注入额外的知识,以此增强语言模型的能力。随着 ChatGPT 的面世,对于运用大型模型进行深层次上下文学习的兴趣激增,这推动了 RAG 技术在研究领域的快速发展。随着 LLMs 的潜力被进一步开发,旨在提升模型的可控性并满足不断演变的需求,RAG 的研究逐渐聚焦于增强推理能力,并且也探索了在微调过程中的各种改进方法。特别是随着 GPT-4 的发布,RAG 技术经历了一次深刻的变革。研究重点开始转移至一种新的融合 RAG 和微调策略的方法,并且持续关注对预训练方法的优化。

图 2 RAG 技术发展的科技树

在 RAG 的技术发展过程中,我们从技术范式角度,将其总结成如下几个阶段:

1. 朴素(Naive RAG)

前文案例中展示了经典的 RAG 流程,也被称为 Naive RAG。主要包括包括三个基本步骤:

  1. 索引 — 将文档库分割成较短的 Chunk,并通过编码器构建向量索引。

  2. 检索 — 根据问题和 chunks 的相似度检索相关文档片段。

  3. 生成 — 以检索到的上下文为条件,生成问题的回答。

2. 进阶的 RAG(Advanced RAG)

Naive RAG 在检索质量、响应生成质量以及增强过程中存在多个挑战。Advanced RAG 范式随后被提出,并在数据索引、检索前和检索后都进行了额外处理。通过更精细的数据清洗、设计文档结构和添加元数据等方法提升文本的一致性、准确性和检索效率。在检索前阶段则可以使用问题的重写、路由和扩充等方式对齐问题和文档块之间的语义差异。在检索后阶段则可以通过将检索出来的文档库进行重排序避免 “Lost in the Middle ” 现象的发生,或是通过上下文筛选与压缩的方式缩短窗口长度。

3. 模块化 RAG(Modular RAG)

随着 RAG 技术的进一步发展和演变,新的技术突破了传统的 Naive RAG 检索 — 生成框架,基于此我们提出模块化 RAG 的概念。在结构上它更加自由的和灵活,引入了更多的具体功能模块,例如查询搜索引擎、融合多个回答。技术上将检索与微调、强化学习等技术融合。流程上也对 RAG 模块之间进行设计和编排,出现了多种的 RAG 模式。然而,模块化 RAG 并不是突然出现的,三个范式之间是继承与发展的关系。Advanced RAG 是 Modular RAG 的一种特例形式,而 Naive RAG 则是 Advanced RAG 的一种特例。

图 3 RAG 范式对比图

如何进行检索增强?

RAG 系统中主要包含三个核心部分,分别是 “检索”,“增强” 和 “生成”。正好也对应的 RAG 中的三个首字母。想要构建一个好的 RAG 系统,增强部分是核心,则需要考虑三个关键问题:检索什么?什么时候检索?怎么用检索的内容?

  • 检索增强的阶段:在预训练、微调和推理三个阶段中都可以进行检索增强,这决定了外部知识参数化程度的高低,对应所需要的计算资源也不同。

  • 检索增强的数据源:增强可以采用多种形式的数据,包括非结构化的文本数据,如文本段落、短语或单个词汇。此外,也可以利用结构化数据,比如带有索引的文档、三元组数据或子图。另一种途径是不依赖外部信息源,而是充分发挥 LLMs 的内在能力,从模型自身生成的内容中检索。

  • 检索增强的过程:最初的检索是一次性过程,在 RAG 发展过程中逐渐出现了迭代检索、递归检索以及交由 LLMs 自行判断检索时刻的自适应检索方法。

图 4 RAG 核心组件的分类体系

RAG 和微调应该如何选择?

除了 RAG,LLMs 主要优化手段还包括了提示工程 (Prompt Engineering)、微调 (Fine-tuning,FT)。他们都有自己独特的特点。根据对外部知识的依赖性和模型调整要求上的不同,各自有适合的场景。

RAG 就像给模型一本教科书,用于定制的信息检索,非常适合特定的查询。另一方面,FT 就像一个学生随着时间的推移内化知识,更适合模仿特定的结构、风格或格式。FT 可以通过增强基础模型知识、调整输出和教授复杂指令来提高模型的性能和效率。然而,它不那么擅长整合新知识或快速迭代新的用例。RAG 和 FT,并不是相互排斥的,它们可以是互补的,联合使用可能会产生最佳性能。

图 5 RAG 与其他大模型微调技术对比

如何评价 RAG?

RAG 的评估方法多样,主要包括三个质量评分:上下文相关性、答案忠实性和答案相关性。此外,评估还涉及四个关键能力:噪声鲁棒性、拒答能力、信息整合和反事实鲁棒性。 这些评估维度结合了传统量化指标和针对 RAG 特性的专门评估标准,尽管这些标准尚未统一。

在评估框架方面,存在如 RGB 和 RECALL 这样的基准测试,以及 RAGAS、ARES 和 TruLens 等自动化评估工具,它们有助于全面衡量 RAG 模型的表现。表中汇总了如何将传统量化指标应用于 RAG 评估以及各种 RAG 评估框架的评估内容,包括评估的对象、维度和指标,为深入理解 RAG 模型的性能和潜在应用提供了宝贵信息。

未来 RAG 还有哪些发展前景?

RAG 的发展方兴未艾,还有哪些问题值得进一步去研究?我们从三个方面进行展望:

1.RAG 的垂直优化

垂直优化旨在进一步解决 RAG 当前面临的挑战;

  • 长下文长度。检索内容过多,超过窗口限制怎么办 ?如果 LLMs 的上下文窗口不再受限制,RAG 应该如何改进?

  • 鲁棒性。检索到错误内容怎么处理?怎么对检索出来内容进行过滤和验证?怎么提高模型抗毒、抗噪声的能力。

  • 与微调协同。如何同时发挥 RAG 和 FT 的效果,两者怎么协同,怎么组织,是串行、交替还是端到端?

  • Scaling-Law:RAG 模型是否满足 Scaling Law?RAG 是否会,或是在什么场景下会出现 Inverse Scaling Law 的现象?

  • LLM 的角色。LLMs 可以用于检索(用 LLMs 的生成代替检索或检索 LLMs 记忆)、用于生成、用于评估。如何进一步挖掘 LLMs 在 RAG 中的潜力?

  • 工程实践。如何降低超大规模语料的检索时延?如何保证检索出来内容不被大模型泄露?

2. RAG 的多模态的拓展

如何将 RAG 不断发展的技术和思想拓展到图片、音频、视频或代码等其他模态的数据中?一方面可以增强单一模态的任务,另一方面可以通过 RAG 的思想将多模态进行融合。

3. RAG 的生态

RAG 的应用已经不仅仅局限于问答系统,其影响力正在扩展到更多领域。现在,推荐系统、信息抽取和报告生成等多种任务都开始受益于 RAG 技术的应用。与此同时,RAG 技术栈也在井喷。除了已知的 Langchain 和 LlamaIndex 等工具,市场上涌现出更多针对性的 RAG 工具,例如:用途定制化,满足更加聚焦场景的需求;使用简易化,进一步降低上手门槛的;功能专业化,逐渐面向生产环境。

图 6 RAG 的生态系统概览

结论

该论文概述如图6所示,突出了RAG通过将来自语言模型的参数化知识与来自外部知识库的大量非参数化数据相结合,从而显著增强了LLMs的能力。我们的调查阐明了RAG技术的演变及其对知识密集型任务的影响。我们的分析描绘了RAG框架内的三种发展范式 :朴素、高级和模块化RAG,每一种范式都标志着对其前身的渐进增强。高级RAG范式通过整合复杂的架构元素(包括查询重写、块重新排序和提示摘要)超越了朴素方法。这些创新导致了更加细致和模块化的架构,提升了LLMs的性能和可解释性。RAG与其他AI方法(如微调和强化学习)的技术整合进一步扩展了其能力。在内容检索方面,一种利用结构化和非结构化数据源的混合方法正成为一种趋势,提供了更丰富的检索过程。RAG框架内的前沿研究正在探索诸如从LLMs中自我检索和信息检索的动态时机等新概念。

尽管RAG技术取得了长足进步,但在提升其稳健性和处理扩展语境能力方面仍存在着丰富的研究机会。RAG的应用范围也不断扩大至多模态领域,将其原则调整以解释和处理诸如图像、视频和代码等多样数据形式。这一拓展凸显了RAG在人工智能部署中的重要实际意义,吸引了学术界和工业界的兴趣。RAG生态系统的不断壮大体现在以RAG为中心的人工智能应用增加以及支持性工具的持续发展上。然而,随着RAG应用领域的扩展,迫切需要完善评估方法论以跟上其发展步伐。确保性能评估保持准确和代表性对捕捉RAG对人工智能研发社区的全面贡献至关重要。

读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用

对于0基础小白入门:

如果你是零基础小白,想快速入门大模型是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!

标签:检索,RAG,增强,一幅,LLMs,模型,蓝图,技术
From: https://blog.csdn.net/aolan123/article/details/144472381

相关文章

  • GraphRAG:基于知识图谱的RAG,好用,贼贵!
    转载请注明出处❤️作者:测试蔡坨坨原文链接:caituotuo.top/7d21f69b.html你好,我是测试蔡坨坨。在往期文章中,我们探讨了RAG的应用。然而,在实际使用过程中,我们发现传统RAG的表现并未完全满足预期(例如:在处理数据时,使用默认效果不佳,切片乱七八糟。因此需要花费很大精力去处理数据,比......
  • 语义缓存:提升 RAG 性能的关键策略
    检索增强生成(Retrieval-AugmentedGeneration,简称RAG)(RAG综述:探索检索增强生成技术的多样性与代码实践)技术已经成为构建高性能AI模型的重要基石。RAG通过结合先进的语言模型与外部知识检索,能够生成既准确又富含上下文的响应。然而,尽管RAG功能强大,但它也伴随着一系列挑战,如高令牌......
  • 通过RAG技术处理半结构化数据:深入解析与实用指南
    引言在现代数据处理领域,半结构化数据以其独特的混合文本和表格格式(如PDF文件)成为一种常见的数据类型。然而,如何有效地挖掘这些数据中的信息却是一个挑战。本文介绍了一种利用RAG(检索增强生成)技术处理半结构化数据的实用方法,帮助开发者更好地解析和利用这些数据类型。主要......
  • 解密prompt系列44. RAG探索模式?深度思考模式?
    前一阵多步RAG的风吹入了工业界,kimi推出了探索版本,各应用都推出了深度搜索,You.COM更是早就有了Genius的多步模式。其实都是类似multi-hopRAG的实现。之前学术界在讨论multi-hopRAG的时候总是给一些基于历史知识类的问题,什么某年诺贝尔奖的获奖人在哪读的大学呀,给人一种错觉就是......
  • 长文 | RAG的实战指南及探索之路
    1.背景介绍RAG(RetrievalAugmentedGeneration,检索增强生成)方法是指结合了基于检索的模型和生成模型的能力,以提高生成文本的质量和相关性。该方法是Meta在2020年发表的文章《Retrieval-AugmentedGenerationforKnowledge-IntensiveNLPTasks》中提出的,该方法让LM(Lang......
  • Prometheus 3.0.0 升级中遇到的 `--storage.tsdb.retention` 错误的修复方法
    在将Prometheus升级到3.0.0后,许多用户会遇到以下错误:Errorparsingcommandlinearguments:unknownlongflag'--storage.tsdb.retention'prometheus:error:unknownlongflag'--storage.tsdb.retention'该错误是由于Prometheus3.0.0版本中,已经移除了多个已弃用......
  • 鸿蒙Next持久化存储PersistentStorage用法总结
    一、概述PersistentStorage是应用程序中的可选单例对象,用于持久化存储选定的AppStorage属性,确保这些属性在应用程序重新启动时的值与关闭时相同。它将属性保留在设备磁盘上,UI和业务逻辑通过AppStorage访问其属性,AppStorage中的更改会自动同步到PersistentStorage,二者建立双向同步......
  • [深入探索Azure Blob Storage:如何加载文件对象]
    引言在现代云计算中,AzureBlobStorage提供了一种用于存储大量非结构化数据的强大解决方案。无论是文档、媒体文件还是其他数据类型,AzureBlobStorage都能有效处理。而在这篇文章中,我们将探讨如何使用AzureBlobStorageFileLoader从AzureBlobStorage中加载文件对象。我......
  • RAG框架,都在这了!
    前言RAG很多人都听说过,或者实践过,目前最直接的应用就是构建智能问答系统。什么是RAG?RAG是RetrievalAugmentedGeneration的简写,翻译过来就是检索增强生成。从名字就可以拆分出RAG的三大部分,检索、增强、生成,表面意思就是:1、去知识库检索相关的各种东西2、把检......
  • 论文解读《LightRAG: Simple and Fast Retrieval-Augmented Generation》
    博客:https://learnopencv.com/lightrag视频:https://www.youtube.com/watch?v=oageL-1I0GE代码:https://github.com/HKUDS/LightRAG论文:https://arxiv.org/abs/2410.05779​ -时间:2024.10​ -单位:UniversityofHongKong、BeijingUniversityofPostsandTelecommunicatio......