🚀 波兰语重排器基础RankNet模型
这是一个波兰语文本排序模型,它基于140万个查询和1000万个文档组成的大规模文本对数据集,使用 RankNet损失 进行训练。该模型在波兰语信息检索任务中具有重要价值,能够有效对文本进行排序。
✨ 主要特性
- 训练数据丰富:训练数据包含三部分,分别是波兰语MS MARCO训练集(80万个查询)、翻译成波兰语的ELI5数据集(超过50万个查询)以及波兰语医学问答集(约10万个查询)。
- 模型架构选择合理:采用 unicamp-dl/mt5-13b-mmarco-100k 作为教师模型,它是基于MT5 - XXL架构的大型多语言重排器;选择 波兰语RoBERTa 作为学生模型。
- 独特的损失计算方法:与常用的逐点损失不同,RankNet方法根据查询和文档对计算损失,具体基于文档与查询的相关性排序的相对顺序计算损失。
📦 安装指南
文档未提及具体安装步骤,跳过该章节。
💻 使用示例
基础用法
你可以使用 sentence-transformers 库以如下方式使用该模型:
from sentence_transformers import CrossEncoder
import torch.nn
query = "Jak dożyć 100 lat?"
answers = [
"Trzeba zdrowo się odżywiać i uprawiać sport.",
"Trzeba pić alkohol, imprezować i jeździć szybkimi autami.",
"Gdy trwała kampania politycy zapewniali, że rozprawią się z zakazem niedzielnego handlu."
]
model = CrossEncoder(
"sdadas/polish-reranker-base-ranknet",
default_activation_function=torch.nn.Identity(),
max_length=512,
device="cuda" if torch.cuda.is_available() else "cpu"
)
pairs = [[query, answer] for answer in answers]
results = model.predict(pairs)
print(results.tolist())
高级用法
该模型也可以使用Huggingface Transformers库以如下方式使用:
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import numpy as np
query = "Jak dożyć 100 lat?"
answers = [
"Trzeba zdrowo się odżywiać i uprawiać sport.",
"Trzeba pić alkohol, imprezować i jeździć szybkimi autami.",
"Gdy trwała kampania politycy zapewniali, że rozprawią się z zakazem niedzielnego handlu."
]
model_name = "sdadas/polish-reranker-base-ranknet"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)
texts = [f"{query}</s></s>{answer}" for answer in answers]
tokens = tokenizer(texts, padding="longest", max_length=512, truncation=True, return_tensors="pt")
output = model(**tokens)
results = output.logits.detach().numpy()
results = np.squeeze(results)
print(results.tolist())
📚 详细文档
评估结果
该模型在波兰语信息检索基准测试的重排器类别中实现了 NDCG@10 为 60.32 的成绩。详细结果请查看 PIRB排行榜。
引用信息
@article{dadas2024assessing,
title={Assessing generalization capability of text ranking models in Polish},
author={Sławomir Dadas and Małgorzata Grębowiec},
year={2024},
eprint={2402.14318},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
📄 许可证
本项目采用Apache 2.0许可证。