RAG 讲解
生成之前先检索:参数记忆外挂非参数索引。单次流水线;模型并不依据回执再决定是否重新检索。
这篇论文要解决的问题
2020 年 5 月,与 GPT-3 几乎同期。当时预训练已能把事实压进参数,REALM 与 DPR 已能做到先检索再抽取。三条缺口并列:参数知识难以修改、难以核查、且会产生幻觉;可微检索当时主要服务于抽取式阅读,答案必须落在原文跨度内;生成模型仍是闭卷的,知识密集型生成落后于任务专用结构。
RAG 给出的是配方,不是新的骨干网络。检索器沿用现成的 DPR,生成器沿用现成的 BART,把检索到的文档当作潜变量,用答案似然端到端微调查询编码器与生成器。索引固定,可以热替换;生成不必等于抽取。它测量的终点是开域问答与若干生成、分类基准,而不是「模型自行决定何时重新检索」。
对后续 LLM 的影响
这个词在日常使用中含义更宽,泛指任意「先检索一段,再放进提示」的做法;论文的定义更窄,把参数记忆与非参数记忆写成一对可替换的组件。出处绑定在被检索的段落上,是后来「带引用作答」在结构上的前身,WebGPT 把引用改成了一次浏览动作。更换维基索引即可改变「谁是总统」的答案;在产品里更换向量库,走的是同一条路径。
限度需要写清楚:仍然只有一次前向。 检索、拼接、生成三步走完即结束,没有「看过回执再决定是否继续检索」的外循环。训练需要微调,不是 GPT-3 那种纯上下文学习。2023 年以后企业知识库助手沿用了这个名称,实现常常换成「嵌入加提示拼接」,不再做论文里的 token 级边际化。
对 AI Agent 的影响
我在整理带外部知识的 Agent 时,几乎都能看到「生成之前先检索」这一步。RAG 给出的是这条路径的单次形态:外部知识以检索段落的形式进入上下文,决策核心仍然只做一次生成。它补的是 GPT-3 上下文装不下、权重又改不了的那块缺口,不是循环本身。
| 论文里的机制 | 后来在 Agent 里对应的物理事实 |
|---|---|
| 非参数索引(原文块) | 工具回执、代码库、文档可以先被检索,再进入窗口 |
| 索引热替换 | 不必为每份新知识微调;更换索引即更换记忆 |
| 生成条件于 (z) | 当前观察中出现「检索到的证据」;证据选错仍然会错 |
| 一次检索加一次生成 | 流水线。Agent 循环要求的是依据回执再决定下一步:重新检索、更换查询或放弃 |
| 不用检索监督也能微调 | 后来许多系统连这一步微调也省去,只把结果拼进提示 |
时间线标成底层能力里的工程化:外部知识从此可以更换,而不用重训。