RAG是什么?一文搞懂 RAG 原理:从基础到前沿

在人工智能的广阔领域中,大语言模型(LLM)的诞生,无疑成为了技术发展历程中的重要里程碑,从根本上重塑了人类与技术交互的模式。虽然这些大语言模型展现出了令人惊叹的能力,在诸多方面表现卓越,但不可否认的是,它们仍然存在一些显著的局限性,尤其是在知识的准确性和时效性方面。检索增强生成(Retrieval-Augmented Generation,简称为RAG)作为一项崭露头角的新兴技术,有效地弥补了上述不足。通过有机结合外部知识库与大语言模型的优势,RAG能够为用户提供更为准确、可靠的答案。

本文将深入剖析RAG技术的工作原理、架构设计、实际应用场景、面临的挑战及其相应的解决方案,同时还会对其最新的发展趋势进行探讨,旨在帮助读者全方位、深层次地了解这一处于技术前沿的创新成果。

一、RAG的基本概念

1、什么是RAG?

retrieval_diagram

RAG作为一种深度学习模型架构,将检索与生成两大功能融为一体。其运行机制是先从外部知识库中检索出与用户问题相关的信息,再将这些信息输入到大语言模型中,以此辅助大语言模型输出更精准的回答。

RAG的关键在于“检索+生成”的协同模式:

  • 检索:在外部知识库中筛选出与用户提问匹配的文档或数据;
  • 生成:借助大语言模型,结合检索到的内容,生成最终的答案。

这种独特架构有效弥补了大语言模型在知识准确性与时效性方面的不足,尤其适用于对知识储备要求较高的各类任务 。

2、RAG的工作原理

RAG系统的工作流程一般涵盖三个主要阶段:

  1. 数据准备:从知识库中提取数据,进行处理后,以合适的格式存储,通常会存储在向量数据库中。在这个阶段,像PDF、HTML、Word、Markdown等非结构化数据,会先转换为纯文本形式,接着被分割成较小的片段(chunk)。随后,这些片段会被编码成向量,再存储到向量数据库里,为后续的检索操作做好准备。
  2. 检索:依据用户提出的查询,从知识库中筛选出最为相关的文档或信息片段。
  3. 生成:把检索到的信息与用户的查询相结合,构建成提示(prompt),然后由大语言模型生成最终的答案。

3、RAG与微调的区别

RAG与微调(fine-tuning)是两种不同的方法,用于解决大语言模型知识不足的问题:

特性RAG微调
主要作用提供类似教科书的信息检索功能,适用于解答具体问题或执行特定信息检索任务通过广泛学习吸收知识,适用于模型需要模仿特定结构、风格或格式时
局限性不适合教授模型理解广泛领域或学习新的语言、格式或风格不适合向模型中添加新知识,或应对需要快速迭代新场景的情况
优势提高答案准确性,减少虚假信息 识别最新信息,保持回答的及时性和准确性 高度透明,增强用户对输出结果的信任 可定制化,支持不同领域的专业知识 在安全性和隐私管理方面有较好的控制 处理大规模数据集具有更好的扩展性和经济效率 提供更值得信赖的结果强化模型已有知识 调整或定制模型输出 适用于复杂指令的训练,提升交互效率
RAG和微调可以相互补充,结合使用可在不同层次上增强模型的能力。

二、RAG的技术架构

1、核心组件

一个完整的 RAG 系统一般由以下核心组件构成:

  1. 检索模块(Retriever):其职责是从外部知识库中找出与用户查询相关的文档或信息。该模块通常借助向量数据库和各类检索技术,以实现高效的查询与信息召回。
  2. 生成模块(Generator):负责依据检索到的信息,结合大语言模型生成最终答案。在这个过程中,生成模块往往需要解决检索结果与模型输入适配的问题,保障模型能够充分利用外部知识。
  3. 知识库:作为存储外部知识的数据库,其形式可以是结构化的(例如关系数据库),也可以是非结构化的(比如向量数据库)。知识库的内容直接决定了 RAG 系统的知识覆盖范围与回答准确性。

2、检索方法

在 RAG 系统中,检索是至关重要的环节,不同的检索方式会对系统性能和效果产生影响。常见的检索方法如下:

  1. 向量检索 :通过嵌入模型将文本转化为向量形式,再通过计算向量间的相似度来判断相关性。常见的向量检索模型有:
  • ChatGPT-Embedding:由 OpenAI 提供,以接口形式调用。
  • ERNIE-Embedding V1:依托百度文心大模型能力。
  • M3E:功能强大的开源嵌入模型,具备多个版本,支持微调与本地部署。
  • BGE:由北京智源人工智能研究院发布,可支持中文和英文的开源嵌入模型 。
  1. BM25:这是一种基于词频 - 逆文档频率的检索方法,适用于精确匹配查询。在 2024 年,BM25 重新受到关注,并与向量检索相结合,形成了混合搜索架构 。

  2. 混合检索:将向量检索与 BM25 等传统检索方法相结合,以此提升信息召回率和检索准确性,被视为 RAG 系统中十分有效的架构设计准则之一 。

