RAG-Embedding:基于多层次蒸馏的密集段落检索模型

96 阅读4分钟

一、论文信息

二、概要

问题背景: 在密集段落检索中,检索器和排名器是两个关键组件。检索器通常采用双编码器模型,将查询和文档分别输入到两个预训练模型中,使用生成的向量进行相似度计算。排名器则使用交叉编码器模型,通过将查询和文档连接起来输入到预训练模型中,以获得单词之间的相似性。然而,双编码器模型由于独立编码查询和文档,缺乏它们之间的交互,而交叉编码器模型虽然能够捕获更多的上下文信息,但计算成本高,难以实现实时检索。

方案设计: 在方案设计方面,MD2PR模型的核心在于多层次蒸馏技术。首先,在句子级别,模型使用交叉编码器的输出向量(CLS token)来增强双编码器对句子主题和情感的理解。其次,在单词级别,模型通过优化构建的损失函数,使得双编码器的注意力能够精确地近似于交叉编码器的注意力。此外,为了减少随机负采样引入的偏差,论文提出了一种动态过滤方法,该方法在多次训练迭代中更新阈值,以确保有效地识别假阴性并提高语义表示空间的一致性。

image.png

实验结论: 在MS-MARCO和Natural Questions两个标准数据集上的实验结果表明,MD2PR模型在多个评估指标上优于11个基线模型,包括传统的稀疏检索模型和增强的稀疏检索模型。在MS-MARCO数据集上,MD2PR模型在MR@10和MR@1000指标上分别比最先进的COIL模型提高了1.4%和1.1%。在Natural Questions数据集上,MD2PR模型在R@5、R@20和R@100指标上分别比RocketQA v2模型和CoCondenser模型提高了0.8%、0.5%和0.6%。

三、讨论

  1. MD2PR模型在处理大规模数据集时的计算效率如何,特别是在实时检索应用中?

    答案:MD2PR模型通过多层次蒸馏技术,使得双编码器在检索阶段可以独立工作,避免了交叉编码器的高计算成本。在推理阶段,双编码器可以预先对文档进行编码,然后仅计算查询的编码,并与文档编码进行相似度计算,显著减少了从输入到输出的计算成本和延迟。这使得MD2PR模型特别适合于实时检索应用,如搜索引擎。

  2. MD2PR模型如何处理和优化假阴性样本,以提高模型的泛化能力和性能?

    答案:为了减少假阴性样本对模型训练的影响,MD2PR引入了一种动态过滤方法。该方法根据排名器的得分,将得分高于给定正样本的文档视为假阴性,并将其标记为负无穷大,从而在蒸馏过程中排除这些样本。这种方法有效地过滤掉了不适当的数据,使得特征空间更加完整和有效,从而提高了模型的泛化能力和性能。

  3. MD2PR模型在不同规模的编码器模型上的表现如何,以及模型大小差异对蒸馏效果的影响?

    答案:实验结果表明,使用较大规模的编码器模型进行蒸馏通常可以提高模型性能。然而,如果编码器和排名器之间的模型大小差异不大,模型性能可能会更好。例如,当检索器使用Bert(base)模型,而排名器使用DeBERTa(large)模型时,模型在MS-MARCO数据集上的MR@1000指标达到了97.4%。然而,当检索器是AlBert(base)和排名器是DeBERTa(xlarge)时,尽管模型大小差异很大,但MR@1000指标仅为97.2%。这表明模型大小差异并不一定导致性能提升,过大的差异可能导致信息损失,而适当的差异可能有助于蒸馏过程。