🚀 波兰文本重排模型(polish-reranker-base-mse)
这是一个波兰语的文本排序模型,它采用均方误差(MSE)蒸馏方法,在包含140万个查询和1000万个文档的大型文本对数据集上进行训练。该模型能够有效对波兰语文本进行排序,在信息检索等场景中具有重要价值。
✨ 主要特性
- 基于大规模数据集训练:使用由140万个查询和1000万个文档组成的文本对数据集进行训练,数据来源广泛,包括波兰语的MS MARCO训练集、翻译为波兰语的ELI5数据集以及波兰医学问答集。
- 采用MSE蒸馏方法:在训练过程中,学生模型被训练直接复制教师模型的输出,有助于提升模型性能。
- 多框架支持:既可以与sentence-transformers库结合使用,也能在Huggingface Transformers框架下使用。
📦 安装指南
文档未提及具体安装步骤,可参考sentence-transformers
和Huggingface Transformers
库的官方安装说明进行安装。
💻 使用示例
基础用法(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-mse",
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-mse"
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())
📚 详细文档
训练数据
训练数据包含以下几个部分:
- 波兰语的MS MARCO训练集(80万个查询)。
- 翻译为波兰语的ELI5数据集(超过50万个查询)。
- 波兰医学问答集(约10万个查询)。
教师模型和学生模型
- 教师模型:采用了基于MT5 - XXL架构的大型多语言重排模型[unicamp - dl/mt5 - 13b - mmarco - 100k](https://huggingface.co/unicamp - dl/mt5 - 13b - mmarco - 100k)。
- 学生模型:选择了[Polish RoBERTa](https://huggingface.co/sdadas/polish - roberta - base - v2)。
评估结果
该模型在波兰信息检索基准测试的重排器类别中实现了NDCG@10为57.50的成绩。详细结果请参考PIRB排行榜。
📄 许可证
本模型采用Apache 2.0许可证。
📚 引用
@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}
}