3、向量数据库

向量数据库是 RAG 系统中用于存储和检索向量数据的关键部分。常见的向量数据库包括:

  • FAISS:由 Facebook AI Research 开发的向量索引库,适用于大规模向量数据的检索。
  • Chromadb:专注于开发人员使用体验和性能的开源向量数据库。
  • ES(Elasticsearch):支持全文检索和向量检索的搜索引擎。
  • Milvus:具备分布式、可扩展特性,能够高效检索大规模数据集的向量数据库。向量数据库的选择通常要综合考虑业务需求、硬件条件和性能要求等因素

4、生成策略

生成策略决定了大语言模型如何利用检索信息生成最终答案,常见的生成策略有:

  • 标准 RAG:将检索结果直接与用户查询组合,作为模型输入。
  • 融合型 RAG:同时利用多个检索源提供信息,生成更全面的答案。
  • 推测型 RAG:通过并行生成多个草稿,并借助验证模型,提高生成效率与质量。
  • 自增强型 RAG:将之前生成的内容作为下一轮检索的基础,不断增强生成内容的上下文一致性和准确性。
  • 图谱 RAG:通过动态构建知识图谱,关联相关实体,提升检索效率与准确性。这些生成策略各有利弊,需要根据具体应用场景来选择合适的策略 。接下来探讨 RAG 的应用场景。

三、 RAG的应用场景

1、智能客服系统

智能客服系统是RAG技术最常见的应用场景之一。通过将客户查询与知识库中的相关信息匹配,RAG系统可以提供准确、一致的客户服务。例如,一家初创公司使用LangChain框架搭建基于RAG的聊天机器人,该机器人可以在回答用户问题时搜索相关文档,并生成答案。这种方法显著提高了客户满意度,同时减轻了客服团队的工作负担[9]。

2、知识管理平台

知识管理平台利用RAG技术帮助用户高效地组织、检索和利用大量非结构化数据。通过将文档、报告、邮件等数据转换为可检索的格式,RAG系统可以为用户提供快速访问知识的途径,提高工作效率。在企业环境中,知识管理平台通常与协作工具集成,形成一个完整的知识生态系统[9]。

3、金融和医疗领域的问答应用

在金融和医疗等知识密集型领域,RAG技术可以显著提高问答系统的准确性和可靠性。例如,基于LangStudio搭建的DeepSeek+RAG系统在金融和医疗领域的问答应用中表现出色,能够处理复杂的查询并提供基于最新知识的回答。通过对比使用与不使用RAG技术来解决特定任务的效果,可以明显看出RAG的优势。

4、企业级RAG系统

企业级RAG系统是一种结合了检索增强生成技术的智能问答系统。这类系统通常需要处理大量的企业内部数据,包括文档、报告、邮件等,为员工提供高效的知识获取途径。例如,达观数据的大模型系统利用先进的RAG技术,为工程师们打造了一个智能、高效的技术问题解决平台,成为工程师们日常工作中的得力助手[20]。

四、RAG的挑战与解决方案

1、 主要挑战

尽管RAG技术在许多应用场景中表现出色,但它仍然面临一些挑战:

1. 检索质量

  • 低精度问题:检索结果中的文档片段可能与查询内容不完全相关,可能导致信息错误或不连贯。
  • 低召回率问题:未能检索到所有相关文档片段,影响大语言模型获取足够的背景信息来合成答案。
  • 过时信息问题:数据的冗余或过时可能导致检索结果的不准确性。

2. 回应生成质量

  • 错误信息:模型可能在缺乏足够上下文的情况下虚构答案。
  • 回答不相关性:模型生成的答案可能未能准确针对查询问题。
  • 有害或偏见性回应:生成的回应可能包含有害或偏见性内容。

3. 数据入口质量:针对多模态非结构化文档无法提供有效问答,意味着以LLMOps为代表的工件只能服务纯文本类场景,而像PDF、PPT、图文结合的格式数据就无法解锁其实际商业价值。

  1. 低召回和命中率:采用纯向量数据库带来的低召回和命中率,从而无法针对实际场景提供有效问答,这主要是因为向量表征不仅缺乏对精确信息的表达,对语义召回也有损耗。
  2. 语义鸿沟:RAG的本质是搜索,它能工作的前提在于根据用户的提问,可以"搜"到答案所在。但是在很多情况下,这个前提不存在,例如一些意图不明的笼统提问,以及一些需要在多个子问题基础之上综合才能得到答案的所谓"多跳"问答,这些问题的答案,都无法通过搜索提问来获得答案,因此提问和答案之间存在着明显的语义鸿沟。

