pipeline_tag: 句子相似度
language:
- 波兰语
tags:
- 句子转换器
- 特征提取
- 句子相似度
- 变换器模型
datasets:
- ipipan/polqa
- ipipan/maupqa
license: 知识共享署名-相同方式共享4.0协议
widget:
- source_sentence: "问题:兹比格涅夫·赫伯特出生在哪个城市?"
sentences:
- "兹比格涅夫·赫伯特兹比格涅夫·博莱斯瓦夫·雷沙尔德·赫伯特(1924年10月29日生于利沃夫,1998年7月28日卒于华沙)——波兰诗人、散文家和剧作家。"
- "兹比格涅夫·赫伯特1968年夏天,赫伯特应诗歌中心邀请在美国度过。"
- "赫伯特·乔治·威尔斯赫伯特·乔治·威尔斯(1866年9月21日生于布罗姆利,1946年8月13日卒于伦敦)——英国作家和生物学家。"
example_title: "兹比格涅夫·赫伯特"

银色检索器基础版 (v1.1)
银色检索器模型将波兰语句子或段落编码为768维稠密向量空间,可用于文档检索或语义搜索等任务。
该模型基于HerBERT-base初始化,并在PolQA和MAUPQA数据集上进行了8,000步微调,批量大小为8,192。详情请参阅银色检索器:推进波兰语问答的神经段落检索。
评估
模型 |
平均[准确率] |
平均[NDCG] |
PolQA [准确率] |
PolQA [NDCG] |
Allegro FAQ [准确率] |
Allegro FAQ [NDCG] |
法律问题 [准确率] |
法律问题 [NDCG] |
BM25 |
74.87 |
51.81 |
61.35 |
24.51 |
66.89 |
48.71 |
96.38 |
82.21 |
BM25 (词元化) |
80.46 |
55.44 |
71.49 |
31.97 |
75.33 |
55.70 |
94.57 |
78.65 |
MiniLM-L12-v2 |
62.62 |
39.21 |
37.24 |
11.93 |
71.67 |
51.25 |
78.97 |
54.44 |
LaBSE |
64.89 |
39.47 |
46.23 |
15.53 |
67.11 |
46.71 |
81.34 |
56.16 |
mContriever-Base |
86.31 |
60.37 |
78.66 |
36.30 |
84.44 |
67.38 |
95.82 |
77.42 |
E5-Base |
91.58 |
66.56 |
86.61 |
46.08 |
91.89 |
75.90 |
96.24 |
77.69 |
ST-DistilRoBERTa |
73.78 |
48.29 |
48.43 |
16.73 |
84.89 |
64.39 |
88.02 |
63.76 |
ST-MPNet |
76.66 |
49.99 |
56.80 |
21.55 |
86.00 |
65.44 |
87.19 |
62.99 |
HerBERT-QA |
84.23 |
54.36 |
75.84 |
32.52 |
85.78 |
63.58 |
91.09 |
66.99 |
银色检索器 v1 |
92.45 |
66.72 |
87.24 |
43.40 |
94.56 |
79.66 |
95.54 |
77.10 |
银色检索器 v1.1 |
93.18 |
67.55 |
88.60 |
44.88 |
94.00 |
79.83 |
96.94 |
77.95 |
图例:
- Acc 表示前10的准确率
- NDCG 表示前10的归一化折损累积增益
使用方式
准备输入
模型在问题-段落对上训练,输入格式与训练时相同效果最佳:
- 我们在问题开头添加了短语
Pytanie:
(问题:)。
- 训练段落由
标题
和文本
通过特殊标记</s>
连接而成。即使段落没有标题
,仍建议在段落前添加</s>
标记。
- 虽然训练时使用了点积,但模型通常与余弦距离配合效果更好。
使用Sentence-Transformers推理
安装sentence-transformers后使用此模型非常简单:
pip install -U sentence-transformers
然后可以这样使用模型:
from sentence_transformers import SentenceTransformer
sentences = [
"Pytanie: W jakim mieście urodził się Zbigniew Herbert?",
"Zbigniew Herbert</s>Zbigniew Bolesław Ryszard Herbert (ur. 29 października 1924 we Lwowie, zm. 28 lipca 1998 w Warszawie) – polski poeta, eseista i dramaturg.",
]
model = SentenceTransformer('ipipan/silver-retriever-base-v1.1')
embeddings = model.encode(sentences)
print(embeddings)
使用HuggingFace Transformers推理
不使用sentence-transformers时,可以这样使用模型:首先将输入通过变换器模型,然后需要在上下文化词嵌入上应用正确的池化操作。
from transformers import AutoTokenizer, AutoModel
import torch
def cls_pooling(model_output, attention_mask):
return model_output[0][:,0]
sentences = [
"Pytanie: W jakim mieście urodził się Zbigniew Herbert?",
"Zbigniew Herbert</s>Zbigniew Bolesław Ryszard Herbert (ur. 29 października 1924 we Lwowie, zm. 28 lipca 1998 w Warszawie) – polski poeta, eseista i dramaturg.",
]
tokenizer = AutoTokenizer.from_pretrained('ipipan/silver-retriever-base-v1.1')
model = AutoModel.from_pretrained('ipipan/silver-retriever-base-v1.1')
encoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors='pt')
with torch.no_grad():
model_output = model(**encoded_input)
sentence_embeddings = cls_pooling(model_output, encoded_input['attention_mask'])
print("句子嵌入:")
print(sentence_embeddings)
完整模型架构
SentenceTransformer(
(0): Transformer({'max_seq_length': 512, 'do_lower_case': False}) with Transformer model: BertModel
(1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': True, 'pooling_mode_mean_tokens': False, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False})
)
附加信息
模型创建者
该模型由波兰科学院计算机科学研究所的Piotr Rybak创建。
本工作得到了欧洲区域发展基金的支持,作为2014-2020智能增长运营计划的一部分,CLARIN——共同语言资源和技术基础设施,项目编号POIR.04.02.00-00C002/19。
许可信息
知识共享署名-相同方式共享4.0协议
引用信息
@inproceedings{rybak-ogrodniczuk-2024-silver-retriever,
title = "银色检索器:推进波兰语问答的神经段落检索",
author = "Rybak, Piotr and
Ogrodniczuk, Maciej",
editor = "Calzolari, Nicoletta and
Kan, Min-Yen and
Hoste, Veronique and
Lenci, Alessandro and
Sakti, Sakriani and
Xue, Nianwen",
booktitle = "2024年计算语言学、语言资源与评估联合国际会议论文集(LREC-COLING 2024)",
month = 五月,
year = "2024",
address = "意大利都灵",
publisher = "ELRA和ICCL",
url = "https://aclanthology.org/2024.lrec-main.1291",
pages = "14826--14831",
abstract = "现代开放域问答系统通常依赖准确高效的检索组件来查找包含回答问题所需事实的段落。最近,神经检索器因其卓越性能比词汇替代方案更受欢迎。然而,大多数工作涉及英语或汉语等流行语言。对于波兰语等其他语言,可用模型较少。在这项工作中,我们提出了银色检索器,这是一个针对波兰语的神经检索器,基于手动或弱标记数据集的多样化集合训练。银色检索器比其他波兰语模型取得了更好的结果,并与更大的多语言模型竞争。我们与模型一起开源了五个新的段落检索数据集。",
}