MS MARCO¶
MS MARCO Passage Ranking 是一个用于训练信息检索模型的大型数据集。它包含约50万个来自Bing搜索引擎的真实搜索查询及其对应的回答查询的相关文本段落。
本页面展示了如何训练基于该数据集的Cross Encoder模型,以便在给定查询(关键词、短语或问题)时用于搜索文本段落。
如果你对如何使用这些模型感兴趣,请参阅应用 - 检索与重排序。
已有预训练模型可供使用,你无需自行训练模型。更多信息请参阅预训练的Cross-Encoders。
Cross-Encoder¶
Cross-Encoder 接受两个输入,即查询和可能相关的段落,并返回一个介于0到1之间的分数,表示该段落对于给定查询的相关性。
Cross-Encoder常用于重排序:给定一个可能包含查询相关段落的列表,例如从BM25/Elasticsearch中检索到的,Cross-Encoder会对该列表进行重排序,使得最相关的段落位于结果列表的顶部。
要在MS MARCO数据集上训练Cross-Encoder,请参阅:
train_cross-encoder_scratch.py 使用MS MARCO数据集提供的原始数据从头开始训练Cross-Encoder。
Cross-Encoder知识蒸馏¶
train_cross-encoder_kd.py 使用知识蒸馏设置:Hostätter et al. 为MS MARCO数据集训练了一个包含3个(大型)模型的集成,并对多种(查询,段落)对(50%正样本,50%负样本)进行了分数预测。在此示例中,我们使用知识蒸馏结合一个小型且快速模型,并从教师集成中学习对数分数。这使得性能可与大型模型媲美,同时速度提高了18倍。