RAG是什么?一文讲清楚检索增强生成(RAG)!

一、什么是检索增强生成

检索增强生成(Retrieval-Augmented Generation,RAG)是指对大型语言模型输出进行优化,使其能够在生成响应之前引用训练数据来源之外的权威知识库。大型语言模型(LLM)用海量数据进行训练,使用数十亿个参数为回答问题、翻译语言和完成句子等任务生成原始输出。在LLM本就强大的功能基础上,RAG将其扩展为能访问特定领域或组织的内部知识库,所有这些都无需重新训练模型。这是一种经济高效地改进LLM输出的方法,让它在各种情境下都能保持相关性、准确性和实用性。

LLM是一项关键的人工智能(AI)技术,为智能聊天机器人和其他自然语言处理(NLP)应用程序提供支持。目标是通过交叉引用权威知识来源,创建能够在各种环境中回答用户问题的机器人。但是,LLM技术的本质在LLM响应中引入了不可预测性。此外,LLM训练数据是静态的,并引入了其所掌握知识的截止日期。

二、重要意义

RAG技术为专用或私有大模型建立带来了诸多益处:

1.降低成本、增强安全性

聊天机器人开发通常从基础模型开始。基础模型(FM)是在广泛的广义和未标记数据上训练的API可访问LLM,不包含私有数据,因此对于一些私有领域知识是欠缺的。针对组织或领域特定信息重新训练LLM的成本很高。此外,有研究和实践表明,通过一些特定的攻击手法,可以让LLM泄漏训练数据,如果训练数据中包含一些私有信息,就很可能会发生隐私信息泄露。如果把私有数据作为一个外部数据库,让LLM在回答基于私有数据的问题时,直接从外部数据库中检索出相关信息,再结合检索出的相关信息进行回答。这样就不用通过预训练或者微调的方法让LLM在参数中记住私有知识,既节省了训练或者微调成本,也一定程度上避免了私有数据的泄露风险。因此,RAG是一种将新数据引入LLM的更加经济高效的方法。它使生成式人工智能技术更广泛地获得和使用。

2.保证数据实时性

即使LLM的原始训练数据来源适合您的需求,但保持相关性也具有挑战性。RAG允许开发人员为生成模型提供最新的研究、统计数据或新闻。他们可以使用RAG将LLM直接连接到实时社交媒体提要、新闻网站或其他经常更新的信息来源。然后,LLM可以向用户提供最新信息。

3.增强用户信任度

RAG允许LLM通过来源归属来呈现准确的信息。输出可以包括对来源的引文或引用。如果需要进一步说明或更详细的信息,用户也可以自己查找源文档。这可以增加对您的生成式人工智能解决方案的信任和信心。

4.更多开发人员控制权

借助RAG,开发人员可以更高效地测试和改进他们的聊天应用程序。他们可以控制和更改LLM的信息来源,以适应不断变化的需求或跨职能使用。开发人员还可以将敏感信息的检索限制在不同的授权级别内,并确保LLM生成适当的响应。此外,如果LLM针对特定问题引用了错误的信息来源,他们还可以进行故障排除并进行修复。

三、大体工作过程

如果没有RAG,LLM会接受用户输入,并根据它所接受训练的信息或它已经知道的信息创建响应。RAG引入了一个信息检索组件,该组件利用用户输入首先从新数据源提取信息。用户查询和相关信息都提供给LLM。LLM使用新知识及其训练数据来创建更好的响应。以下各部分概述了该过程。

1.创建外部数据

LLM原始训练数据集之外的新数据称为外部数据。它可以来自多个数据来源,例如API、数据库或文档存储库。数据可能以各种格式存在,例如文件、数据库记录或长篇文本。另一种称为嵌入语言模型的AI技术将数据转换为数字表示形式并将其存储在向量数据库中。这个过程会创建一个生成式人工智能模型可以理解的知识库。

2.检索相关信息

下一步是执行相关性搜索。用户查询将转换为向量表示形式,并与向量数据库匹配。例如,考虑一个可以回答组织的人力资源问题的智能聊天机器人。如果员工搜索:“我有多少年假?”,系统将检索年假政策文件以及员工个人过去的休假记录。这些特定文件将被退回,因为它们与员工输入的内容高度相关。相关性是使用数学向量计算和表示法计算和建立的。

