Improving the Domain Adaptation of Retrieval Augmented Generatio
URLs: https://arxiv.org/abs/2210.02627v1

论文简要 :
本研究旨在提高检索增强生成(RAG)模型在开放领域问答中的领域适应性。通过联合训练RAG的检索器和生成器组件,以及引入辅助训练信号,研究人员提出了RAG-end2end方法,该方法可以适应特定领域的知识库,并在COVID-19、新闻和对话三个领域的数据集上取得了显著的性能提升。
背景信息:
论文背景: 开放领域问答(ODQA)是自然语言理解中的重要任务,传统的ODQA方法通常采用两阶段流程,包括检索器和生成器。然而,对于许多实际场景,很难找到明确标注的上下文-问题-答案三元组。最近,检索增强模型(RAG)引起了研究人员的广泛关注,它将检索和生成阶段合并为一个可微分的架构,并利用外部知识库提取知识。
过去方案: 传统的ODQA方法通常使用TF-IDF和BM25等稀疏向量方法进行文档检索,而近年来研究人员开始使用密集文本表示来建模语义相似性。RAG是一种检索增强架构,它结合了参数化和非参数化记忆,通过将问题编码为密集表示,从索引的维基百科知识库中检索相关段落,并将它们输入到生成器中。RAG在维基百科等知识库上表现良好,但其在特定领域的适应性尚不清楚。
论文的Motivation: 本研究的动机是探索如何提高RAG模型在特定领域的适应性。作者通过联合训练RAG的检索器和生成器组件,并引入辅助训练信号,提出了RAG-end2end方法。通过在COVID-19、新闻和对话三个领域的数据集上进行实验,作者证明了该方法在领域适应性方面取得了显著的性能提升。
方法:
a. 理论背景:
本文旨在扩展RAG(检索增强生成)模型为端到端模型,并使其适应特定领域。这是首次研究RAG在ODQA(开放领域问答)系统的领域适应性。作者通过借鉴REALM模型,探索和扩展了原始RAG架构以实现领域适应性。他们提出了一种异步更新机制,在训练过程中动态更新外部知识库,有助于领域适应。RAG模型由检索器和生成器组成。检索器是在基于维基百科的问答数据集上预训练的DPR(密集通道检索)模型,而生成器是BART(双向自回归变换器)seq2seq语言模型。在训练过程中,检索器进行微调,同时更新通道编码器和外部知识库。作者还引入了一个训练框架,包括主要训练循环、重新编码过程和重新索引过程。重新编码和重新索引步骤是异步进行的,以避免训练循环的停顿。
b. 技术路线:
重新编码过程完成后,始终开始重新索引过程。
外部知识库的新索引加载到主要训练循环中。
在开始FAISS索引过程之前,第一个重新编码过程应该完成并保存新的嵌入。
使用Python多进程句柄来保持重新索引和重新编码过程的顺序。
每个重新编码过程之间的步骤数取决于数据集的大小。
在实验中,使用了由25万个段落组成的知识库和四个专用GPU进行重新编码过程。
平均需要750次更新,但使用更多的GPU和更高数量的CPU核心可以提高计算时间。
训练和知识库的索引更新过程是异步运行的,可能会导致过时的梯度,但不会显著降低模型性能。
注:
eq 是问题编码器(E Q)的缩写,它是一个基于BERT的网络,用于将问题转换为密集向量表示。
ep 是通道编码器(E P)的缩写,它也是一个基于BERT的网络,用于将知识库中的段落转换为密集向量表示。
FAISS索引是一种快速近似最近邻搜索(FAISS)的索引方法,它可以高效地在大规模数据集上进行向量检索。
文中使用的索引是通过FAISS方法得到的,FAISS是一种快速近似最近邻搜索(FAISS)的索引方法,它可以高效地在大规模数据集上进行向量检索。具体来说,文中使用了以下步骤来构建和更新索引:
首先,使用通道编码器(E P)将知识库中的段落转换为密集向量表示,并将这些向量存储在一个FAISS索引中。
然后,在训练过程中,使用异步更新机制,定期重新编码知识库中的段落,并将新的向量替换旧的向量,从而更新FAISS索引。
最后,在检索过程中,使用问题编码器(E Q)将问题转换为密集向量表示,并使用FAISS索引来快速找到与问题最相似的段落。
假设我们有一个包含100万个段落的知识库,每个段落都被转换为一个256维的向量,并且被存储在一个FAISS索引中。如果我们不使用索引,我们就需要将问题也转换为一个256维的向量,并且与知识库中的每个段落的向量进行相似度计算,这可能需要100万次的计算。如果我们使用索引,我们就可以利用FAISS索引的高效检索算法,只需要进行少量的计算,就可以找到与问题最相似的几个段落的向量,并且返回它们对应的段落内容。这样就可以大大提高检索的速度和效率。
索引是一种将向量按照一定的规则组织起来的数据结构,它可以根据问题的向量表示,快速地找到与之最相似的向量表示,从而避免了在整个向量库中进行线性搜索的时间和资源消耗。
FAISS索引的检索算法有多种,其中一种是基于倒排文件(IVF)的方法,它可以分为以下几个步骤:
首先,对向量库进行聚类,将向量分成若干个簇(cluster),每个簇有一个中心(centroid)。
然后,对每个簇建立一个倒排列表(inverted list),记录该簇中所有向量的编号和位置。
最后,在检索过程中,先用问题向量与所有簇中心进行比较,找出最近的n个簇(nprobe),然后在这些簇的倒排列表中搜索与问题向量最相似的k个向量(k)。
这种方法可以大大减少检索的计算量,因为它只需要比较问题向量与n个簇中心和n*k个候选向量,而不是与整个向量库进行比较。当然,这种方法也会牺牲一定的精度,因为它可能会忽略掉一些距离问题向量较近但不在最近簇中的向量。
结果:
a. 详细的实验设置:
本文在三个不同领域的数据集(COVID-19、新闻和对话)上评估了提出的方法。实验结果显示,将DPR检索器作为RAG-end2end机制的一部分进行微调,与单独微调检索器相比,整体结果更好。使用辅助信号也改善了检索器组件和整体准确性。性能改进表明,在ODQA中使用RAG在专门领域中是可行的。
b. 详细的实验结果:
提出的方法在三个不同领域的数据集上进行了评估:COVID-19研究、对话和新闻。实验结果显示,使用领域适应的DPR检索器对RAG-end2end机制进行微调,与单独微调检索器相比,整体结果更好。使用辅助信号也改善了检索器组件和整体准确性。性能改进表明,在ODQA中使用RAG在专门领域中是可行的。