跳到主要内容

RAG 是什么、企业为什么需要它

这一章讲三件事: 大模型缺什么(它没读过你公司的数据);RAG 怎么补这个缺口、它和微调那条路的分界在哪; 以及企业里 RAG 真正被用来做的那些事。这章是全书的地基:后面十三章讲的全是「把这件事做得更好」的各种办法。

1. 先看缺口:模型再大,也没见过你公司的事

大语言模型(以后简称 LLM)是从海量公开文字里训练出来的。它读过维基百科,读过网上能爬到的网页—— 但它没读过你公司的合同、你客户的账单、你们内部的工艺文档。

这不是小事。一家公司最有价值的数据,恰恰是这些从来没公开过的东西。作者把这个矛盾说得很直白: 现代 LLM 令人印象深刻,但「它们从未见过你公司的私有数据」1。你买最新、最大的模型也没用—— 只要训练时没见过这份材料,模型对它就是无知的。

RAG(全称叫作检索增强生成,Retrieval-Augmented Generation)就是冲着这个缺口来的: 把 LLM 的语言能力, 和你自己数据库里的知识,接到一起。作者称它是「将新数据提供给 LLM 的最流行范式」2

2. RAG 怎么工作:三个阶段

RAG 的机制一句话就能说完:回答问题之前,先去你的数据里把相关材料找出来,连同问题一起交给 LLM。

拆开看是三个阶段,这三个名字后面每一章都会反复出现:

阶段什么时候发生做什么
索引(indexing)用户提问之前,通常提前做好把你的数据切好块、转成可搜索的格式、存进专门的数据库
检索(retrieval)用户提问时拿用户的问题去数据里找最相关的几块材料
生成(generation)检索之后把「问题 + 找到的材料」一起交给 LLM,让它照着材料回答

书里给出了一个标准提示词模板——提示词即发给模型的指令文字,模板即留了空位的版本——的原文,值得看一眼,因为它说明了生成阶段的本质—— LLM 被明确告知「照着给你的材料答,答不出就说不知道」3:

You are a helpful assistant for question-answering tasks. … If you don't know the answer based on the information provided, just say you don't know.

注意三个阶段的时机不同。 索引是提前做的准备工作;检索和生成发生在用户提问的那一瞬间。 这个区分在第二章的代码里能直接看出来4

3. RAG 的好处,和它的代价

五条好处

作者列了五条,每条都值得记住,因为后面章节都在兑现它们5:

  1. 更准、更相关——回答基于你提供的最新数据,而不是模型的旧记忆;
  2. 可定制——接哪个数据库,它就懂哪个领域;
  3. 灵活——结构化的表格、非结构化(即没有固定表格格式)的文档、网页都能接;
  4. 扩展训练之外的知识——不用重新训练模型就能让它「懂」新东西;
  5. 减少幻觉——幻觉(hallucination,指 LLM 一本正经地编造事实)在纯 LLM 里几乎没法消除; RAG 系统因为有真实数据在手,可以用数据去校验、拦住胡说的回答6

六条代价

作者同样不讳言代价,其中三条最要紧7:

  • 数据质量决定上限。 数据科学圈的老话:garbage in, garbage out——喂垃圾,吐垃圾。检索库里的数据过时、有偏见、有错,RAG 的输出就带着同样的毛病。
  • 更慢、更贵。 一次 LLM 调用本身就要一秒到几秒;RAG 在它前面又加了检索、处理、可能还有多次 LLM 调用,叠加起来延迟显著增加。
  • 系统更复杂。 同一份数据从此有多个形态(原文一份、向量一份、存在专门的向量数据库——专门用来存向量、并支持按「远近」快速检索的数据库——里),每一处连接都要维护。

判断(我们的,不是书里的): 这五条好处和六条代价,其实预告了全书的章节结构—— 索引与向量方法(第 04 章)、检索(第 05 章)、评测(第 06 章)、成本与缓存(第 11 章)、幻觉与安全(第 03 章)。 这本书后面的所有技术,几乎都是在缓解这六条代价中的某一条。 如果错,会错在: 如果某项技术(比如语义缓存)其实是为了别的目的而生,这个「代价→技术」的映射——即一一对应关系——就过于整齐了; 但读完后你会发现它基本对得上。

4. 三条路:直接用 LLM、微调、RAG

直接用 LLM ≠ RAG

书里专门回答了一个新手常见疑问:「我在公司里用 ChatGPT 答问题,算不算已经在用 RAG?」 答案是不算。 两者都是生成式(即凭空产出新内容)AI,但直接用 LLM 时,它只能靠训练时学到的东西回答; RAG 多了「先查你自己的数据」这一步8

微调是另一条路,分工不同