2、解决方案

针对上述挑战,研究人员和工程师们提出了多种解决方案:

1. 检索增强

  • 混合检索:结合向量检索和BM25等传统检索方法,以提高召回率和准确性。这种方法在2024年重新崛起,被认为是RAG系统中非常有效的架构设计准则之一。
  • 多模态文档解析:利用模型来解析文档布局,避免简易的Text Chunking工具对不同布局内部数据的干扰。这种方法在2024年逐渐深入人心,开源社区利用模型来解析各种文档的工具越来越多。

2. 生成优化

  • 重排序模型:利用重排序模型来提高检索结果的质量。这些模型通常采用Cross Encoder架构,可以捕获查询和文档之间Token两两之间的关系,从而提高排序质量。
  • 基于张量的重排序:在索引阶段,保存Encoder为每个Token生成的Embedding,然后在查询时计算所有查询和Text Chunk之间所有Token两两之间的相似度,从而得到最终文档得分。这种方法的成本相比Cross Encoder或基于LLM的重排序要低得多。

3. 语义鸿沟解决方案

  • GraphRAG:利用大模型自动抽取文档内的命名实体,然后利用这些实体自动构建知识图谱。在召回时,知识图谱的实体、边以及社区摘要连同原始文档一起做混合召回,从而解决语义鸿沟问题。
  • RAPTOR:首先把文本内容预聚类,接着利用LLM对聚类后的文本生成摘要,这些摘要数据连同原始文本一起被送到搜索系统。由于这些摘要数据提供了对文本更加宏观的理解,因此对一些意图不明的提问,还有需要跨Chunk的多跳提问,都可以产生合适的回答。

4. 多模态RAG

  • VLM(视觉语言模型):利用视觉语言模型来处理多模态文档,例如PDF、PPT等。这种方法可以解锁企业内部的大量数据,提高RAG系统的实用性和价值[19]。
  • ColPali:将一张图片看作1024个Image Patch,分别生成Embedding,因此一张图片就是用一个张量来表示。这种方法在多模态RAG中取得了良好的效果。

5. Agentic与Memory

  • Self RAG:通过利用先前生成的内容作为下一轮检索的基础,不断提升生成的上下文一致性与准确性。
  • Adaptive RAG:动态决定何时检索外部知识,平衡内部和外部知识的使用。它利用语言模型内部状态的置信度评分来判断是否需要进行检索,并通过"诚实探针"防止幻觉现象,使输出与实际知识保持一致。

6. 延迟交互模型

  • Col-xxx:利用延迟交互模型在数据库层面提供了类似重排序模型这样的能力,从而提高检索结果的质量。

五、RAG的最新发展趋势

1、技术趋势

  1. 多模态文档解析工具的崛起:随着RAG技术的发展,越来越多的多模态文档解析工具被开发出来,以处理PDF、PPT、图文结合等格式的数据,提高RAG系统的实用性和价值。
  2. BM25和混合搜索的崛起:BM25作为一种传统的检索方法,在RAG系统中重新崛起,并与向量检索结合形成了混合搜索架构。这种架构被认为是RAG系统中非常有效的架构设计准则之一。
  3. GraphRAG的崛起:微软在年中开源的GraphRAG是一个现象级事件,作为一个库而非端到端产品,能在短时间内获得大量关注,说明它确实解决了RAG的一些核心问题,特别是语义鸿沟问题。
  4. 延迟交互模型的崛起:以Col-xxx为代表的延迟交互模型在2024年崛起,这些模型在数据库层面提供了类似重排序模型这样的能力,从而提高检索结果的质量。
  5. 基于VLM和延迟交互模型实现多模态RAG:这种方法可以处理多模态文档,例如PDF、PPT、图文结合等格式的数据,提高RAG系统的实用性和价值。在2024年,这种方法取得了显著的进展,张量不仅仅对于文本排序有着重要意义,对于多模态RAG也有广泛的使用场景。

2、产业趋势

  1. RAG技术的普及:根据Menlo Partners在2024年11月20日发布的市场调研报告,RAG目前占据主导地位,采用率为51%,较去年的31%大幅上升。与此同时,微调和RLHF的采用率仍然较低,分别只有9%和5%。
  2. RAG技术的成熟度提升:2024年初,以LLMOps为代表的RAG架构已经非常成熟,这使得企业或者个人用户可以在非常短的时间内搭建出一套RAG系统。
  3. RAG技术的开源:在2024年4月1日,RAGFlow开源,截止到年底已经超过了2.5万github星标。它最开始的2个设计亮点,已经成为普适性的RAG架构设计准则:针对朴素RAG系统只提供基于文本的Text Chunking工具,RAGFlow引入了针对非结构化数据进行Semantic Chunking的步骤,从而保证数据的入口质量;从一开始就坚决采用企业级搜索引擎提供混合搜索,来作为唯一的后端数据库。