3.增强LLM提示

接下来,RAG模型通过在上下文中添加检索到的相关数据来增强用户输入(或提示)。此步骤使用提示工程技术与LLM进行有效沟通。增强提示允许大型语言模型为用户查询生成准确的答案。

4.更新外部数据

下一个问题可能是——如果外部数据过时了怎么办?要维护当前信息以供检索,请异步更新文档并更新文档的嵌入表示形式。您可以通过自动化实时流程或定期批处理来执行此操作。这是数据分析中常见的挑战——可以使用不同的数据科学方法进行变更管理。

四、具体工作原理

下图显示了将RAG与LLM配合使用的概念流程图,主要分为2个阶段:数据准备阶段(紫色动线)、应用阶段(绿色动线)。下面我们详细介绍一下各阶段的:

img

1、数据准备阶段工作流程(紫色动线):

私有数据经过数据提取和文本分割,再经过嵌入向量化(Embeding),生成语义向量(Semantic Vector),并把数据存入向量数据库(Vector Database),这个向量数据库也就是所谓的本地知识库

2、应用阶段工作流程(绿色动线):

用户准备提示词和问题,生成查询向量(Query Vector),进入本地向量数据库进行数据检索(召回),返回的信息注入Prompt,再把Prompt输入大模型生成最终响应。

特别解释一下【注入Prompt】

Prompt作为大模型的直接输入,是影响模型输出准确率的关键因素之一。在RAG场景中,Prompt一般包括任务描述、背景知识(检索得到)、任务指令(一般是用户提问)等,根据任务场景和大模型性能,也可以在Prompt中适当加入其他指令优化大模型的输出。一个简单知识问答场景的Prompt如下所示:


【任务描述】
假如你是一个专业的客服机器人,请参考【背景知识】,回
【背景知识】
{content} // 数据检索得到的相关文本
【问题】
石头扫地机器人P10的续航时间是多久?

Prompt的设计只有方法、没有语法,比较依赖于个人经验,在实际应用过程中,往往需要根据大模型的实际输出进行针对性的Prompt调优。

名词解释:

数据检索:常见的数据检索方法包括:相似性检索、全文检索等,根据检索效果,一般可以选择多种检索方式融合,提升召回率。

嵌入向量化(Embeding):Embedding(嵌入)是自然语言处理(NLP)和机器学习领域中的一个核心概念,指的是将高维的离散数据(如单词、句子或文档)转换成低维的连续数值向量的过程。这种转换使得原本计算机难以直接处理的文本数据能够以数值形式被机器学习模型所理解和处理。

语义向量(Semantic Vector):Semantic Vector(语义向量)是一种将自然语言文本转换成数值向量的技术,它试图捕捉文本中的语义信息。在大模型领域,Semantic Vector通常指的是通过大型预训练语言模型(如BERT、GPT等)生成的向量,这些向量能够表示词汇、句子或段落的语义内容。这些向量可以用于各种下游任务,如文本相似性比较、语义搜索、机器翻译等。

查询向量(Query Vector):Query Vector(查询向量)是自然语言处理(NLP)和信息检索领域中的一个概念,它指的是将用户的查询(即问题或搜索请求)转换成数值向量的形式。这种转换使得计算机能够通过向量空间模型来处理和理解用户的查询意图,并利用这些向量来执行搜索、匹配或推荐等任务。

五、几种调用模式

img模式一:非结构化数据通过Embedding Model把非结构化数据进行embedding存到向量数据库中,然后形成Construct Prompts给到LLM。LLM返回结果给到用户。

模式二:用户提出问题,下一步把问题通过Embedding Model向量化,然后保存到长时记忆数据库(向量数据库)中,然后调用LLM完成问题的回答,接下来将大模型的回答存到长时记忆数据库中,最后返回给用户。

模式三: 用户问问题,下一步把问题通过Embedding Model向量化,然后从Cache中(向量数据库)查询类似的问题和答案,返回给用户。如果没有命中,则去和LLM交互。然后把LLM的回答存到Cache中,最后把回答返回给用户。

这三种形式就是典型的RAG的调用模式。它可以解决不同类型的数据如何让大模型知道的问题,同时在性能和效率上得到了提高,解决了长时记忆的问题,幻觉问题也有很大改善。

