RAG全解析:你想知道的,这里都有!

什么是RAG?

大型语言模型(LLMs)已经成为我们生活和工作中不可或缺的一部分,通过其惊人的通用性和智能改变了我们与信息的交互方式。

尽管它们的能力令人印象深刻,但它们并非没有缺陷。这些模型会产生误导性的“幻觉”,依赖潜在过时的信息,在处理专业知识时效率低下,在专业领域缺乏深度,推理能力不足。

在现实世界的应用中,数据需要不断更新以反映最新发展,生成的内容必须透明且可追溯以管理成本和保护数据隐私。因此,仅仅依靠这些“黑箱”模型是不够的;我们需要更精细的解决方案来满足这些复杂的需求。

在此背景下,检索增强生成(RAG)作为人工智能时代的一种开创性趋势而脱颖而出。

RAG通过在语言模型生成答案之前首先从外部文档数据库中检索相关信息,显着提高了内容的查准率/精确度和针对性。

RAG范式

由Lewis于2020年引入的RAG概念发展迅速,标志着其研究历程的不同阶段。最初,该研究旨在通过在预训练阶段为语言模型注入额外的知识来支持语言模型。ChatGPT的推出激发了人们对利用大型模型进行深入上下文理解的浓厚兴趣,加速了RAG在推理阶段的发展。随着研究人员更深入地研究大型语言模型(LLMs)的功能,重点转向增强其可控性和推理技能,以跟上不断增长的需求。GPT-4的出现标志着一个重要的里程碑,它通过一种新颖的方法彻底改变了RAG,该方法将其与微调技术相结合,同时继续完善预训练策略。

在RAG的技术发展中,我们从技术范式的角度将其演变总结为以下几个阶段:

Naive RAG

经典的RAG过程,也称为朴素RAG,在前面的示例中进行了演示。它主要包括三个基本步骤:

  1. 索引-将文档语料库拆分为更短的块,并通过编码器构建向量索引。

  2. 检索-根据问题和块之间的相似性检索相关文档片段。

  3. 生成-根据检索到的上下文生成问题的答案。

Advanced RAG

朴素RAG在检索、生成和增强方面面临多重挑战,Advanced RAG范式随后被提出,并涉及Pre-Retrieval和Post-Retrieval中的附加处理,在检索之前,可以使用查询重写、路由和扩展等方法对齐问题和文档块之间的语义差异,在检索之后,对检索到的文档语料库进行重新排序可以避免"迷失在中间"现象,或者对上下文进行过滤和压缩以缩短窗口长度。

Modular RAG

随着RAG技术的进一步发展和演进,新的突破超越了传统的朴素RAGRetrieval-Generation框架,导致了模块化RAG的概念。在结构上,它更加自由和灵活,引入了更具体的功能模块,如查询搜索引擎和多个答案的融合。在技术上,它将检索与微调、强化学习等技术融为一体。在过程方面,RAG模块被设计和编排,产生了各种RAG模式。

然而,模块化RAG并不是突然出现的;三种范式之间存在继承性和发展性的关系。高级RAG是模块化RAG的一个特例,朴素RAG是高级RAG的一个特例。

如何做增强?

要构建一个好的RAG系统,其中增强部分是关键,需要考虑三个关键问题:

  1. 检索什么?

  2. 什么时候检索?

  3. 如何使用检索到的内容?

从以上三个问题出发,我们将增强整理如下:

  • 检索增强可以在预训练、微调和推理阶段执行,这决定了外部知识的参数化程度,并对应于所需的不同计算资源。

  • 数据源增强。可以利用各种形式的数据,包括非结构化数据,如文本段落、短语或单个单词。也可以使用结构化数据,如索引文档、三元数据或子图。另一种方法是不依赖外部信息源,而是充分利用LLMs的内在能力,从LLMs自己生成的内容中检索。

  • 初始检索是一个一次性的过程,但是迭代检索、递归检索和自适应检索方法,LLMs自己决定检索的时间,在RAG的发展中逐渐出现。

RAG还是微调?

除了RAG之外,LLMs的主要最优化策略还包括提示工程和微调(FT)。每个都有自己独特的特点。根据它们对外部知识的依赖和模型调整的要求,它们各自有合适的场景。

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

如何评估RAG?

RAG的评价方法多种多样,主要包括三个质量分数:上下文相关性、答案保真度和答案相关性。此外,评估涉及四个关键能力:噪声稳健性、拒绝能力、信息集成性和反事实稳健性。这些评估维度将传统的定量指标与RAG特征的专门评估标准相结合,尽管这些标准尚未标准化。

在评估框架方面,有RGB、RECALL等基准,也有RAGAS、ARES、TruLens等自动化评估工具,有助于全面衡量RAG模型的性能。

前景

RAG的发展方兴未艾,有几个问题值得进一步探讨,我们可以从三个方面对这些进行展望:

存在的挑战:

旨在进一步应对RAG目前面临的挑战;

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

  • 鲁棒性。如何处理检索到的不正确内容?如何过滤和验证检索到的内容?如何增强模型对中毒和噪声的抵抗力?

  • 微调协调。如何同时利用RAG和FT的效果,它们应该如何协调、组织,无论是串联、交替还是端到端?

  • 缩放定律:RAG模型是否满足缩放定律?RAG,或者在什么情况下RAG可能会遇到逆缩放定律的现象?

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

  • 生产环境应用。如何降低超大规模语料库的检索延迟?如何确保检索到的内容不被LLMs泄露。

多模态扩展

RAG不断发展的技术和概念如何扩展到图像、音频、视频或代码等其他数据模式?一方面,这可以增强单一模态内的任务,另一方面,它可以通过RAG的思想融合多模态。

