mmarco-mMiniLMv2-L12-H384-v1 项目介绍
mmarco-mMiniLMv2-L12-H384-v1 是一个跨多语言的交叉编码模型,旨在进行信息检索。此模型主要基于经过机器翻译的 MS MARCO 数据集,即 MMARCO。模型的训练数据通过 Google 翻译被译成了14种语言,这些语言包括英语、阿拉伯语、中文、荷兰语、法语、德语、印地语、印尼语、意大利语、日语、葡萄牙语、俄语、西班牙语和越南语。而且,从实验结果来看,该模型在其他语言上的表现同样出色。
模型基础
模型的基础是 多语种 MiniLMv2。MiniLMv2 是一种轻量级的多语种预训练模型,特别适合用于各种自然语言处理任务,包括信息检索。
应用方法
该模型可以用于信息检索任务。具体操作过程如下:在给定查询的情况下,使用所有可能的文本段落(例如,通过 ElasticSearch 检索到的段落)对查询进行编码。然后,根据得分对段落进行降序排序。关于更多详细信息,可以参考 SBERT.net 的 Retrieve & Re-rank。如果需要训练代码,可以在 SBERT.net Training MS Marco 找到。
使用 SentenceTransformers 进行操作
安装 SentenceTransformers 后,使用预训练模型变得非常简单。以下是一个使用示例:
from sentence_transformers import CrossEncoder
model = CrossEncoder('model_name')
scores = model.predict([('Query', 'Paragraph1'), ('Query', 'Paragraph2'), ('Query', 'Paragraph3')])
使用 Transformers 进行操作
另外,还可以使用 Transformers 库操作模型:
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
model = AutoModelForSequenceClassification.from_pretrained('model_name')
tokenizer = AutoTokenizer.from_pretrained('model_name')
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)
通过这种方法,用户可以方便地输入查询和相关段落,并得到它们的相关性评分。这样能够有效帮助用户在多语种环境下准确地检索信息。