六、检索增强生成 vs. 微调

与对基座大语言模型预训练或有监督微调(Supervised Fine-Tuning,SFT)等传统方法相比,RAG提供了一种经济高效的替代方法。RAG从根本上增强了大语言模型在响应特定提示时直接访问特定数据的能力。为了说明 RAG与其他方法的区别,请看下图。雷达图具体比较了三种不同的方法:预训练大语言模型、预训练+微调LLM、预训练+RAG LLM。

img

七、如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

https://img-blog.csdnimg.cn/img_convert/05840567e2912bcdcdda7b15cba33d93.jpeg

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

https://img-blog.csdnimg.cn/img_convert/05840567e2912bcdcdda7b15cba33d93.jpeg

<think>首先,用户的问题是:“我想了解RAG的基本概念请问RAG技术定义和工作原理”。这是一个关于RAG(Retrieval-Augmented Generation)技术的查询。 从系统级指令中,我需要: -所有行内数学表达式使用 $...$格式。 -独立公式使用$$...$$格式并单独成段。- LaTeX语法正确。-使用中文回答。-生成相关问题。 -回答中引用的段落末尾自然地添加引用标识,例如 [^1]。-回答结构清晰,帮助用户逐步解决问题,尽量保证回答真实可靠。 -参考站内引用:有多个引用关于RAG技术。用户提供的引用包括: -[^1]: RAG模型的核心思想是通过检索生成的有机结合,弥补生成模型在处理知识密集型任务时的不足。 -[^2]:深度解析RAG技术在大模型时代的原理与实践,包括增强RAG性能的方法。- [^3]: RAG技术原理,包括Naive RAG、Advanced RAG和ModularRAG的分类。- [^4]:后处理阶段的方法,如重新排序和重要性加权。 -[^5]:AgenticChunking分块技术的工作原理。用户的问题焦点在RAG的基本概念、定义和工作原理。所以,我需要基于这些引用构建一个清晰的回答。结构回答: 1. **定义RAG**:简要解释RAG是什么。 2. **工作原理**:逐步描述RAG如何工作。3.**参考引用**:自然地融入引用。4.**生成相关问题**:在末尾添加相关问题。关键点从引用中提取: -定义:从[^1],RAG检索增强生成,结合检索生成模块。 -工作原理:从[^3],RAG包括索引、检索生成三个阶段。-NaiveRAG:基本形式。- AdvancedRAG:优化版本。-Modular RAG:更灵活。 -其他细节:如 [^4]提到后处理,[^5]提到分块技术。确保使用中文回答。 生成相关问题:在回答后添加“§§相关问题§§”部分,列出几个相关问题。回答结构: -开头:直接回答定义。 -主体:分步解释工作原理。-结尾:总结并添加相关问题。数学表达式:用户的问题不涉及数学,但如果需要,确保使用正确格式。例如,如果有公式,用LaTeX表示。在引用时,自然地添加标识,如“... [^1]”。完整回答: 1.定义:RAG(Retrieval-AugmentedGeneration)是一种结合检索生成的技术,用于增强大型语言模型在知识密集型任务中的表现。 2.工作原理:-索引阶段:将文档库分割成短的chunk,并构建向量索引。-检索阶段:根据问题和chunks的相似度检索相关文档片段。-生成阶段:以检索到的上下文为条件,生成问题的回答。参考 [^3]的分类:NaiveRAG、AdvancedRAG、Modular RAG。3.优化:如[^2]提到的增强方法,包括输入、检索器、生成器等方面的优化。4.后处理:如 [^4]提到的重新排序和重要性加权。5.分块技术:如[^5]提到的AgenticChunking。相关问题: -RAG有哪些类型? -如何优化RAG的性能?- RAG在哪些场景中应用?</think>### RAG 技术的基本概念、定义与工作原理 RAG(Retrieval-Augmented Generation,检索增强生成)是一种先进的自然语言处理技术,旨在通过结合信息检索和文本生成模块,提升大型语言模型(如 GPT-3 或 BERT)在知识密集型任务中的表现。传统的生成模型在处理复杂问题时,常因缺乏足够的外部知识而产生错误或无关的回答(即“幻觉”问题),而 RAG 通过动态检索相关背景信息,使生成过程更具准确性和可信度[^1]。下面我将逐步解释其定义和工作原理,确保内容清晰可靠。 #### 1. **RAG 技术定义** RAG 的核心思想是将检索(Retrieval)和生成(Generation)两个模块有机结合。具体来说: - **检索模块**:从大型文档库(如知识库或数据库)中实时检索与用户查询最相关的信息片段。 - **生成模块**:以检索到的信息为上下文,生成自然、连贯且准确的回答。 这种设计弥补了纯生成模型的不足,特别适用于问答系统、事实核查或知识密集型应用场景[^1][^3]。RAG 的目标是确保生成的答案不仅流畅,而且基于可靠的外部证据,减少幻觉风险。 #### 2. **RAG 工作原理** RAG 的工作流程通常分为三个阶段:索引、检索生成。这些阶段可以基于不同实现方式(如 Naive RAG、Advanced RAG 或 Modular RAG)进行优化[^3]。以下是详细步骤: - **索引阶段(Indexing)**: - 在这一步,文档库被预处理:文档被分割成短的文本块(chunk),例如句子或段落。这些块通过嵌入模型(如 BERT)转换为向量表示,并存储在向量索引中(如使用 FAISS 或 Elasticsearch)。 - 关键点:分块技术(如 Agentic Chunking)确保语义连贯性。例如,传统方法可能因插入无关内容导致语义断裂,而优化后的分块能保持上下文完整性(如处理“Transformer 架构”的例子)[^5]。 - 优化:在 Advanced RAG 中,会添加元数据或进行数据清洗,提升索引效率和检索准确性[^3]。 - **检索阶段(Retrieval)**: - 当用户输入查询(如问题或指令)时,检索模块计算查询向量与索引中文本块向量的相似度(常用余弦相似度或点积),并返回 top-k 相关文档片段。 - 相似度计算可表示为:$ \text{similarity}(q, c) = \frac{q \cdot c}{\|q\| \|c\|} $,其中 $q$ 是查询向量,$c$ 是文本块向量。 - 优化:检索前可能进行查询重写或路由,对齐用户意图与文档语义;检索后通过重排序(如学习排序模型)或重要性加权(过滤低相关上下文)提升相关性[^4][^3]。例如,在信息检索任务中,重排序确保最相关文档优先[^4]。 - **生成阶段(Generation)**: - 生成模块(如 GPT 系列模型)以检索到的上下文为条件,生成最终回答。模型输入格式通常为:`[检索到的上下文] + [用户查询]`。 - 关键点:生成过程需确保答案与用户意图一致(如处理闲聊或提问),并避免幻觉问题。Naive RAG 直接生成回答,而 Advanced RAG 可能引入微调或强化学习进一步优化输出[^3]。 - 输出示例:如果用户问“Transformer 架构的核心是什么?”,检索模块提供相关文档片段,生成模块输出“Transformer 的核心是自注意力机制”[^5]。 整个流程如下图所示(简化表示): ``` 用户查询 → 检索模块(从索引获取相关上下文) → 生成模块(生成最终回答) ``` #### 3. **RAG 的分类与优化** 根据实现复杂度,RAG 可分为三类: - **Naive RAG**:基本形式,仅包含索引、检索生成三步骤,适用于简单场景[^3]。 - **Advanced RAG**:在检索前后添加优化,如数据清洗、查询扩充或上下文压缩,提升准确性和效率[^3][^2]。 - **Modular RAG**:模块化设计,融合搜索引擎、多回答融合等功能,适应灵活需求(如多轮对话)[^3]。 RAG 的优势在于其可扩展性:通过检索外部知识,它降低了模型训练对海量参数的依赖,同时提升了在开放域任务中的表现[^1][^2]。然而,挑战包括检索质量对生成结果的影响,以及如何处理用户意图的灵活性[^3]。 #### 总结 RAG 技术通过检索增强生成,解决了传统语言模型在知识密集型任务中的局限性,其核心是索引、检索生成的协同工作。随着优化方法(如分块技术或重排序)的引入,RAG 在问答系统、内容生成等场景中展现出强大潜力[^1][^2][^3]。如果您有具体应用场景或进一步疑问,欢迎继续探讨!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值