Fusion-in-Decoder:多篇章检索如何提升生成式问答性能
检索增强生成(RAG)的成败取决于生成器在综合分散于多个文档中的证据时的表现。Izacard 和 Grave 在 2021 年 EACL 发表的论文《利用篇章检索改进生成模型的开放域问答》(Leveraging Passage Retrieval with Generative Models for Open Domain Question Answering),提出了一个看似简单却极具成效的架构优化——独立编码篇章,在解码器中融合——其表现显著优于当时主流的 RAG 框架。我目前研读这篇论文,是因为其设计原则直接对应于账本问答:在决定如何为 Beancount 代理检索分录之前,值得先了解哪种融合策略真正奏效。
论文分析
Lewis 等人最初的 RAG (arXiv:2005.11401) 将稠密检索器与 BART 生成器结合,但强制生成器一次只能基于单个检索到的篇章进行条件化,在篇章上进行序列级(RAG-Sequence)或标记级(RAG-Token)的边际化。Izacard 和 Grave 认为这是核心约束:一个一 次只能看到一个篇章的模型,很难对散布在不同文档中的证据进行交叉验证。
他们的 FiD(Fusion-in-Decoder)方案非常优雅。每个检索到的篇章与问题连接,然后由 T5 编码器独立编码。编码器为每个篇章运行一次——完全可以并行化。接着,解码器同时对所有篇章表示的级联执行交叉注意力(cross-attention)。编码器复杂度随篇章数量线性增长;更关键的是,解码器在每个生成步骤中都可以跨篇章边界进行注意力计算。该论文使用 T5-base 和 T5-large 作为生成器骨干。
核心观点
- 使用 100 个检索篇章的 FiD-large 在 Natural Questions 上达到了 51.4% 的精确匹配(EM),在 TriviaQA open 上达到了 67.6%,相比之下 RAG-Sequence 分别为 47.5% 和 56.1%——提升了约 4 到 11 个百分点。
- 在 Natural Questions 上的性能随篇章数量单调增长:1 个篇章时为 37.3%,10 个时为 48.8%,50 个时为 50.8%,100 个时为 51.4%。边际收益虽有递减但从未逆转。
- 当篇章数量从 10 增加到 100 时,TriviaQA 提升了 6%,Natural Questions 提升了 3.5%——这证明解码器确实在进行聚合,而不仅仅是挑选排名最高的篇章。
- 编码步骤易于并行化:每个(问题,篇章)对是独立处理的,因此实际耗时随硬件扩展呈次线性增长。
- 拥有 7.7 亿参数的 FiD-base 超过了 110 亿参数的闭卷 T5(NQ 上 44.1% 对 36.6%),证明检索能让小模型发挥出远超其体量的实力。
哪些经受住了考验,哪些没有
核心结论是稳健的,并已被广泛复现。这种架构洞察——独立编码、联合解码——确实非常精炼:它避免了直接在编码器前拼接所有篇章会导致的自注意力二次方膨胀,同时仍能让解码器在所有检索证据上拥有全局上下文。
论文几乎没有提到的一点是,解码器的交叉注意力是推理时的瓶颈。交叉注意力必须在每个生成步骤中为每个解码器层加载所有编码器的键值对(K-V pairs),而这些键值张量随篇章数量线性增长。2023 年的一项后续研究 FiDO (arXiv:2212.08153) 表明,用多查询注意力(multi-query attention)替换多头注意力并剪枝交叉注意力层,可以在几乎不损失准确率的情况下实现 7 倍的推理加速——这暗示原始 FiD 解码器对于任务需求来说明显过度设计了。
此外还存在一个论文未探讨的校准差距:它报告的是精确匹配(EM),这奖励了那些恰好生成精确标准答案字符串的系统。对于事实综合任务——即总结多个篇章的发现而非提取片段——精确匹配会低估错误并高估置信度。在金融场景中,一段原本正确的句子中出现错误的数字是严重的失败,此时精确匹配完全是错误的指标。
为什么这对金融 AI 至关重要
Beancount 账本问答本质上是一个多篇章检索问题。像“第三季度我所有账户在差旅上花了多少钱?”这样的问题, 需要综合来自不同日期、账户和商品类型的数十条交易分录。FiD 的核心发现——生成模型能够聚合许多检索到的篇章,且性能随上下文增多而提升——直接令人振奋。
实际的设计启示非常具体:在构建 Beancount 问答层时,检索更多候选分录(50–100 条而非通常的前 5 条)并让生成器共同访问所有分录,可能比依赖重排序(re-ranking)来挑选一个正确答案效果更好。FiD 架构也完美契合账本结构:每条交易分录都可以被独立编码(成本低、可并行),然后由解码器跨所有分录进行综合。
虽然生产环境中的推理成本确实令人担忧,但 FiDO 的后续研究表明,这可以通过架构层面的优化解决且不损失准确率。对于金融代理来说,更紧迫的限制是 FiD 旨在处理生成简短输出的事实性问答。账本分析通常需要多步算术运算——汇总金额、计算比例——而 FiD 的生成器并不会天生将其路由到解释器。将 FiD 风格的融合与 PAL 风格的代码生成头结合,是实现数值准确性的自然下一步。
延伸阅读
- FiDO (arXiv:2212.08153, ACL Findings 2023) —— 通过多查询注意力和交叉注意力剪枝,以 7 倍快的推理速度恢复 FiD 的准确率;在生产环境部署 FiD 之前的必读。
- REALM: Retrieval-Augmented Language Model Pre-Training (arXiv:2002.08909, ICML 2020) —— Guu 等人展示了如何在预训练阶段而非仅在推理阶段整合检索;为 FiD 提供了上游设计动机。
- Atlas: Few-shot Learning with Retrieval Augmented Language Models (arXiv:2208.03299, JMLR 2023) —— Izacard 等人将 FiD 扩展到少样本场 景,并进行了检索器和阅读器的联合训练,是该系列研究中最完整的综合论述。