3、未来展望

  1. 多模态RAG的蓬勃兴起:2025年,多模态RAG将迎来爆发式增长。这主要得益于2024年一系列关键技术的诞生与落地应用,尤其是视觉语言模型(VLM)的大量涌现,使RAG能够有效处理更为复杂的多模态文档,极大提升了系统的实际应用价值。
  2. RAG与Agent的深度融合:2024年,“Agentic”成为RAG产业的高频热词。Agent对大语言模型(LLM)生态影响深远,而RAG作为Agent的核心操作单元,赋予Agent访问内部数据的能力;将Agent直接应用于RAG,催生出Self RAG、Adaptive RAG等高级形态的Agentic RAG,让RAG在复杂场景中能够以更可控的方式实现多样化的自适应调整。
  3. RAG技术的持续迭代:RAG技术将不断发展革新,以应对现有挑战并满足新的需求。未来,研究重点将聚焦于多模态非结构化文档的数据清洗、混合搜索的优化、排序模型的完善,以及进一步缩小语义差距等方向。
  4. RAG技术的商业拓展:随着RAG技术日臻成熟并广泛普及,越来越多企业将借助这一技术提升服务品质与运营效率。特别是在客户服务、知识管理、问答系统等领域,RAG技术将发挥不可或缺的重要作用。

六、结论

检索增强生成(RAG)技术,作为融合检索与生成能力的深度学习模型架构,成功突破了大语言模型在知识准确性和时效性上的瓶颈。该技术借助从外部知识库中精准检索相关信息,并将其输入大语言模型,从而产出更为精确、可信的回答。

本文对RAG展开了系统性阐述,涵盖基础概念、技术架构、应用场景、现存挑战及其应对策略,同时还探讨了最新的发展趋势。在智能客服、知识管理、金融及医疗等领域的问答场景中,RAG技术均展现出卓越性能。不过,它也面临着检索质量欠佳、生成内容质量不稳定、数据入口质量参差不齐、信息召回率与命中率较低,以及语义理解存在偏差等诸多难题。为攻克这些难关,研究人员和工程师积极探索,提出了混合检索、生成优化、语义对齐、多模态RAG、智能体与记忆融合、延迟交互模型等一系列创新解决方案。

伴随技术持续迭代,RAG也将不断进化以应对新需求与新挑战。未来,多模态RAG的蓬勃发展、RAG与智能体的深度融合、技术的持续革新以及商业化进程的推进,都将成为该领域的关键发展方向 。

如何学习大模型 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

### RAG模型概述 RAG(Retrieval-Augmented Generation)是一种融合了检索增强机制的生成型语言模型,由Facebook AI研究院(FAIR)提出。这种架构通过结合传统的基于检索的方法和现代的语言生成技术来提升自然语言处理任务的效果[^3]。 ### 工作原理详解 #### 数据获取阶段 在数据准备过程中,RAG利用外部知识库作为补充资源。当接收到输入查询时,系统首先会在预先构建的知识图谱或其他形式的大规模语料库中执行信息检索操作,找到最有可能帮助完成当前对话或任务的相关片段。 #### 动态上下文集成 不同于静态预训练模式下的纯生成方式,在线检索到的具体实例会被即时融入到解码器端口处,使得每次预测都能依据最新获得的真实世界证据来进行调整优化。这一特性赋予了RAG更强的情境适应能力,尤其是在面对开放领域问答、多轮次交互式聊天等复杂场景下表现尤为突出。 #### 双重评分机制 为了确保最终输出的质量,RAG采用了两步走策略:先是从候选集中挑选出若干高质量的回答选项;再经过一轮精细评估后决定最佳回复方案。具体来说就是分别计算每条建议得分——一方面考量它与原始请求之间的匹配度;另一方面也要顾及内部连贯性和逻辑一致性等因素。 ```python def rag_model_inference(query, knowledge_base): retrieved_docs = retrieve_relevant_documents(query, knowledge_base) generated_responses = [] for doc in retrieved_docs: response = generate_response_based_on_document(doc) generated_responses.append(response) best_response = select_best_response(generated_responses) return best_response ``` ### 应用案例分析 实际应用方面,《大模型RAG实战:RAG原理、应用与系统构建》一书中提供了丰富的实践指导和技术细节解析,涵盖了从理论基础到工程实现再到部署上线全流程的内容介绍。对于希望深入了解并掌握这项前沿技术的研究人员而言,这本书籍无疑是一个宝贵的学习资料来源[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值