什么是 RAG?检索增强生成详解
- Aisha Washington

- 6月5日
- 讀畢需時 8 分鐘
检索增强生成(RAG)是一种人工智能技术,它在生成响应之前从知识库中检索相关文档,将答案基于真实来源而非模型记忆。 而非依赖模型权重中固化的模式,RAG会提取实际文本并将其作为证据来撰写回复。其结果是,AI能够回答训练期间从未见过的文档相关问题,并可指向引文。
大型语言模型有一个根本盲点:它们无法区分自己真正知道的内容和自信编造的内容。2024年《麻省理工科技评论》的一项调查发现,幻觉源于 AI幻觉原因 根植于模型学习统计模式而非事实的方式,当模型被问及近期事件、专有数据或训练分布之外的利基领域时,问题会加剧。检索增强生成正是针对这一结构性缺陷的直接应对。通过将生成锚定于检索到的源文本,RAG将失败模式从自信的虚构转变为诚实的“未找到文档”。
关键要点
RAG如何用一句话概括: RAG在查询时检索相关文档块,然后将其提供给语言模型以生成有根据、来源支持的答案。
RAG与微调的对比: 微调将知识永久烘焙到模型权重中;RAG在查询时动态检索知识。它们解决不同的问题,而知识密集型任务几乎总是需要检索增强生成。
何时选择RAG: 当知识库频繁变化、答案必须可审计,或处理无法进入训练数据的私有文档时,请使用RAG。
本地RAG的含义: 本地RAG完全在设备上运行检索管道,因此文档永远不会离开您的机器。这对于个人笔记、医疗记录、法律文件以及任何您不愿上传到云服务的上下文至关重要。
以下各节将介绍检索增强生成的工作原理、它与微调和向量数据库的比较,以及如何评估某个工具是否真正正确实现了它。如果您想用自己的文档实际查看,try remio free。
检索增强生成实际做了什么
检索增强生成是一种双阶段架构:检索阶段在知识库中找到最相关的段落,生成阶段将这些段落用作有根据的上下文。语言模型从不仅凭记忆运行,而是基于证据运行。这种分离正是RAG与标准聊天机器人根本不同的原因,后者仅依赖训练期间学到的模式。这也意味着模型可访问的知识并非在训练时固定;可以通过更改文档存储持续更新。
这种架构提供了三种独立检索或生成都无法单独实现的能力。
grounding: 每个答案都可追溯到知识库中的特定段落。模型无法发明任何来源不支持的事实,因为提示本身仅包含检索到的文本。Grounding是使RAG适用于事实性问题的机制。
动态知识: 知识库是一个独立的存储层,而非模型权重。更新它意味着添加或编辑文档,而非重新训练模型。法律团队可以在今天上午添加新法规,并在今天下午立即访问,无需任何工程工作。
来源可追溯性: 由于检索到的块明确进入提示,系统知道哪个文档产生了每个答案。这使得检索增强生成适用于审计环境:合规团队、医疗记录、客户支持,以及任何答案必须附带引文的地方。
三步管道:RAG如何生成答案
由Lewis等人在其2020 paper at NeurIPS上提出的原始检索增强生成架构,确立了大多数实现至今仍遵循的三阶段管道。每个阶段都有 distinct 角色,任何阶段的失败都会降低最终答案质量。了解每个步骤如何工作有助于澄清检索增强生成在何处成功以及在何处仍可能不足。它还揭示了当系统产生糟糕答案时应改进管道的哪个部分。
步骤1:分块与索引,准备知识库
在任何查询到达之前,必须准备文档以供检索。文档摄取过程将原始文本拆分为块,通常每个200到500个token,选择以保留语义连贯性,同时保持足够小以便将多个块放入单个提示中。然后将每个块转换为向量嵌入(其含义的高维数值表示),并与原始文本一起存储在向量数据库中。
此预处理步骤离线发生,在任何用户提问之前。结果是一个可搜索索引,其中每个块可通过语义相似性而非精确关键词匹配检索。分块质量直接影响检索精度;拆分不当的文档会产生混合不相关主题的块,并在查询时返回嘈杂、无关的匹配。
步骤2:检索,找到正确的块
当用户提交查询时,系统使用索引期间应用的相同嵌入模型将该查询转换为向量嵌入。然后计算查询向量与索引中每个块向量之间的相似度分数,返回最语义相似的top-k块以传递。
将其想象成一位图书管理员,聆听您的问题,走进书库,并带回五本最相关的书,而不是从记忆中背诵整个馆藏。检索步骤不需要关键词重叠;它匹配含义。关于“为什么我的合同续订被拒绝”的查询可以找出关于“协议终止条款”的段落,即使它们之间没有一个共享词。
步骤3:增强生成,用证据回答
检索到的块和原始查询被连接成一个增强提示:模型看到证据和问题在一起。然后语言模型使用该组合输入生成响应,受源文本约束而非仅凭训练记忆自由发明。
一个值得直接承认的限制:生成答案的质量完全取决于检索质量。如果相关文档从未被索引,或分块碎片化了关键段落,模型仍可能产生不准确的答案,因为检索到的块根本不包含所需内容。检索增强生成针对知识库内的问题大幅减少幻觉,但对于知识库无法回答的问题,它并不能消除错误。
RAG与微调:两个不同的问题
RAG在查询时检索知识;微调将知识烘焙到模型权重中。这些不是针对同一任务的竞争方法;它们解决根本不同的问题,选择它们需要了解您实际遇到的问题类型。
知识新鲜度
RAG:通过添加或编辑文档更新知识库。更改立即可用,无需修改模型。
微调:新知识需要新的训练运行,根据数据集大小和硬件,可能需要数小时到数天。
成本
RAG:成本主要由存储和检索基础设施主导。在大多数规模下,向量数据库 inexpensive,且索引后无需GPU计算。
微调:需要大量GPU训练计算。2024年arXiv分析发现,LLM fine-tuning costs 对于7B参数模型,每次运行可达1000至12000美元,随模型大小急剧增加。
透明度
RAG:每个答案的来源在提示中明确。您可以记录哪些文档产生了哪些响应,并将任何错误追溯到特定块。
微调:知识分布在数十亿模型权重中。没有机制来审计哪个训练示例影响了特定输出。
最适合
RAG:动态、私有或可验证的知识;频繁变化的信息;合规敏感环境;个人文档库。
微调:将模型的输出风格、语气或格式适应固定领域;行为一致性比事实新鲜度更重要的任务。
对于个人知识库、企业文档存储库和实时信息检索,检索增强生成几乎总是正确的架构。将模型微调以记住您的会议记录会更慢、贵得多,且无法在不从头重新训练的情况下更新。当知识频繁变化时,检索增强生成是唯一无需 recurring 工程成本就能跟上的方法。
RAG与向量数据库:不是同一回事
向量数据库存储嵌入并支持相似性搜索。RAG是一个完整架构,将向量数据库用作多个组件之一。将两者混为一谈是该领域新开发者最常见的误解之一,这种混淆对任何试图构建工作系统的人都有实际后果。
区别是具体的。向量数据库回答“哪些块与此查询最相似?”检索增强生成将该答案用作中间步骤,然后将检索到的块路由到合成自然语言响应的语言模型。拥有向量数据库可获得检索能力;拥有RAG可获得构建在该检索层之上的完整问答管道。
一个有用的类比:向量数据库是图书馆的书库和目录系统。RAG是完整的图书馆服务,包括找到书籍、阅读相关部分并用通俗语言解释答案的图书管理员。您可以构建和查询向量数据库而无需生成文本。您不能在没有检索层的情况下运行RAG系统,但仅检索不是RAG。
实际含义:如果产品声称“使用向量搜索”或“嵌入您的文档”,请询问它是否也从检索到的上下文中生成答案。向量搜索返回相关段落列表;检索增强生成系统获取这些段落并撰写直接响应。两者相关,但它们在不同的抽象级别上运行,一个并不意味着另一个。
RAG实践,remio如何构建个人RAG
大多数RAG部署运行在企业服务器上,需要专用基础设施和IT监督来管理。remio将相同的检索增强生成架构带到个人设备上,有一个深思熟虑的设计决策:所有检索都在本地进行,数据永远不会离开机器。检索增强生成的价值不仅是 grounded 答案;它是来自您自己历史而非共享公共语料库的 grounded 答案。
当您向remio提问时,它搜索您的会议、文档和浏览历史,而非互联网,并从您自己的过去中提取答案。检索管道针对从个人上下文中构建的本地向量索引运行。没有云中介、没有数据上传,也没有可能在他人查询中显示您笔记的共享模型。隐私保证是结构性的,而非政策问题。
这种架构对于隐私敏感材料最为重要:访谈笔记、客户合同、医疗记录、个人研究。选择本地向量存储而非托管服务意味着即使提供商被入侵,您的文档也不会暴露。对于personal knowledge retrieval,remio以可扩展到任何个人累积上下文的方式应用检索增强生成,无需云基础设施或IT团队来操作。
关于检索增强生成的常见问题
Q: RAG与语义搜索相同吗?
A: 语义搜索找到与您的查询最相似的文档并显示给您阅读。RAG更进一步:它获取这些文档并从中合成直接的自然语言答案。语义搜索返回证据;检索增强生成解释证据并撰写响应。
Q: RAG需要微调才能工作吗?
A: 不需要。检索增强生成在查询时检索知识,并将其作为提示上下文传递给语言模型。模型权重从未被修改。标准预训练基础模型可用作生成层,这是RAG对于大多数用例比微调更快、更便宜部署的原因之一。
Q: 使用基于RAG的工具时我的数据安全吗?
A: 这完全取决于部署架构。本地RAG将所有文档和嵌入保留在设备上;没有任何内容到达外部服务器。云RAG将您的文档发送到托管服务以生成嵌入并运行检索。隐私影响大不相同,对于敏感个人或专业数据而言,这种差异很重要。在评估任何基于RAG的产品时,请明确询问嵌入存储在哪里以及由哪一方控制。
Q: RAG与将文档粘贴到聊天中的区别是什么?
A: 将文档粘贴到聊天窗口会遇到两个硬性限制:上下文窗口大小和数据暴露。即使大型上下文窗口也只能容纳大约75000个单词,且整个文档都会发送到模型提供商的服务器。RAG在查询时仅检索相关块,可扩展到任何大小的知识库,并且在本地部署中保持源材料完全私有。对于超过几页的任何内容,检索增强生成是唯一仍实用的架构。


