RAG(检索增强生成)科普介绍 RAG(检索增强生成) :作为大模型的动态知识引擎,它能突破模型静态知识的边界,有效解决知识时效性不足、输出可信度有限等问题。
Agent(智能代理) :作为大模型的智能执行中枢,它赋予模型自主规划任务、做出决策及调用各类工具的能力,让模型具备更主动的行动能力。
今天带来的是系列分享的第六篇:RAG的科普介绍。
1. RAG是什么? 检索增强生成(RAG)是一种结合了信息检索(Retrieval)和生成模型(Generation)的技术,旨在提高生成模型的性能和准确性。它创造性地将信息检索能力与生成模型的创造力结合起来,构建出 “先检索、再生成” 的闭环逻辑。
具体而言,当模型接收到用户的提问或任务指令时,RAG 会先主动从海量外部知识源(包括但不限于文档库、数据库、实时网络信息等)中精准定位并提取与问题高度相关的证据性内容 —— 这些内容相当于为生成过程提供了 “实时参考资料”;随后,生成模型会基于这些检索到的事实依据,结合用户输入的具体需求,生成既符合语境又锚定真实信息的回答。
这种机制从根本上解决了传统生成模型依赖静态训练数据导致的 “知识过时”“虚构信息” 等问题,让 AI 的输出既保留生成式模型的流畅性,又具备可追溯、可验证的可信度。
2.为什么需要RAG? 解决生成模型在处理需要特定知识或最新信息的任务时的不足。RAG 技术通过引入信息检索过程,从外部知识库中获取相关信息,然后将这些信息与生成模型相结合,从而提高生成文本的准确性和相关性。这种方法不仅能够减少生成模型产生幻觉的可能性,还能使模型在回答问题时提供更具时效性和针对性的答案。
3.RAG面临什么样的挑战 3.1. 检索环节:“找得准” 的难题 索模块作为RAG系统的基石,其性能直接影响整个系统的表现。当前RAG系统面临的首要挑战是 检索精度不足 与 效率瓶颈 。研究表明,在复杂查询场景下,传统向量检索的准确率往往不足60%,导致后续生成环节建立在错误或不足的知识基础上。检索质量问题主要表现在三个方面:
1. **文档质量与噪声干扰:**知识库中的文档可能包含冗余信息(如重复段落)、噪声(如错误数据、主观观点)或过时内容(如过期政策、被推翻的科研结论)。例如,医疗领域的知识库若混入旧版诊疗指南,检索后可能生成错误的治疗建议。此外,文档格式混乱(如非结构化的 PDF 扫描件、杂乱的表格)会导致信息提取困难,进一步降低检索相关性。 2. 语义鸿沟问题 :主流检索依赖向量嵌入(Embedding)技术,通过将文本转化为向量并计算相似度匹配查询。但该方法在处理 歧义、多义词、复杂语义 时存在天然缺陷。用户查询与知识库文档间的语义不匹配,特别是专业术语与日常表达间的差异。例如医疗场景中,患者描述症状("头晕")与医学术语("眩晕症")的不对应导致检索失败。 3. 多跳推理困难 :需要串联多个文档片段才能回答的复杂问题,现有检索系统难以有效关联分散的知识片段。金融风控分析显示,多跳查询的答案完整度仅为单跳查询的43%。 4. 长尾查询处理 :针对低频专业术语或新兴概念的查询,由于训练数据不足,检索模型表现显著下降。科技领域新术语的检索召回率比常见概念低35-50%。 效率方面,随着知识库规模扩大, 检索延迟 成为瓶颈。十亿级向量数据库的查询延迟可达数百毫秒,难以满足实时交互需求。某电商平台数据显示,检索延迟超过500ms会导致23%的用户放弃查询。
3.2. 知识更新:“跟得上” 的挑战 现实世界的知识处于动态变化中(如新法规发布、科技突破、市场数据更新),而 RAG 的知识库若无法及时同步这些变化,生成的回答会存在 “滞后性”,甚至误导用户。具体挑战包括:
• 增量更新的效率瓶颈 传统向量数据库在新增文档时,若重新对全量数据进行嵌入和索引,会消耗大量计算资源(尤其当知识库规模达百万级文档时)。尽管部分数据库支持 “增量索引”,但新增文档与历史文档的语义关联可能被忽略(如 “新政策对旧政策的补充条款”),导致检索时无法联动新旧信息。 • “知识冲突” 的处理难题 新知识可能与旧知识冲突(如 “某药物的副作用被新研究修正”),但 RAG 系统难以自动识别冲突并优先采用最新信息。例如,若知识库中同时存在 2022 年 “某疫苗有效性 90%” 和 2024 年 “有效性修正为 75%” 的文档,检索时可能因向量相似度接近而返回旧数据,导致生成错误结论。 3.3. 生成环节:“用得好” 的障碍 尽管RAG设计初衷是减少幻觉,但 生成不可靠 问题依然存在。行业测试表明,即使采用RAG架构,LLM仍有5-8%的概率生成与检索内容矛盾的回答。这种"有据幻觉"现象尤为危险,因为系统看似提供了引用支持,实则歪曲了原文含义。生成质量问题具体表现为:
1. 过度生成 :超出检索内容范围添加看似合理实则无依据的细节。 2. 信息遗漏 :未能充分利用检索到的全部相关信息,仅选择部分内容作答。 3. 语义扭曲 :对检索内容的理解偏差导致生成的答案与原文精神相悖。 4. 引用不当 :错误关联检索片段与生成内容,或引用不相关文档作为支持。 3.4. 场景适配:“用得通” 的限制 RAG 的性能高度依赖具体场景,通用方案在复杂场景中易 “水土不服”,主要体现在:
• 领域适配性差 不同领域的知识体系、术语逻辑差异显著。 • 多模态信息处理乏力 现实世界的知识载体不仅是文本,还包括表格、图片、公式、音频等(如科研论文中的实验图表、产品手册中的电路图)。当前 RAG 多聚焦于文本处理,对非文本信息的检索(如 “根据图表数据回答趋势”)和整合能力薄弱,导致信息遗漏。 4.RAG技术原理 RAG系统的工作流程通常分为两个主要阶段: 数据准备阶段 和 应用阶段 。
在数据准备阶段,系统会进行数据提取、文本分割、向量化(embedding)和数据入库;
在应用阶段,系统处理用户提问,完成数据检索(召回)、注入Prompt,最终由LLM生成答案。具体而言,RAG采用"检索-增强-生成"的三步流程
1. 检索模块 从预先建立的知识库中检索与问题相关的信息,为后续的生成过程提供有用的上下文信息和知识支撑。这一步骤类似于传统信息检索系统的工作方式,但RAG的检索过程更加高效和精准,得益于先进的文本嵌入和向量搜索技术。 2. 增强步骤 将检索到的信息用作生成模型的上下文输入。这些外部知识被融入生成过程中,使生成的文本内容更加丰富、准确和符合用户需求。通过这一步,LLM模型能够充分利用外部知识库中的信息,避免了知识截止的问题。 3. 生成模块 结合LLM生成符合用户需求的回答。生成器会利用检索到的信息作为上下文输入,并结合大语言模型来生成连贯、准确且信息丰富的文本内容 4.1 基本原理 RAG 的基本原理可以概括为以下几个步骤:
2. 大语言模型接收并解析用户查询后,自动触发信息检索流程。
3. 系统检索模块基于查询语义,从外部数据源(包括互联网资源、结构化知识库和各类数据库)动态获取相关信息。
4. 检索系统将获取的相关上下文信息与原始查询进行整合,形成增强型输入。
5. 大语言模型综合外部检索结果和内部知识库,生成准确、全面的最终响应。
在 RAG 中,外部数据源的信息通常会被转换为向量嵌入,即以大型向量空间形式存在的数字表示。这些向量嵌入存储在向量数据库中,以便进行文档检索。向量数据库允许基于语义相似性进行快速准确的检索,从而提高 RAG 的效率。
4.2 关键组件 一个完整的RAG系统通常包含三大核心组件: 检索器(Retriever) 、 生成器(Generator) 和 排序器(Ranker) 。
检索器负责从候选文档集合中检索出与查询相关的文档,它利用各种检索技术和算法,如基于关键词匹配、语义相似度等,来快速过滤出潜在相关的文档。生成器则根据检索到的候选文档生成与查询相关的摘要或答案,它通常采用生成式模型,如语言模型或生成对抗网络(GAN),以自然语言的形式生成文本。排序器则对生成的文本进行排序和评分,以确定最终输出的文档顺序。
在RAG技术的实现过程中, 文档的分块与向量化 是至关重要的一步。长篇文档被分割成多个文本块,以便更高效地处理和检索信息。这些文本块通过嵌入模型生成语义向量,并创建索引,以便在后续的检索过程中快速找到与查询相关的文档块。医疗领域的实践表明,通过专业分块策略处理的医学文献,检索准确率可提升40%以上。
RAG系统的 三级架构 可以重构传统生成模式,其核心流程分为动态知识库构建、混合检索和上下文增强生成三个关键阶段。动态知识库构建阶段运用滑动窗口分块和结构感知切割技术,将各类文档转化为高密度语义单元;混合检索引擎则融合BM25关键词检索与BERT向量检索,采用高斯混合模型(GMM)实现自适应召回;生成优化模块通过注意力机制重构技术,将检索结果与原始提示词进行多维度融合
4.3.技术优势 RAG技术与传统方法的对比优势
表:RAG技术三个发展阶段的比较
技术特点 朴素RAG 进阶RAG 模块化RAG/SAGE
4.4.不同类型的 RAG 模型 根据架构和整合外部知识的方式,RAG 模型可以分为以下几种类型:
• 基于查询的 RAG :LLM 根据输入生成查询,然后使用该查询从外部知识源检索相关信息。检索到的信息与 LLM 生成的输出相结合,生成最终响应。这种方法适用于处理事实性或基于知识的查询。 • 基于潜在表示的 RAG :利用输入和外部知识源的潜在表示来确定检索信息的相关性。LLM 生成输入的潜在表示,然后将其与知识源的潜在表示进行比较,以识别最相关的信息。这种方法可以捕捉更深层次的语义关系。 • 基于 Logit 的 RAG :使用 Logit(LLM 在最终 Softmax 激活之前的原始输出值)来确定检索信息的相关性。将 Logit 与外部知识源的表示进行比较,选择最相关的信息并将其整合到最终输出中。这种方法可以更直接地利用 LLM 的内部状态。 • 推测性 RAG :LLM 生成多个假设或潜在输出,然后从知识源中检索相关信息来支持或反驳每个假设。最终输出是根据最受支持的假设和检索到的信息生成的。这种方法可以提高 LLM 输出的多样性和准确性。 • 简单 RAG :这是 RAG 最基本的形式,它直接根据查询检索文档,并使用它们来生成答案。适用于基本的问答任务。 • 带记忆的简单 RAG :扩展了简单 RAG,通过维护先前交互的上下文来实现。适用于需要上下文连续性的对话式 AI。 • 分支 RAG :执行多个检索步骤,根据中间结果优化搜索。适用于需要多步骤推理或信息综合的复杂查询。 • HyDe(假设文档嵌入) :在检索之前生成假设的理想文档,以提高搜索的相关性。适用于知识库中可能没有完全匹配项的查询。 • 自适应 RAG :根据查询的类型或难度动态调整检索和生成策略。适用于处理不同类型的查询或多样化的知识库。 5.搭建应用中常见问题与优化策略 评估过程中也暴露了RAG系统常见的 性能瓶颈 和 质量问题 。在仅使用3篇PDF格式文档的测试中,即使文档结构比较清晰,系统仍遇到了几个典型问题:
1. 答案不完整 :如问题"产品安全审核有哪些模式,分别有什么区别?"答案为6种审核模式,大部分产品只列出3~4种。这个结果跟embedding模型相关,切换不同embedding模型,输出的结果也不同。embedding模型作为RAG应用的核心,对最终效果有直接影响。 2. 不依据文档回答问题,编造答案 :如提问"漏洞必须修复吗,不修复可以吗?",依据原文应回答类似"根据漏洞严重性和业务情况确定"的答案,而不使用Prompt时,RAG给出的答案虽然合理,却并未依据原文回答。通过添加特定Prompt(如'根据已知信息回答,如无法得到答案请说"根据已知信息无法回答该问题"')可显著改善这一问题。 3. 未拒答文档范围外问题 :对于本地知识问答系统,系统应拒答与文档无关的问题,这也可以通过Prompt优化实现。 4. 无法进行复杂逻辑推理 :RAG擅长回答原文中有直接答案的问题,但不擅长需要深层次推理的问题。例如,当原文要求使用TLSv1.2或更高版本,而用户询问"使用HTTP是否合规"时,系统未能正确识别违规情况。 针对这些挑战,行业提出了多种 优化策略 :
• 查询改写(Query Rewriting) :尝试改写、HyDE或子查询等方法提升检索准确性。查询转换技术包括修正语法错误、补充关键字等初级转换,以及利用大模型进行语义分解、抽象、补充等高级转换。 • 数据增强 :使用同义词、释义来增加语料库的多样性,提升系统对多样化查询的理解能力。 • 分块策略优化 :选择合适的分块技术、调整块大小和块重叠比例。结构感知分块依据文档结构(如标点符号、标题级别)划分,而语义感知分块利用深度学习模型提取语义信息。 • LLM选择与微调 :根据任务需求选择合适的基座模型,必要时进行领域适配微调。千帆大模型开发与服务平台等工具可辅助模型选择与优化。 • 混合检索策略 :结合BM25关键词检索与语义向量检索。 • 增量索引更新 :对于时效性要求高的场景,建立每小时自动更新的增量索引机制,保持知识新鲜度。 6.如何评估 评估RAG系统性能需要从多个维度进行全面考量,主要关注 检索质量 和 生成质量 两个方面
。检索质量的关键测评指标包括高引用召回率、高引用精度、流畅性、实用性等;而生成质量则主要取决于模型的智能水平以及生成器对检索到的信息的处理能力。RAGAs(Retrieval-Augmented Generation Assessment)评估框架提供了一种系统化的分析方法,用于评估RAG系统在检索和生成环节的性能。该框架评估检索系统识别相关上下文段落的能力,以及大语言模型在生成中如何有效利用这些段落,并特别关注生成内容的质量。
在实际应用中,研究者提出了更详细的评估指标体系,特别针对问答场景下的RAG应用。这些指标包括但不限于:
1. 上下文相关性(Context Relevance) :评估检索到的上下文的精准度,保证检索到的上下文直接与问题相关,并最小化与无关内容的处理成本。这一指标衡量系统是否能精准定位到与问题最相关的文本片段,避免引入无关信息干扰生成过程。 2. 答案忠实度(Answer Faithfulness) :评估生成的答案与检索到的是否遵循原文,不胡乱编造。这一指标针对RAG系统减少幻觉的核心价值,检验生成内容是否严格以检索结果为依据。 3. 答案相关性(Answer Relevance) :生成的答案与提出的问题是否直接相关,有效地解决核心问题。优秀的RAG系统应能准确理解问题意图,提供切中要害的回答。 4. 噪音鲁棒性(Noise Robustness) :评估模型处理噪音文档的能力,这些文档与问题相关但缺乏实质性信息。现实中的知识库常包含不完整或低质量内容,系统需具备辨别信息价值的能力。 5. 拒答能力(Negative Rejection) :评估模型是否能辨别文档范围外问题,是否能拒答文档无关问题。对于企业级应用,系统应明确知晓自身知识边界,避免对不了解的问题给出误导性回答。 6. 信息整合能力(Information Integration) :评估模型从多个文档中综合信息以解决复杂问题的能力。高级RAG系统应能进行多文档推理,综合不同来源的信息形成完整答案。 7. 识别错误信息能力(CounterFactual Robustness) :评估模型识别和忽略文档中已知的不准确信息的能力。知识库中可能存在错误,系统需具备一定的事实核查能力。