第 9 章 — RAG:把新鲜信息缝进上下文

发布于: 2026-02-26 最后更新于: 2026-06-05 版本: 1

第 9 章 — RAG:把新鲜信息缝进上下文

LLM Primer I: How Generative AI Works 章节走读的第九篇。工具用法里最常见的那一种,讲细一点。


RAG 在解决什么问题

RAG — Retrieval-Augmented Generation,检索增强生成 — 解决的是一件挺具体的事。把训练时没见过的信息,从外面捞进来,在模型回答之前缝进它的上下文里。

为什么重要?因为第 5 章里那两个毛病 — 对时间没概念、事实不稳定 — 根子都在"模型被它学过的东西锁住了"。从模型里头解决,代价大、还脆。而每次调用时往上下文里塞相关信息,既便宜又稳。

一句话总结:RAG 不改模型,它给上下文加东西。这种简单 — 每次调用都能换数据源,模型保持不动 — 就是这个模式最大的力量来源。

一次 RAG 调用是怎么走的

一步一步拆开看,一次 RAG 其实没什么神秘的。

1. 用户的问题进来。比如:"我们公司的退货政策是怎么样的?"

2. 这个问题被变成嵌入。第 3 章里那个嵌入又回来了 — 一句话被变成一段几百维的向量。

3. 向量检索。在预先索引好的那些片段里 — 公司文档、产品手册、政策文件 — 找出和这个问题嵌入最接近的那些。这里的"接近",是语义上的接近,不是字面上的。

4. 检索到的内容塞进上下文。这些片段被加到模型的上下文前面,通常带一句"请根据以下材料回答"。

5. 模型在这之上生成。之后模型把自己学过的、和刚塞进来的,放一起看,顺着往下写答案。

好 RAG 和坏 RAG 的分水岭

搭一个最初版本不难。让它真正经得起用,就难了。书里老实地讲了 — 一个还过得去的 RAG,和一个能扛规模的 RAG,差别在哪儿。

切分(chunking)。怎么切文档,这一步就决定了一半效果。切太短,上下文丢;切太长,检索的精度散。理想情况下,每一片本身就是一个完整的单元 — 一个章节、一个连贯段落、一个完整答案。

嵌入选择。没有"放之四海皆准"的最好嵌入。专业领域 — 医学、法律、代码 — 有它们各自的嵌入,能更好地抓住那块语言。选对一半路就走完了。

重排序(reranking)。在送进模型之前,再走一遍更贵、更精的打分,把初步检索的结果重新排,把更相关的顶上去。

Grounding.把答案逼着只能从检索到的材料里来 — 比如每一句结论都标上来源。这个习惯通常能把幻觉压下来不少。

值得记住:坏 RAG 长这样:"检索是检索出来了,模型却答得像没看见。"好 RAG 是检索利落、重排稳健、grounding 牢固,缝在一起,让答案从材料里长出来。

限制也讲老实点

RAG 周围的期待经常被抬过头。需要校准一下。RAG 给模型补,但不改它推理的方式。检索错了,答案会自信又错。靠分层 — 多路检索、交叉验证、索引质量管控 — 能压住一部分,但材料和模型必须一起走。

第 9 章那条主线

这章留下的话是:RAG 大概是今天用最便宜、效果也最稳的一招,既补上事实缺口又补上时间缺口,而模型不用换。同一个模型配上常更新的材料,能解决以前要重新训练才能解决的问题。


明天 — 第 10 章:多模态 — 走出文本。我们把范围扩开。同一个 Transformer 是怎么开始接收图像和音频的,以及哪些东西变了,哪些其实没变。

想看完整的全貌?书里把 RAG 的每一步打开,展示怎么针对你的场景调每一步 — 配图。在亚马逊查看《LLM Primer I》→

下田 昌平
下田 昌平
作为株式会社Receipt Roller的CEO兼CTO,目前负责开发电子收据服务以及自动将对话分类并生成行动任务的系统「ACTIONBRIDGE」。从小便接触编程,1996年参与开发测量仪器的相关程序,始终保持着对技术的深刻探索与热情。 在此前的职业生涯中,曾担任日本最大呼叫中心行业企业的子公司——一家研究开发公司的CEO/CTO,领导了多个技术开发项目。目前,我依然活跃在编程的最前沿,持续书写代码。