论文笔记:Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks
1. 挑战/问题(Challenges/Issues):
这篇论文探讨了大型预训练语言模型在处理知识密集型自然语言处理(NLP)任务时面临的挑战。尽管这些模型在参数中存储了大量事实知识,并在微调后能够在下游NLP任务中取得很好的效果,但它们在访问和精确操作知识方面的能力仍然有限。此外,为模型的决策提供出处(provenance)和更新它们的世界知识仍然是开放的研究问题。
2. 技术贡献(Technical Contribution):
论文提出了一种名为检索增强生成(Retrieval-Augmented Generation, RAG)的通用微调方法,用于结合预训练的参数化和非参数化记忆进行语言生成。具体来说,RAG模型将预训练的序列到序列(seq2seq)模型作为参数化记忆,并将维基百科的密集向量索引作为非参数化记忆,通过预训练的神经检索器进行访问。这种方法允许模型在生成语言时直接修订和扩展知识,并能够检查和解释访问的知识。
models
-
RAG-Sequence Model: RAG-Sequence 模型使用相同的检索文档来生成完整的序列。从技术上讲,它将检索到的文档视为单个潜在变量,该变量被边缘化以通过 top-K 近似获得 seq2seq 概率 p(y|x)。具体来说,使用检索器检索前 K 个文档,生成器生成每个文档的输出序列概率,然后将其边缘化,
-
RAG-Token Model: 在 RAG-Token 模型中,可以为每个目标 token 绘制不同的潜在文档并相应地边缘化。这允许生成器在生成答案时从多个文档中选择内容。具体来说,使用检索器检索前 K 个文档,然后生成器为每个文档生成下一个输出标记的分布,然后进行边缘化,并使用以下输出标记重复该过程。
Retriever: DPR
作者把document index 称为 non-parametric memory
Generator: BART
使用 BART-large ,一个具有 400M 参数的预训练 seq2seq 转换器。为了在从 BART 生成时将输入 x 与检索到的内容 z 结合起来,只需将它们连接起来即可。 BART 使用降噪目标和各种不同的噪声函数进行了预训练。作者把bart generator 称为parametric memory
训练
联合retriever和generator,而无需直接监督应检索哪些文档。给定输入/输出对 (xj, yj) 的微调训练语料库,使用 Adam的随机梯度下降来最小化每个目标的负边际对数似然 Σ_j − log p(y_j|x_j)
。在训练期间,更新文档编码器 BERT_d 的成本很高,作者认为这一步对于强大的性能来说不是必需的,因此保持文档编码器(和索引)fixed,仅微调查询编码器 BERT_q 和 BART generator。
Decoding
在测试时,RAG-Sequence 和 RAG-Token 需要不同的方法来近似 argmax_y p(y|x)
- RAG-Token:RAG-Token 模型可以看作是一个标准的自回归序列到序列生成器,其状态转移概率为:
在解码时,可以将 其插入到一个标准的束搜索(beam decoder)中进行推断。
- RAG-Sequence
3. 评估/实验结果(Results of Evaluation/Experiments):
RAG模型在三个开放域问答任务上设定了新的最高标准,超过了仅参数化的seq2seq模型和特定任务的检索-提取架构。在语言生成任务中,RAG模型比最先进的仅参数化seq2seq基线生成了更具体、更多样化和更事实性的语言。此外,RAG模型在FEVER事实验证任务中取得了接近使用强大检索监督的最先进的管道模型的结果,并且展示了非参数化记忆可以根据世界的变化更新模型的知识。