RAG的生态系统

RAG的应用不再局限于问答系统;其影响正在扩展到更多的领域。现在,推荐系统、信息抽取、报告生成等多种任务开始受益于RAG技术的应用。

与此同时,RAG技术堆栈正在经历繁荣。除了Langchain和LlamaIndex等知名工具之外,市场上还出现了更有针对性的RAG工具,例如:那些为特定用例定制的工具,以满足更集中的场景需求;那些为进一步降低进入门槛而简化的工具;以及那些专门从事功能的工具,逐渐瞄准生产环境。

RAG论文列表

增强阶段

预训练

1.Improving language models by retrieving from trillions of tokens [paper][code]

2.Few-shot Learning with Re-trieval Augmented Language Models [paper]

3.Toolformer: Language Models Can Teach Themselves to Use Tools[paper]

4.Copy is all you need[paper]

5.In-context learning with retrieval augmented encoder-decoder language model[paper]

6.Shall we pretrain autoregressive language models with retrieval?[paper]

7.Demonstrate-Search-Predict: Composing retrieval and language models for knowledge-intensive NLP[paper]

微调

1.Dense Passage Retrieval for Open-Domain Question Answering[paper]

2.UPRISE: Universal Prompt Retrieval for Improving Zero-Shot Evaluation[paper][code]

3.Distilling knowledge from reader to retriever for question answering[paper]

4.RA-DIT: Retrieval-Augmented Dual Instruction Tuning[paper]

5.Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection[paper]

6.Knowledge Graph-Augmented Language Models for Knowledge-Grounded Dialogue Generation[paper]

7.Structure-Aware Language Model Pretraining Improves Dense Retrieval on Structured Data [paper] [code]

8.Replug: Retrieval-augmented black-box language models [paper]

9.Augmentation-Adapted Retriever Improves Generalization of Language Models as Generic Plug-In [paper][code]

推理

1.Generalization through Memorization: Nearest Neighbor Language Models[paper]

2.DEMONSTRATE–SEARCH–PREDICT: Composing retrieval and language models for knowledge-intensive NLP [paper][code]

3.Keyword Augmented Retrieval: Novel framework for Information Retrieval integrated with speech interface. [paper]

4.Interleaving retrieval with chain-of-thought reasoning for knowledge-intensive multi-step questions. [paper][code]

5.Generate rather than Retrieve: Large Language Models are Strong Context Generators [paper] [code]

6.In-Context Retrieval-Augmented Language Models [paper]

增强数据

Unstructured Data

1.UPRISE: Universal Prompt Retrieval for Improving Zero-Shot Evaluation[paper][code]

2.From Classification to Generation: Insights into Crosslingual Retrieval Augmented ICL [paper]

3.Copy is all you need [paper]

Structured Data

1.FABULA: Intelligence Report Generation Using Retrieval-Augmented Narrative Construction [paper]

2.Knowledge Graph-Augmented Language Models for Knowledge-Grounded Dialogue Generation [paper]

3.KnowledGPT: Enhancing Large Language Models with Retrieval and Storage Access on Knowledge Bases [paper]

4.Graph-ToolFormer: To Empower LLMs with Graph Reasoning Ability via Prompt Augmented by ChatGPT [paper]

LLM Generated Content

1.Lift Yourself Up: Retrieval-augmented Text Generation with Self-Memory [paper]

2.DEMONSTRATE–SEARCH–PREDICT: Composing retrieval and language models for knowledge-intensive NLP [paper]

3.Recitation-augmented language models[paper]

4.Generate rather than Retrieve: Large Language Models are Strong Context Generators [paper]

5.Self-Knowledge Guided Retrieval Augmentation for Large Language Models [paper]

过程增强

Once Retrieval

1.Retrieval-augmented generation for knowledge-intensive nlp tasks [paper]

2.UPRISE: Universal Prompt Retrieval for Improving Zero-Shot Evaluation [paper]

3.Augmented Large Language Models with Parametric Knowledge Guiding [paper]

4.Learning to Retrieve In-Context Examples for Large Language Models.[paper]

5.Few-shot Learning with Re-trieval Augmented Language Models [paper]
6.Replug: Retrieval-augmented black-box language models [paper]

7.Recitation-augmented language models[paper]

Iterative Retrieval

1.DEMONSTRATE–SEARCH–PREDICT: Composing retrieval and language models for knowledge-intensive NLP [paper][code]

2.Retrieve-and-Sample: Document-level Event Argument Extraction via Hybrid Retrieval Augmentation [paper]

3.Enhancing Retrieval-Augmented Large Language Models with Iterative Retrieval-Generation Synergy[paper]

4.RETRIEVAL-GENERATION SYNERGY AUGMENTED LARGE LANGUAGE MODELS [paper]

Recursive Retrieval

1.Interleaving Retrieval with Chain-of-Thought Reasoning for Knowledge-Intensive Multi-Step Questions [paper][code]

2.Tree of Clarifications: Answering Ambiguous Questions with Retrieval-Augmented Large Language Models [paper]

Adaptive Retrieval

1.Active Retrieval Augmented Generation[paper][code]

2.Self-RAG: Learning to Retrieve, Generate, and Critique through Self-Reflection [paper]

3.In-context learning with retrieval augmented encoder-decoder language model [paper]

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

对于0基础小白入门:

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

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

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

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

👉AI大模型学习路线汇总👈

大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉大模型实战案例👈

光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉大模型视频和PDF合集👈

观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述
在这里插入图片描述

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

👉获取方式:

😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员二飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值