🚀 波蘭文本重排模型(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}
}