给模型补上你的领域知识,有两条路。微调(fine-tuning) 是拿你的数据继续训练模型, 直接改动模型内部定义它「智能」的那些权重;RAG 不改模型,把知识放在输入里9

为什么不全部用微调?书里给了一个很好记的解释10:

  • 微调像人的长期记忆。 你背过一篇长文,几个月后再回忆,大意还在,细节已经丢了—— 模型微调后也是如此,它擅长学会「怎么做一件事」(比如用律师的口吻说话),不擅长精确记住事实。
  • RAG 像人的短期记忆。 材料就摆在眼前,字句、顺序、细节都清清楚楚——要精确回忆事实,摆在眼前比背下来可靠。

还有一个现实差异:上下文窗口(context window,指模型一次能读进来的文字量上限)有限。 早期 GPT-3.5 只有 4,096 个 token——大约 5 页纸;如今最大已到千万 token 级别,折合上万页11。 但窗口变大没有消灭 RAG,原因有二:窗口按 token 计费,什么都塞进去账单惊人; 而且模型在超长文本中间容易漏看关键信息——这个问题有个名字,叫 lost in the middle(迷失在中间), 书里建议把最关键的信息放在提示词的开头或结尾来缓解12

顺带钉死一个单位:token 是模型处理文字的最小单位,不等于词。 像 ice cream 这样的复合词, 主流模型会切成两个 token;而且上下文窗口是输入加输出共享的,要给回答留出空间13

微调RAG
改什么模型内部的权重(永久改变)输入的内容(模型不动)
擅长教任务、教口吻、教风格精确的事实回忆、私有可能变化的数据
成本高(虽有 LoRA——只调一小部分参数的低成本微调法——等降本手段)相对低
知识更新要重新微调更新数据库即可

书里的结论一句话:RAG 管事实,微调管任务与领域口吻;两者还能叠加——先用你的领域语料微调出一个「更懂行」的模型,再给它接 RAG14

5. 企业里 RAG 在做什么

原书第三章把应用场景扫了一遍。挑几个有画面感的:

  • 客服与技术支持。 银行的例子最具体:客户问「我的信用卡利率是多少」,这个数据埋在数据库、PDF 和安全层后面, 人工客服都难查;RAG 聊天机器人能在验证身份后直接回答「你的利率是 21.9%」,还能补一句 「你至今只付过两次利息」,并且接着聊房贷、跨账户比较利率——全程记得对话上下文15
  • 个性化电商。 常买环保产品的顾客 Rylee 浏览商品时,商品描述被动态生成,强调可持续性; 关注马拉松训练的她看跑鞋时,描述强调缓震与耐久16。另一位顾客 Aubri 在看登山靴, 系统顺手推荐袜子、背包、登山杖——凑成一次多件购买17
  • 自动化报告。 定期报告先自动生成,报告的数据和底层数据都接进 RAG—— 决策者看完报告可以直接追问数据本身,不用再排队等数据分析师跑数18
  • 员工培训。 按岗位、经验、学习历史定制学习路径,还能按需即查(just-in-time learning), 代替冗长的正式培训19

一个横跨所有场景的共性需求是给出处:涉及法律文档、科研论文的回答,必须能引用来源—— 这既是可信度问题,也是合规问题。书里用一个小代码实验演示了怎么把出处带上(见第 02 章第 4 节)20

6. 边界与局限

  • 书中列出的模型与数字有时效性(如上下文窗口表截至 2025 年 10 月),机制不过时,数字会过时。
  • 「RAG 减少幻觉」是相对纯 LLM 而言的;幻觉仍是 RAG 最大的挑战之一——检索本身也可能失败, 书里明确说幻觉治理需要额外的逻辑层,而这些层本身又依赖 RAG 提供的数据21。第 03 章专门讲这个。
  • 应用场景那一章偏「能做什么」的罗列,很少讲「做不好会怎样」——失败模式分散在后面各章(检索失灵、评测、缓存污染)。

7. 可带走的

  1. RAG 解决的问题只有一句话: LLM 没读过你公司的数据。
  2. 三阶段:索引(提前)→ 检索(提问时)→ 生成(照材料答)。 全书主线就是不断改造这三个阶段。
  3. RAG 与微调的分工:事实找 RAG,任务口吻找微调;长期记忆/短期记忆这个类比好记。
  4. 上下文窗口变大不等于 RAG 没用了——按 token 计费 + lost in the middle,两座大山还在。
  5. 「用 ChatGPT 不算用 RAG」——少了「先查你自己的数据」这一步。
  6. 企业场景的共同刚需是给出处——可核查、可追责。
  7. 幻觉在纯 LLM 里几乎无法消除,RAG 第一次让「用数据拦住胡说」成为可能——但只是可能,第 03 章讲怎么落地。

