《REALM: Retrieval-Augmented Language Model Pre-Training》深度解读报告
摘要
本文解读 Google Research 于 2020 年 2 月提出的《REALM》。论文的核心论断是:以 BERT/T5 为代表的语言模型把世界知识隐式地压缩在参数里,受网络容量限制且不可解释;REALM 的答案是让模型在预训练阶段就学会查资料——增加一个可学习的文本知识检索器,把数百万文档的语料库当作外置知识库,并以掩码语言建模(MLM)为无监督学习信号,将梯度反向传播穿过检索步骤本身(Abstract, p1)。这在当时是首创。
工程上,REALM 用最大内积搜索(MIPS)实现亚线性时间的 top-k 文档召回,文档嵌入索引每隔约 500 步异步重建一次以对抗参数更新导致的索引过时(§3.3, §4.5)。结果上,REALM 在 NaturalQuestions、WebQuestions、CuratedTrec 三项开放域问答基准上超出此前所有方法 4–16% 绝对精度;仅 330m 参数即全面超越 11,318m 参数的 T5-11B(约其 1/34 规模),而 T5 从 Base 到 11B 增大 50 倍只换来约 5 点提升(Table 1)。消融实验进一步证明其与前身 ORQA 在微调/超参/数据完全一致下取得提升,收益纯粹来自更好的预训练(主张 F)。本报告按「问题—概念—方法—证据—批判—启示」六层结构逐层拆解。
一、问题定位:参数里的世界知识正在「漏」
1.1 论文要解决的问题
论文针对 2020 年已充分暴露的结构性矛盾:语言模型的规模竞赛正在用参数量换事实性。自监督预训练让模型从原始文本中吸收大量世界知识,但这些知识以分布式权重的方式「溶解」在参数里,带来两条硬伤:
- 容量瓶颈:网络容量有限而世界知识近乎无限。论文引言给出的例子极为具体——BERT 存不下 "pound" 一词的多重含义所需的全部分布式表示(Introduction, p1-2)。想在参数里塞下更多事实,唯一的办法是把网络做得更大;
- 不可解释、不可更新:知识散布在数十亿权重中,无法指出「哪个参数存了哪条事实」,也无法在不重训的情况下修改一条过时信息。
作者的诊断是:人类专家答题时会查阅资料,语言模型却被要求「闭卷考试」。REALM 要把闭卷考改成开卷考——难点在于,「翻书」这个离散动作本身不可微,而且没人告诉模型该翻哪本书。REALM 的回答是:不需要任何人工标注的「正确文档」,让 MLM 损失自己教会模型检索——预测得准的文档就是好文档。
1.2 谱系定位:两大阵营之间的第三条路
2020 年初的开放域问答(Open-QA:无需提供证据文档、直接作答)研究两军对垒(§2, p2-3):
- 检索式先用 TF-IDF/BM25 等稀疏检索捞维基百科文档,再用阅读器抽答案(DrQA、HardEM、GraphRetriever、PathRetriever)。知识外置、可解释,但词面匹配语义泛化差;
- 生成式把问答当文本到文本任务,T5 用多任务预训练把 QA 语料「背」进参数。端到端流畅,但存在容量与解释性问题。
REALM 的直接前身是同组的 ORQA(Lee et al., 2019):首次引入稠密检索,用 Inverse Cloze Task(ICT)预训练查询/文档编码器。但 ICT 只是最终任务的代理目标,优化方向与实际使用脱节。REALM 的决定性一步是:放弃代理任务,直接用 MLM/QA 最终损失端到端训练检索器——检索不再是固定前置管道,而是随主任务共同进化的模型组件。
一句话小结:本文要解决的不是「答不准」,而是「知识存在哪里」——它把知识存储从参数内部迁移到外部语料库,并解决了让这个外挂库随预训练一起成长的核心难题。
二、概念内核:五个核心概念逐一定义
2.1 隐式 vs 显式知识存储
术语表定义:隐式存储 = 世界知识编码在网络参数中,受容量限制、不可解释;显式存储 = 通过可学习检索器直接引用文本语料库,知识模块化、可解释(主张 A, Abstract p1)。
拆解:这是全文的世界观分水岭。隐式路线里,「爱因斯坦在哪任教」是一条具体的权重配置;显式路线里,它是一行维基百科文本加一个检索决策。后者优势不仅是哲学上的(可解释),更是工程上的:换知识库 = 换一个索引文件,而隐式路线换知识 = 全量重训。(推断)这一区分日后演化为「参数化知识 vs 非参数化知识」的标准术语,成为整个 RAG 流派的立论原点。
2.2 检索即隐变量边缘化
定义:REALM 将预测分解为「先检索后预测」,并把检索到的文档 z 视为隐变量做边缘化(§3.1, p3):
p(y|x) = Σ_{z∈Z} p(y|z,x) · p(z|x) (式 1)
预训练时 x 为掩码句子、y 为缺失 token;微调时 x 为问题、y 为答案——同一个生成过程覆盖两种任务。
拆解:这个概率模型是全文的数学骨架,有两层深刻含义。其一,模型不依赖「恰好检到那篇对的文档」——它对 top-k 个候选加权求和,单篇证据弱时多篇弱证据叠加仍能支撑正确预测(Table 3 的边缘概率 0.129 正是这种叠加的体现)。其二,z 是求和路径上的中间节点而非采样结果,梯度可沿每条路径回传,检索因此可微——这就是「反向传播穿过检索步骤」的数学实现。(推断)该建模继承自 ORQA,但 REALM 真正释放了其潜力:只有当学习信号足够强(全语料 MLM 而非小规模 QA 对)时,穿过检索器的稀疏梯度才有价值。
2.3 稠密检索与 MIPS
定义:p(z|x) 由双塔 BERT 的内积给出(§3.2, p3-4):
p(z|x) = softmax_z f(x,z) f(x,z) = Embed_input(x)ᵀ · Embed_doc(z) Embed_input(x) = W_input · BERT_CLS(joinBERT(x)) Embed_doc(z) = W_doc · BERT_CLS(joinBERT(z_title, z_body))
检索时用 Maximum Inner Product Search 在 1300 万+候选块(Wikipedia 2018-12-20 快照,贪心切成最多 288 wordpiece)中亚线性时间找内积最大的 top-k 文档(§4.3, p7)。
拆解:双塔结构是效率与可微性的关键妥协——查询与文档各自独立编码,文档嵌入可以离线预计算成 MIPS 索引,在线只需编码一次查询再做向量近邻搜索。(推断)代价是查询与文档在编码阶段无法交互,交叉注意力被推迟到下游编码器——这为后来的 ColBERT 式 late-interaction 改进埋下伏笔。
2.4 无监督检索器学习信号
定义:REALM 首次以无监督方式端到端训练知识检索器:MLM 损失既训练编码器也训练检索器,无需任何「哪个文档相关」的标注(主张 B, Abstract p1)。梯度公式(§3.3, p5):
∇ log p(y|x) = Σ_{z∈Z} r(z) · ∇f(x,z)
r(z) = [p(y|z,x)/p(y|x) − 1] · p(z|x)
拆解:r(z) 是每个检出文档的「功劳分配」系数:当文档 z 条件下的预测好于边缘化平均水平(p(y|z,x) > p(y|x)),r(z) > 0,该文档的匹配分数被推高;反之被压低。这本质上是连续版的 REINFORCE——所有 top-k 路径同时回传,避免离散采样的方差灾难。(推断)这个「用任务损失反哺检索器」的思想是 REALM 最深远的贡献之一,后续 DPR、RAG 等工作都在不同程度上沿用「检索器与阅读器联合优化」框架。
2.5 知识增强编码器
定义:独立于检索器的第二个 Transformer,将输入 x 与每篇检出文档 z 拼接后编码并做 x-z 交叉注意力,输出最终预测 p(y|z,x);θ 与 φ 分别为检索器和编码器的全部参数(§3.2, p3-4)。
拆解:MLM 预训练时对掩码位置输出 token 分布;Open-QA 微调时假设答案是文档中的连续片段,用起止 token 的隐状态 h_START/h_END 过 MLP 打分。架构上值得注意的是:两个模块不共享权重,各自是一个 BERT 级 Transformer——「先粗筛后精读」分工清晰。(推断)这种「检索器/阅读器 + 文档级边缘化」结构直接奠定了后来 RAG 论文的架构模板。
一句话小结:五个概念构成一条完整链条——显式存储定世界观、隐变量边缘化给数学骨架、稠密内积+MIPS 给检索引擎、任务损失反哺检索器给学习信号、双 Transformer 给执行机构。
三、方法拆解:建模—架构—工程—偏置的完整技术体系
3.1 训练工程的三大难题
式 1 要求对全语料求和,直接计算不可行。论文给出三级解法(§3.3, p4-5):
- Top-k 近似:只对 p(z|x) 最高的 top-k 文档求和——其余文档概率接近零。预训练 k=8(含 null document),微调 top-5;
- MIPS 加速:f(x,z) 是内积,用 MIPS 数据结构亚线性时间召回 top-k,把「扫全库」变成「查索引」;
- 索引失效问题(stale index):Embed_doc 参数每步更新,但 MIPS 索引是静态快照——刚建好的索引立刻开始过时,放任不管则检索质量随训练漂移而崩坏。
异步刷新机制:并行两个 job——主 trainer 负责梯度更新;次 index builder 收到 trainer 发来的参数快照后在后台重新嵌入全部文档、重建索引,完成后回传新索引,循环往复。文档嵌入由 16 个 TPU 并行计算,索引约每 500 训练步刷新一次(§4.3, §4.5)。(推断)这实质是把「模型训练」与「检索基础设施维护」解耦成流水线——后来所有可更新知识库的检索增强系统都继承了这一模式。
3.2 四项归纳偏置:教模型「正确地翻书」
无监督信号虽强,但冷启动阶段检索器近乎随机、梯度噪声极大。论文注入四项先验引导检索行为(§3.4, p5):
| 偏置 | 机制与直觉 |
|---|---|
| Salient span masking 显著片段掩码 | 只掩需要世界知识才能填对的片段:专名用 CoNLL-2003 训练的 BERT tagger 识别,日期用正则匹配。掩掉 "is a ___" 只教语法,掩掉 "Fermat prime" 才逼模型查资料 |
| Null document 空文档 | 把空文档 ∅ 永远加入 top-k 候选。上下文本身足以作答时,模型可将功劳分配给 ∅ 这个一致的 sink,避免被无关文档稀释概率(推断:即「自适应检索」思想的概率化雏形) |
| 禁止平凡检索 | X 与 Z 同语料时,被掩句子所在的源文档会成为「作弊候选」——编码器可从未掩码部分平凡猜出答案,检索器退化为字符串匹配器。解法:排除源文档候选 |
| Initialization 初始化防冷启动 | ICT 预热 Embed_input/Embed_doc;编码器用 uncased BERT-base(12 层 / 768 hidden / 12 heads)warm-start。避免「编码器忽略检索文档 → 检索器无梯度 → 恶性循环」 |
3.3 训练配置全景
| 项 | 值 | 出处 |
|---|---|---|
| 预训练步数 | 200k steps | §4.3 |
| 算力 | 64 Google Cloud TPU + 16 TPU 并行文档嵌入 | §4.3 |
| batch size / 学习率 | 512 / 3e-5(BERT 默认优化器) | §4.3 |
| 边缘化文档数 | 8(预训练含 ∅)/ top-5(微调) | §4.3 |
| 知识库 | 英文 Wikipedia 2018-12-20 快照,13M+ 候选块 | §4.3 |
| 文档切分 | 贪心切至最多 288 wordpiece | §4.3 |
| 参数量 | 330m | Table 1 |
| 推理门槛 | 单张 12GB GPU 可跑完整模型 | §4.3 |
一句话小结:方法体系是「一份数学骨架 + 一套重型工程 + 四项精心设计的先验」——隐变量边缘化让检索可微,MIPS+异步刷新让它在大规模下可训练,四项归纳偏置让无监督信号精准流向「世界知识」而非语法碎片。
四、证据链:三张表格逐层解读
4.1 Table 1 主结果:以 1/34 的参数反超规模巨兽
评测基准:NQ(79k train / 4k test)、WQ(3k / 2k)、CT(1k / 1k),全部 exact match;CT 答案为正则表达式,故生成式模型不评 CT。
| 模型 | 架构 | 预训练 | NQ | WQ | CT | 参数 |
|---|---|---|---|---|---|---|
| BERT-Baseline (Lee 2019) | Sparse+Transformer | BERT | 26.5 | 17.7 | 21.3 | 110m |
| T5 (base) | Seq2Seq | T5 Multitask | 27.0 | 29.1 | - | 223m |
| T5 (large) | Seq2Seq | T5 Multitask | 29.8 | 32.2 | - | 738m |
| T5 (11b) | Seq2Seq | T5 Multitask | 34.5 | 37.4 | - | 11318m |
| DrQA (Chen 2017) | Sparse+DocReader | N/A | - | 20.7 | 25.7 | 34m |
| HardEM (Min 2019a) | Sparse+Transformer | BERT | 28.1 | - | - | 110m |
| GraphRetriever (Min 2019b) | GraphRetriever+Transformer | BERT | 31.8 | 31.6 | - | 110m |
| PathRetriever (Asai 2019) | PathRetriever+Transformer | MLM | 32.6 | - | - | 110m |
| ORQA (Lee 2019) | Dense+Transformer | ICT+BERT | 33.3 | 36.4 | 30.1 | 330m |
| REALM (X=Wikipedia) | Dense+Transformer | REALM | 39.2 | 40.2 | 46.8 | 330m |
| REALM (X=CC-News) | Dense+Transformer | REALM | 40.4 | 40.7 | 42.9 | 330m |
逐层解读:
- 「超 SOTA 4–16%」的构成:NQ 上 39.2 vs 此前最佳 33.3(ORQA,+5.9);WQ 上 40.2 vs 37.4(T5-11B,+2.8);CT 上 46.8 vs 30.1(ORQA,+16.7)。(推断)CT 的巨大跃升尤其说明问题——CuratedTrec 问题多为嘈杂的真实用户查询,对检索鲁棒性要求最高,正是「预训练过的检索器」与「词面匹配检索器」差距最大的地方。
- 参数效率的断崖对比:REALM-330m 在 NQ/WQ 双双超过 T5-11B。T5 从 base 到 11b 参数增大 50 倍仅提升约 5 点(NQ 27.0→34.5),而 REALM 用与 ORQA 完全相同的架构和参数量,靠更换预训练方法就拿到 +5.9——同样的算力花在「学会查资料」上比花在「背更多资料」上划算得多。
- 检索文档数的极简主义:REALM 仅用 5 篇候选文档取得最佳性能,而其他检索系统通常检索 20–80 篇(主张 E, §4.4)。(推断)这间接证明其 top-1 检索质量远高于对手——排序靠前的一小撮文档已经足够,边缘化只是保险机制而非主力。
- X 与 Z 的微妙 trade-off:预训练语料换成 CC-News 后 NQ/WQ 略升(40.4/40.7)、CT 下降(42.9 vs 46.8)。(推断)新闻文体可能更接近 NQ/WQ 的真实问题分布,而 Wikipedia 内部一致性更利 CT——预训练语料与知识库的关系并非「同源最好」这么简单。
4.2 Table 2 消融:每个组件的贡献被干净地隔离
NQ dev set(EM / Zero-shot Retrieval Recall@5,后者指微调前检索器 top-5 命中金标准文档的比例,用于隔离检索器本身的预训练贡献):
| 配置 | Exact Match | Recall@5 |
|---|---|---|
| REALM(完整) | 38.2 | 38.5 |
| REALM retriever + Baseline encoder | 37.4 | 38.5 |
| Baseline retriever + REALM encoder | 35.3 | 13.9 |
| Baseline(= ORQA 复现) | 31.3 | 13.9 |
| REALM with random uniform masks | 32.3 | 24.2 |
| REALM with random span masks | 35.3 | 26.1 |
| 30× stale MIPS | 28.7 | 15.1 |
- 检索器预训练是主要增益来源:只换检索器,Recall@5 从 13.9 → 38.5(近 3 倍),EM 从 31.3 → 37.4。只换编码器也能到 35.3,但两者协同才达 38.2——组件各自受益、联合最优。
- Salient span masking 至关重要:完整版 38.2 → random span 35.3 → random uniform 32.3。论文指出这种掩码策略对标准 BERT 训练并不关键,只在「隐变量学习」场景下敏感。(推断)机理在于:随机掩码的梯度大部分流向语法补全路径,检索路径收到的有效功劳分配被稀释;显著片段掩码强制每条样本都必须「过检索」才能答好。
- 索引新鲜度不可妥协:刷新间隔拉长 30 倍后 EM 从 38.2 → 28.7,甚至低于 ORQA 基线——检索增强训练不是「挂个向量库就完事」,索引与参数的同步漂移是训练稳定性的生命线。
4.3 Table 3 案例:无监督检索确实在工作
掩码语句:"An equilateral triangle is easily constructed using a straightedge and compass, because 3 is a __prime."(答案 "Fermat" 占 3 个 wordpiece)
- (a) BERT 无检索:p(y="Fermat"|x) = 1.1×10⁻¹⁴;
- (b) REALM 条件于检出文档 *"257 is...a Fermat prime..."*:p(y="Fermat"|x,z) = 1.0;
- (c) REALM 对 top-8 文档边缘化:p(y="Fermat"|x) = 0.129。
解读:这个案例发生在预训练阶段(无任何监督),却完成了「识别知识缺口 → 检索到含答案的数论文档 → 抽取答案」的完整链条。条件概率 1.0 说明编码器一旦看到正确文档就能确定作答;边缘概率 0.129 比 BERT 高出约 13 个数量级,但离 1 尚远——top-8 中仍有大量无关文档稀释概率。(推断)这也暗示当时若改进排序或加大 k,收益空间仍然存在。
一句话小结:证据体系呈金字塔形——Table 1 定胜负(4–16% 提升、1/34 参数反超),Table 2 拆归因(检索器为主、掩码策略与索引新鲜度缺一不可),Table 3 给机理(无监督链条真实成立);三层互相咬合,主结论可信度高。
五、批判性分析:局限的深层含义与独立疑点
5.1 作者自述四项局限
- 仅 Open-QA 验证:只在 Open-QA 上微调评估,未覆盖更广下游任务。(推断)「检索增强预训练对分类、摘要、生成是否同样有效」在当时悬而未决,后来 RAG 等工作部分填补了空白;
- 单一 minimal instantiation:归纳偏置组合与架构只是极简实现,未充分探索设计空间;
- 微调阶段不刷新索引:只建一次索引、Embed_doc 冻结(仅 query 侧更新)。作者自己指出持续刷新可能进一步提分——即 Table 2 中 30× stale 的教训在微调阶段被有意容忍;
- 语料选择未穷尽:未尝试 SQuAD 类阅读理解数据做预训练语料,作者认为 REALM 也能从中受益。
5.2 独立观察的四项疑点
- 「无监督」成色的折扣——间接依赖强监督:salient span masking 依赖 CoNLL-2003 训练的 NER tagger,这是人工标注数据的产物。严格说 REALM 是「弱监督引导的无监督」。这不损害主结论,但 "first unsupervised retriever" 的表述应打引号理解;(推断)这个细节预示了后续「完全免标注的自监督检索 vs 借助结构先验」的长期路线之争。
- 算力门槛与工程复杂度:64 TPU 训练 + 16 TPU 建索引 + 异步双 job 流水线,复现门槛极高。(推断)这解释了为何端到端检索预训练在当时跟进者寥寥——直到 DPR(2020-03)用更轻量的双塔对比学习方案出现,「稠密检索」才平民化。
- 知识时效与库更新成本:文档库固定为 Wikipedia 2018-12-20 快照,推理时无法注入新知识;升级语料需全量重嵌入重建索引。「显式知识」解决了可解释、可换库,没有解决可增量更新——这一缺口要到 kNN-LM、RETRO 等非参数化路线才被认真处理。(推断)
- 检索失败无兜底:答案抽取假设「答案是某篇检出文档中的连续片段」(§3.2)——若检索全部失败或答案需要多跳/聚合推理,模型没有逃生通道。(推断)CT 上 46.8 距离满分仍远,相当一部分失败可能正源于此。
5.3 一个时代注脚
REALM 与 RAG(Lewis et al., 2020-05)、DPR 几乎同期出现,共享「稠密检索 + 端到端训练」的思想底座但侧重不同:REALM 强调预训练阶段的知识注入,RAG 强调生成式融合,DPR 把检索器本身抽出来作为独立贡献。(推断)历史最终选择了「RAG」这个名字作为流派标签,而 REALM 的独特遗产在于它证明了「检索可以在预训练阶段就被无监督地学好」——这一思想在后来的 retrieval pre-training 与 RETRO 式架构中反复回响。
六、启示与影响:可迁移的经验与历史坐标
6.1 五条可迁移启示
- 知识外置是对抗规模内卷的杠杆:330m 胜 11,318m 的核心不是算法精巧本身,而是把「记」与「推」解耦——参数负责推理机制,外部索引负责事实存储。凡遇「靠堆容量硬记」的场景(长上下文记忆、私有知识接入、频繁更新的领域知识),都值得优先考虑外置方案;
- 让不可微的操作变得可训练:边缘化是把离散检索嵌入梯度框架的关键技巧(式 1 + top-k 近似)。该模式可推广到任何「离散决策 + 连续评分」结构:代码检索、数据库查询规划、工具选择——只要能写成「对所有候选加权求和」,就能端到端训练;
- 功劳分配公式是通用资产:r(z) 本质上是优势函数在检索场景的实例化,与 RLHF 中 REINFORCE-with-baseline 同构。(推断)读懂这一个公式,就读懂了「联合训练两个模块」的一大类方法;
- 基础设施必须与参数同步进化:30× stale 掉 9.5 点的教训说明,凡是「模型动态 + 静态快照」的组合(向量库、缓存、蒸馏学生网络),都必须设计同步刷新机制,否则静态组件会成为性能天花板甚至毒药;
- 归纳偏置决定自监督信号的质量:同样的 MLM 损失,掩语法词学到的是语言学家,掩专名学到的是图书管理员。设计自监督任务时应追问:这个目标逼模型调用的能力,是我想要的那种吗?
6.2 历史坐标与未来走向
REALM 发表于 BERT(2018)与 GPT-3(2020-05)之间,恰好站在两条路线的分岔口。它给出的答案——知识放外面、检索当隐变量、预训练学检索——在此后的技术谱系中不断重现:
- 直接后裔:DPR(稠密段落检索标准化)、RAG(检索+生成融合,成为工业界标准范式)、RETRO / kNN-LM(非参数化记忆);(推断)
- 思想的远期回响:(推断)LLM 时代的 agentic search、「参数化 vs 非参数化记忆」之辩、以及「用任务损失训练检索器」(今天的 LLM-supervised embedding 训练)都是 REALM 命题的变奏;
- 论文展望的三向延伸(§6, p9):结构化知识(知识图谱入检索)、多语言、多模态——三个方向在后续文献中均已被大幅推进。
一句话小结:REALM 的历史地位不在于某项具体数字,而在于它第一次完整论证了「检索是一种可以被无监督预训练的能力」——此后所有「让模型学会查资料」的工作,都在它画定的坐标系里展开。
总结
《REALM》以一个清晰的命题——世界知识应该存在参数之外——撬动了语言模型的预训练范式:它用隐变量边缘化让检索可微,用 MIPS 与异步索引刷新让百万级语料上的端到端训练可行,用显著片段掩码、空文档、禁平凡检索、ICT 初始化四项先验让无监督信号精准流向「世界知识」。证据链层层咬合:三项基准 4–16% 绝对提升、1/34 参数反超 T5-11B、消融隔离出检索器近 3 倍的 Recall@5 提升、案例展示 10⁻¹⁴ → 0.129 的概率跃迁。它的局限(仅 Open-QA、NER tagger 的监督残留、库不可增量更新、检索失败无兜底)恰恰勾勒出后续五年 RAG 谱系的演进地图。作为「检索增强」思想在预训练阶段的第一次系统性落地,REALM 是理解整个检索增强大模型谱系绕不开的原点。