当模型拿到“借阅证”:重读 RAG 奠基论文的六点体会
当模型拿到“借阅证”:重读 RAG 奠基论文的六点体会
wwxdsg最近重新读了一遍 Patrick Lewis 等人的 RAG 论文。
如果把传统大模型比作一个“靠脑内记忆答题”的学生,那 RAG 最有意思的设计,就是给这个学生办了一张“图书馆借阅证”:它可以在生成答案时,先去查资料,再组织表达。
这篇笔记想记下我最有感触的六点。
1. 记忆被拆成了两部分:参数负责能力,外部库负责事实
论文把知识来源拆成两类:
- 参数化记忆(Parametric Memory):模型参数中沉淀的模式与能力
- 非参数化记忆(Non-parametric Memory):外部文档库(论文里是 Wikipedia 索引)
这件事改变了我对“模型变强”的直觉。
以前我会把“更强”理解成“参数更大”;现在我更倾向于“能力与事实分层管理”。
一个参数规模更小的模型,如果检索机制足够好,也能在知识密集任务上打出很高上限。
这也是我理解里 RAG 的核心:把“推理能力”和“事实更新”从同一套参数里拆开。
2. DPR 的优雅在于:把“找资料”变成了几何问题
RAG 里我最喜欢的一段是 DPR 检索器。
问题 x 和文档 z 都被编码到同一向量空间,再通过相似度做 top-K 检索。
形式上可以写成:
top-K argmax_z ( q(x)^T d(z) ) |
这一步非常关键,因为它让检索不再依赖“字面重合”。
同义改写、表达差异、问法变化,都可以通过语义邻近来弥补。
当然,传统 BM25 在实体词非常明确时依然有价值。
所以在工程上,我更愿意把它理解为“语义检索主导,关键词检索兜底”的组合,而不是非此即彼。
3. RAG-Sequence 与 RAG-Token:稳定性和灵活性的取舍
论文里两种生成方式非常有代表性:
- RAG-Sequence:整段生成过程使用同一批检索文档
- RAG-Token:每个 token 允许动态参考不同文档
前者更稳,后者更灵活。
我自己的体会是:结构化问答、强一致性场景更适合 Sequence;开放生成、长文本探索更适合 Token 思路。
这其实不是“谁更先进”的问题,而是系统目标不同:你优先要“上下文一致”,还是优先要“信息覆盖”。
4. 最打动我的细节:没有直接证据时,RAG 仍可能答对
论文里提到一个有意思的现象:即使检索文档里没有直接答案,RAG 也有一部分样本可以回答正确(文中给出的案例约为 11.8%)。
这意味着系统内部不是“照抄检索结果”,而是“检索信号 + 参数记忆”在共同工作。
我把它理解成一种协同:
- 外部文档提供线索和锚点
- 参数记忆补上推理与表达
这也解释了为什么高质量检索会显著提升答案可用性,但“只堆文档”并不能自动得到高质量推理。
5. 为什么今天很多 RAG 看起来“不微调也能用”
这也是我最近反复在想的问题。
和论文发表时期相比,现在主流大模型的指令遵循能力强了很多,所以“检索结果 + 好提示词”就能得到可用答案。
但这不代表联合微调思想失效。
在垂直领域(术语密集、格式严格、流程固定)里,微调仍然是把特定行为写进模型“习惯”的有效手段;RAG 则负责把外部知识保持新鲜与可追溯。
我的结论是:两者不是替代关系,而是不同层面的增强。
6. 最后的收获:RAG 让模型学会了“有依据地不知道”
读完这篇论文,我最强的感受不是某个指标,而是方法论层面的变化:
系统不再追求“把所有事实都塞进参数”,而是承认知识会变化,并把“查证能力”纳入生成流程。
这种可追溯性(Provenance)很重要。
它不仅减少幻觉,也让我们在使用模型时,拥有了更多可验证、可审计、可迭代的控制点。
参考论文:
Patrick Lewis et al., Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks
ArXiv: 2005.11401