生产环境里的 RAG:检索增强生成怎么工作,又在哪里翻车

RAG 是什么?为什么 RAG 系统一到生产环境就翻车?

检索增强生成(RAG)是多数团队真正把 LLM 用到自己数据上的方式。这篇讲清楚 RAG 是什么、现在用在哪、以及为什么它大部分的失败是检索问题,不是模型问题。

Specmora · ·

一段话讲清

RAG——检索增强生成——是在回答的那一刻把对的上下文喂给模型,而不是指望它背下来。你检索出相关文档、放进 prompt,让模型基于它们作答,最好还标出引用。它是让一个 LLM 在你私有、当前的数据上作答、又不用重训的办法。但有个简单的坑,多数项目就栽在这:一套 RAG 系统的上限,由它检索到什么决定。答案错的时候,问题往往不在模型,在检索。

RAG 为什么存在

语言模型在训练时就被冻住了,不知道的时候它会自信地编。这带来两个缺口:它不知道你的私有数据——你的合同、工单、制度;它也不知道训练截止之后变了什么。靠重训或微调来补这两个缺口,又慢又贵,而且文档一变就过期。

RAG 把这两件事都绕开了。模型不动,在查询时把要紧的事实取回来、作为上下文交给模型。RAG 的原始论文(Lewis 等,2020)把它定位在知识密集型任务上;六年过去,它已经是把 LLM 架在一堆文档之上的默认做法。

它到底怎么工作

这条管线分几段,每一段都是做对或做砸的地方。

  • 摄入与切块。 文档被切成段落,小到能精确检索,又大到能保住意义。
  • 向量化。 每个块被转成一个向量、存进索引,于是”语义相近”变成”向量空间里相邻”。
  • 检索。 查询被向量化、取回最近的块——实践中还会配一路关键词检索,因为稠密向量和精确词匹配各能抓到对方漏掉的东西。
  • 重排。 一个更重的模型按对查询的真实相关性,对头部候选重新排序,而不只是看向量距离。
  • 生成。 头部的块和查询一起交给 LLM,它基于它们作答、标出来源。

这正是公开的 AI 答案引擎(比如 Perplexity)背后的形态:检索、重排、再带行内引用合成。引用是在检索那一刻选定的,早于任何句子被写出来——一篇对 Perplexity 管线的拆解就指出,引用标记是在上下文组装阶段就被指派的,而不是模型写完之后再补上去的。

现在用在哪

RAG 已经悄悄成了在真实数据上交付 LLM 功能的标准做法:

  • 企业搜索与问答,在内部 wiki、制度、合同、工单上——问一句,得到一个带来源链接的、有据可依的答案。
  • 客户支持,从你自己的知识库作答,而不是通用模型的猜测。
  • 文档处理与抽取,从对账单和表单里抽字段,由检索找到对的条款、模型把它读出来。
  • 编程助手,在给改动建议之前,先检索相关文件和文档。
  • agent 工作流检索是 agent 在动手前用来把事实对齐的若干工具之一——由它自己决定何时检索、检索什么,而不是跑一条固定的查询。

它在哪里翻车

RAG 难的地方几乎从来不是模型,而在检索、以及围着它的管道。

  • 检索是瓶颈。 对的段落不在你检索到的东西里,模型就用不上它,而一个自信的错答案比没有答案更糟。把 RAG 真正跑上生产的人,多半把失败归到检索而不是生成——证据不全或排序糟糕时,再强的模型也只能给出弱答案。垃圾进,引用的也是垃圾。
  • 切块是个真决定。 块太大,答案淹没在噪声里;太小,一个段落失去让它有意义的上下文。没有通用设置——它取决于你的文档。
  • 检索器有偏差。 神经检索器过度偏爱低困惑度的文本——流畅、可预测的写作。Perplexity Trap 研究证明它们学着把低困惑度当成相关性的替身,于是一段平滑但错的内容,可能压过一段正确但生硬的。
  • 过期的索引会自信地撒谎。 文档变了你不重建索引,RAG 就会满怀信心地引用上个季度的制度。
  • 它有攻击面。 如果你的索引会摄入不可信内容,语料投毒是真实风险——PoisonedRAG(USENIX Security 2025)显示,在数百万条的语料里,针对每个目标问题注入五条精心构造的文本,攻击成功率就能到 90%,把答案导向攻击者指定的内容。
  • 质量没法靠眼看。 RAG 需要一套带检索指标和答案指标的带标注评测集、并在 CI 里设门,否则某次改动悄悄把它变差,你不会发现。