8. 原文地图

主题原书章原文位置
LLM 没见过公司私有数据What Is Retrieval-Augmented Generation?text/04-fm-what-is-retrieval-augmented-generation.txt:55(搜「never seen your company」)
RAG 是最流行范式What Is Retrieval-Augmented Generation?text/04-fm-what-is-retrieval-augmented-generation.txt:61(搜「RAG is the most popular paradigm」)
标准提示词模板What Is Retrieval-Augmented Generation?text/04-fm-what-is-retrieval-augmented-generation.txt:630(搜「helpful assistant for question-answering」)
三阶段定义What Is Retrieval-Augmented Generation?text/04-fm-what-is-retrieval-augmented-generation.txt:604(搜「indexing」) · text/04-fm-what-is-retrieval-augmented-generation.txt:651(搜「Generation」)
五条好处What Is Retrieval-Augmented Generation?text/04-fm-what-is-retrieval-augmented-generation.txt:74(搜「Improved accuracy and relevance」)
幻觉既是对立又是挑战What Is Retrieval-Augmented Generation?text/04-fm-what-is-retrieval-augmented-generation.txt:86(搜「Removing hallucinations」) · text/04-fm-what-is-retrieval-augmented-generation.txt:115(搜「Hallucinations」)
代价:垃圾进垃圾出/延迟/复杂What Is Retrieval-Augmented Generation?text/04-fm-what-is-retrieval-augmented-generation.txt:100(搜「garbage in, garbage out」) · text/04-fm-what-is-retrieval-augmented-generation.txt:106(搜「Computational overhead」) · text/04-fm-what-is-retrieval-augmented-generation.txt:109(搜「Data storage explosion」)
直接用 ChatGPT 不算 RAGWhat Is Retrieval-Augmented Generation?text/04-fm-what-is-retrieval-augmented-generation.txt:519(搜「does that mean my company is using RAG already」)
微调 vs 输入,长期/短期记忆类比What Is Retrieval-Augmented Generation?text/04-fm-what-is-retrieval-augmented-generation.txt:550(搜「Fine-tuning」) · text/04-fm-what-is-retrieval-augmented-generation.txt:560(搜「long-term memory」)
上下文窗口 4096≈5 页、千万级窗口What Is Retrieval-Augmented Generation?text/04-fm-what-is-retrieval-augmented-generation.txt:563(搜「4,096 token」)
lost in the middle 与对策What Is Retrieval-Augmented Generation?text/04-fm-what-is-retrieval-augmented-generation.txt:566(搜「lost in the middle」)
token≠词、窗口含输出What Is Retrieval-Augmented Generation?text/04-fm-what-is-retrieval-augmented-generation.txt:573(搜「ice cream」)
RAG 管事实、微调管任务;可叠加What Is Retrieval-Augmented Generation?text/04-fm-what-is-retrieval-augmented-generation.txt:445(搜「fine-tuned model understands your data」) · text/04-fm-what-is-retrieval-augmented-generation.txt:581(搜「RAG is generally superior」)
银行利率例子(21.9%)Practical Applications of RAGtext/06-fm-practical-applications-of-rag.txt:85(搜「21.9%」)
电商个性化(Rylee/Aubri)Practical Applications of RAGtext/06-fm-practical-applications-of-rag.txt:151(搜「Rylee」) · text/06-fm-practical-applications-of-rag.txt:169(搜「Aubri」)
自动化报告+追问数据Practical Applications of RAGtext/06-fm-practical-applications-of-rag.txt:109(搜「automated reports a part of a larger RAG system」)
JIT 学习Practical Applications of RAGtext/06-fm-practical-applications-of-rag.txt:259(搜「just-in-time」)
引用出处的需求Practical Applications of RAGtext/06-fm-practical-applications-of-rag.txt:268(搜「cite the sources」)

