🚀 用于MS Marco的交叉编码器
本模型专为信息检索任务而设计,在MS Marco段落排序任务上进行训练,能够对给定查询与候选段落进行相关性排序,有效提升信息检索的准确性和效率。
🚀 快速开始
本模型可用于信息检索:给定一个查询,将该查询与所有可能的段落(例如通过ElasticSearch检索得到的段落)进行编码,然后按降序对段落进行排序。更多详细信息请参阅 SBERT.net 检索与重排序。训练代码可在此处获取:SBERT.net 训练MS Marco
✨ 主要特性
- 训练数据:基于 MS Marco段落排序 任务数据进行训练。
- 应用场景:适用于信息检索场景,可对查询和段落进行相关性排序。
📦 安装指南
若要使用本模型,你需要安装 SentenceTransformers 库。你可以使用以下命令进行安装:
pip install sentence-transformers
💻 使用示例
基础用法
当你安装了 SentenceTransformers 库后,使用起来非常简单。你可以像这样使用预训练模型:
from sentence_transformers import CrossEncoder
model = CrossEncoder('cross-encoder/ms-marco-TinyBERT-L2')
scores = model.predict([
("How many people live in Berlin?", "Berlin had a population of 3,520,031 registered inhabitants in an area of 891.82 square kilometers."),
("How many people live in Berlin?", "Berlin is well known for its museums."),
])
print(scores)
高级用法
你也可以使用 transformers
库来使用本模型:
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
model = AutoModelForSequenceClassification.from_pretrained('cross-encoder/ms-marco-TinyBERT-L2')
tokenizer = AutoTokenizer.from_pretrained('cross-encoder/ms-marco-TinyBERT-L2')
features = tokenizer(['How many people live in Berlin?', 'How many people live in Berlin?'], ['Berlin has a population of 3,520,031 registered inhabitants in an area of 891.82 square kilometers.', 'New York City is famous for the Metropolitan Museum of Art.'], padding=True, truncation=True, return_tensors="pt")
model.eval()
with torch.no_grad():
scores = model(**features).logits
print(scores)
📚 详细文档
性能表现
在下表中,我们提供了各种预训练的交叉编码器及其在 TREC深度学习2019 和 MS Marco段落重排序 数据集上的性能表现。
模型名称 |
NDCG@10 (TREC DL 19) |
MRR@10 (MS Marco Dev) |
每秒处理文档数 |
版本2模型 |
|
|
|
cross-encoder/ms-marco-TinyBERT-L2-v2 |
69.84 |
32.56 |
9000 |
cross-encoder/ms-marco-MiniLM-L2-v2 |
71.01 |
34.85 |
4100 |
cross-encoder/ms-marco-MiniLM-L4-v2 |
73.04 |
37.70 |
2500 |
cross-encoder/ms-marco-MiniLM-L6-v2 |
74.30 |
39.01 |
1800 |
cross-encoder/ms-marco-MiniLM-L12-v2 |
74.31 |
39.02 |
960 |
版本1模型 |
|
|
|
cross-encoder/ms-marco-TinyBERT-L2 |
67.43 |
30.15 |
9000 |
cross-encoder/ms-marco-TinyBERT-L4 |
68.09 |
34.50 |
2900 |
cross-encoder/ms-marco-TinyBERT-L6 |
69.57 |
36.13 |
680 |
cross-encoder/ms-marco-electra-base |
71.99 |
36.41 |
340 |
其他模型 |
|
|
|
nboost/pt-tinybert-msmarco |
63.63 |
28.80 |
2900 |
nboost/pt-bert-base-uncased-msmarco |
70.94 |
34.75 |
340 |
nboost/pt-bert-large-msmarco |
73.36 |
36.48 |
100 |
Capreolus/electra-base-msmarco |
71.23 |
36.89 |
340 |
amberoad/bert-multilingual-passage-reranking-msmarco |
68.40 |
35.54 |
330 |
sebastian-hofstaetter/distilbert-cat-margin_mse-T2-msmarco |
72.82 |
37.88 |
720 |
注意:运行时间是在V100 GPU上计算得出的。
📄 许可证
本项目采用 Apache-2.0 许可证。