我们怎么做

我们把 RAG 做进定制系统的方式,和我们其余自动化工作是同一套讲究:量、设门、标引用、留审计。

  • 混合检索加重排。 稠密向量与关键词检索一起上,融合后再用 cross-encoder 重排,因为召回和精确率共同决定对的段落到不到得了模型。
  • 评测在 CI 里设门。 质量是对着带标注评测集量出来的数字,不是感觉;检索质量和答案质量分开打分,才看得出是哪一半退化了——答案侧的指标用 RAGAS 这类框架,端到端、要驱动真实界面的检查我们用 Playwright
  • 置信度门控与引用。 只在检索撑得住时才作答,亮出来源;撑不住时上递或反问,而不是猜。
  • 索引保持新鲜、输入当作不可信。 内容一变就重建索引,并把摄入内容当作不可信,字段访问在服务端强制,而不是靠 prompt 过滤。

为什么现在重要

RAG 是多数企业真正让 LLM 在自己数据上干活的方式——答案基于当前来源、事后还能审计,而不用拿业务去赌模型的记忆。Gartner 预计到 2028 年 AI agent 的数量将十倍于人类销售,agent 系统会越来越多地居间 B2B 采购——而这些 agent 评估的是结构化、可验证的数据,不是一段推销话术。能从这场转变里拿到价值的,会是那些检索做得好、且管线能证明自己答了什么、为什么这么答的团队。

参考资料

  1. Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks — RAG 原始论文,确立了先检索后生成的范式(Lewis 等,2020)。
  2. How Perplexity AI Answers Work: Retrieval, Ranking, and Citation Pipeline — 拆解 Perplexity,指出引用在检索阶段、生成之前就被指派(ZipTie,2025)。
  3. Reasoning RAG via System 1 or System 2: A Survey on Agentic RAG — agentic RAG 综述,检索是 agent 自行决定调用的工具之一(Singh 等,2025)。
  4. Why RAG Systems Fail in Production — 论证 RAG 多数失败源于检索而非生成(DigitalOcean,2025)。
  5. Perplexity Trap: PLM-Based Retrievers Overrate Low Perplexity Documents — 检索器偏爱流畅、低困惑度文本的因果研究(ICLR 2025)。
  6. PoisonedRAG: Knowledge Corruption Attacks to RAG — 每个问题注入五条文本即可达到 90% 攻击成功率(Zou 等,USENIX Security 2025)。
  7. Hybrid Search: BM25, Vector and Reranking — 稀疏加稠密检索、RRF 融合与 cross-encoder 重排的参考(Digital Applied,2026)。
  8. Ragas: Automated Evaluation of Retrieval Augmented Generation — 把检索指标与生成指标分开的 RAG 评测框架(Es 等,2023)。
  9. Playwright — 驱动真实界面做端到端管线检查的浏览器自动化工具。
  10. Gartner:到 2028 年 AI agent 数量将十倍于销售 — Gartner 对 agentic AI 进入 B2B 采购的预测(Gartner,2025 年 11 月)。

FAQ

常见问题

检索增强生成(RAG)是什么?

RAG 是在回答的那一刻把对的上下文喂给模型,而不是指望它背下来。先检索出相关文档、放进 prompt,让模型基于它们作答,最好还标出引用。它是让 LLM 在你私有、当前的数据上作答、又不用重训模型的标准做法。

RAG 系统为什么会在生产环境里失败?

大部分失败是检索问题,不是模型问题。对的段落不在检索结果里,模型就用不上它;真正把 RAG 跑上生产的人,多半把失败归到证据不全或排序糟糕。另外几个常见原因是索引过期、切块不当,以及检索器偏爱流畅文本的偏差。

什么是混合检索?为什么还要加重排?

混合检索是稠密向量检索和关键词检索一起上,因为两者各能抓到对方漏掉的东西。融合后的候选再交给 cross-encoder 重排器,按对查询的真实相关性重新排序,而不只看向量距离。召回和精确率共同决定对的段落到不到得了模型。

RAG 的质量怎么衡量?

对着一套带标注的评测集来量,检索质量和答案质量分开打分,并在 CI 里设门。RAG 质量没法靠眼看——没有量出来的指标,某次改动悄悄把系统变差,要等用户发现你才知道。