Footnotes

  1. 出处:「What Is Retrieval-Augmented Generation?」第 55 段(text/04-fm-what-is-retrieval-augmented-generation.txt:55,搜「never seen your company」)。原文在括号里补了一句幽默的「hopefully!」——反过来说,如果你公司的数据已经泄露进训练集,那是另一场灾难。

  2. 出处:「What Is Retrieval-Augmented Generation?」第 61 段(text/04-fm-what-is-retrieval-augmented-generation.txt:61,搜「RAG is the most popular paradigm」)。

  3. 出处:「What Is Retrieval-Augmented Generation?」第 630 段(text/04-fm-what-is-retrieval-augmented-generation.txt:630,搜「just say you don't know」)。

  4. 出处:「Components of a RAG System」第 99 段(text/07-fm-components-of-a-rag-system.txt:99,搜「pre-processing offline」)。原书第 4 章明确:索引通常在用户打开应用之前离线完成,检索与生成在用户交互时实时进行。

  5. 出处:「What Is Retrieval-Augmented Generation?」第 70-86 段(text/04-fm-what-is-retrieval-augmented-generation.txt:70,搜「potential advantages」;text/04-fm-what-is-retrieval-augmented-generation.txt:74,搜「Improved accuracy and relevance」)。

  6. 出处:「What Is Retrieval-Augmented Generation?」第 115 段(text/04-fm-what-is-retrieval-augmented-generation.txt:115,搜「almost impossible to eliminate hallucinations」)。原文对照:纯 LLM 输出几乎无法消除幻觉,RAG 则有数据可用于校验与拦截。

  7. 出处:「What Is Retrieval-Augmented Generation?」第 100 段(text/04-fm-what-is-retrieval-augmented-generation.txt:100,搜「garbage in, garbage out」)、第 106 段(text/04-fm-what-is-retrieval-augmented-generation.txt:106,搜「Computational overhead」)、第 109 段(text/04-fm-what-is-retrieval-augmented-generation.txt:109,搜「Data storage explosion」)。

  8. 出处:「What Is Retrieval-Augmented Generation?」第 519-525 段(text/04-fm-what-is-retrieval-augmented-generation.txt:519,搜「does that mean my company is using RAG already」;text/04-fm-what-is-retrieval-augmented-generation.txt:522,搜「The answer is」)。

  9. 出处:「What Is Retrieval-Augmented Generation?」第 550 段(text/04-fm-what-is-retrieval-augmented-generation.txt:550,搜「adjusting the weights」)。原文:微调基于新训练数据调整定义模型智能的权重与偏置,永久改变模型对后续输入的响应方式。

  10. 出处:「What Is Retrieval-Augmented Generation?」第 557 段(text/04-fm-what-is-retrieval-augmented-generation.txt:557,搜「less reliable for factual recall」)与第 560 段(text/04-fm-what-is-retrieval-augmented-generation.txt:560,搜「long-term memory」)。原文用「背长文几个月后忘细节」类比微调,用「短期记忆里细节新鲜」类比输入。

  11. 出处:「What Is Retrieval-Augmented Generation?」第 563 段(text/04-fm-what-is-retrieval-augmented-generation.txt:563,搜「4,096 token」)。原书第 1 章的表格(text/04-fm-what-is-retrieval-augmented-generation.txt:420,搜「October 2025」)列出了从 4,096 到 10,000,000 token 的各级上下文窗口。

  12. 出处:「What Is Retrieval-Augmented Generation?」第 566 段(text/04-fm-what-is-retrieval-augmented-generation.txt:566,搜「lost in the middle」)。原文提到 needle in a haystack 测试已大幅改善,但 multiple needles 仍难;建议把关键信息放开头或结尾。

  13. 出处:「What Is Retrieval-Augmented Generation?」第 573 段(text/04-fm-what-is-retrieval-augmented-generation.txt:573,搜「ice cream」)。

  14. 出处:「What Is Retrieval-Augmented Generation?」第 581 段(text/04-fm-what-is-retrieval-augmented-generation.txt:581,搜「RAG is generally superior」);叠加用法见第 445 段(text/04-fm-what-is-retrieval-augmented-generation.txt:445,搜「fine-tuned model understands your data」)。

  15. 出处:「Practical Applications of RAG」第 85 段(text/06-fm-practical-applications-of-rag.txt:85,搜「21.9%」)。例子还包括跨账户追问「我的信用卡利率比房贷高多少」。

  16. 出处:「Practical Applications of RAG」第 151 段(text/06-fm-practical-applications-of-rag.txt:151,搜「Rylee」)。

  17. 出处:「Practical Applications of RAG」第 169 段(text/06-fm-practical-applications-of-rag.txt:169,搜「Aubri」)。

  18. 出处:「Practical Applications of RAG」第 109 段(text/06-fm-practical-applications-of-rag.txt:109,搜「automated reports a part of a larger RAG system」)。

  19. 出处:「Practical Applications of RAG」第 259 段(text/06-fm-practical-applications-of-rag.txt:259,搜「just-in-time」)。

  20. 出处:「Practical Applications of RAG」第 268 段(text/06-fm-practical-applications-of-rag.txt:268,搜「cite the sources」)。对应代码实验室见同文件第 271 段起(text/06-fm-practical-applications-of-rag.txt:271,搜「adding sources to your RAG」),实现拆解见本拆解第 02 章 §4。

  21. 出处:「What Is Retrieval-Augmented Generation?」第 115 段(text/04-fm-what-is-retrieval-augmented-generation.txt:115,搜「additional logic layers」)。