“ arxiv今天才挂出来的,效果确实挺好
https://arxiv.org/pdf/2402.03216.pdf
Bge-M3 具有多语言性(Multi-Linguality)、多功能性(Multi-Functionality)和多粒度性(Multi-Granularity)的特点。M3-Embedding能够支持超过100种工作语言,为多语言和跨语言检索任务提供了新的最先进性能。它能够同时执行嵌入模型的三种常见检索功能:密集检索(Dense Retrieval)、多向量检索(Multi-Vector Retrieval)和稀疏检索(Sparse Retrieval),为实际的信息检索(IR)应用提供了统一的模型基础。M3-Embedding能够处理不同粒度的输入,从短句到长达8192个标记的长文档。
- Self-Knowledge Distillation: 将不同检索功能的相关性分数整合为教师信号,以增强训练质量。在M3-Embedding中,使用[CLS]嵌入进行密集检索,而其他token的嵌入用于稀疏检索和多向量检索。基于集成学习原理,这些异构预测器可以组合成更强的预测器。通过知识蒸馏,将不同检索功能的相关性分数作为教师信号,用于通过知识蒸馏增强学习过程
- Efficient Batching Strategy: 为了确保嵌入的区分性,优化了批处理策略,实现了大批量大小和高训练吞吐量。训练数据通过按序列长度分组进行预处理,从而在生成小批量时从相同组中采样训练实例,显著减少了序列填充,并更有效地利用了GPU。此外,通过固定随机种子来采样不同GPU的训练数据,确保了负载平衡并最小化了每个训练步骤的等待时间。对于长序列训练数据,通过梯度检查点(Gradient Checkpointing)和跨GPU广播(Cross-GPU Broadcasting)进一步划分小批量,从而显著增加了批量大小。
- Multi-Stage Training Process: 训练过程分为多个阶段。首先,使用大量无监督数据对文本编码器进行预训练,其中仅训练密集检索的基本形式。然后,在第二阶段应用自知识蒸馏,使用标记和合成数据对嵌入模型进行微调,以建立三种检索功能。在这个阶段,为每个查询引入硬负样本,并使用ANCE方法(Xiong et al., 2020)进行处理。
- Data Curation: M3-Embedding的训练需要大规模和多样化的多语言数据集。文章中提到了从三个来源进行数据收集:无监督数据、标记数据和合成数据。这些数据源互补,应用于训练过程的不同阶段,为多语言文本嵌入奠定了基础。
- Hybrid Retrieval:统一了嵌入模型的所有三种常见检索功能。在检索过程中,首先可以单独使用每种方法检索候选结果,然后基于集成的相关性分数对最终检索结果进行重排序。
稀疏检索步骤:
- 词项权重计算 :
- 对于query中的每个词(在这项工作中,词对应于文本中的一个token),M3-Embedding使用特定的权重矩阵(Wlex)来映射文本编码器的隐藏状态到一个浮点数,从而计算每个词项的权重。具体来说,对于查询中的第i个词项,其权重wqt计算公式为:其中,是权重矩阵,是query文本编码器的第i个token的隐藏状态。如果一个词项在query中出现多次,只保留其最大权重。
- 文档词项权重 :
- 类似地,对于文档中的每个词项,也计算其权重。这有助于后续计算query和文档之间的相关性分数。
- 相关性分数计算 :
- 稀疏检索的相关性分数是基于query和文档中共现词项(即同时出现在query和文档中的词项)的权重之和。具体计算公式为:这里,( q \cap p )表示查询和文档中共现的词项集合。
- 检索过程 :
- 在检索过程中,首先使用密集检索方法(Dense Retrieval)获取一组候选文档。然后,使用稀疏检索的相关性分数对这些候选文档进行重排序,以确定最终的检索结果。
在M3-Embedding中,稀疏检索功能是通过模型的输出嵌入来实现的,这些嵌入能够捕捉到文本中每个词项的语义信息。通过这种方式,稀疏检索能够有效地处理那些在查询和文档中共同出现的词项,从而提高检索的准确性。在实验中,M3-Embedding的稀疏检索功能在多种语言上都表现出了优于传统BM25方法的性能。