SVALabs - 德语无大小写Electra双编码器
本仓库展示我们用于段落检索的德语无大小写双编码器模型。
该模型基于german-nlp-group的德语electra无大小写模型进行训练,并使用sentence-transformers工具包微调为段落检索双编码器。为此,我们采用fairseq-wmt19-en-de翻译模型对MSMARCO-Passage-Ranking数据集进行了德语翻译。
模型详情
性能表现
我们在GermanDPR测试集上评估模型,并遵循BEIR的基准框架。为对比结果,我们在相同测试数据上进行了BM25评估,结果如下表所示。我们从测试集中提取每个带有正负上下文的段落并去重,最终语料库包含2871个段落和1025个查询。
模型 |
NDCG@1 |
NDCG@5 |
NDCG@10 |
Recall@1 |
Recall@5 |
Recall@10 |
BM25 |
0.1463 |
0.3451 |
0.4097 |
0.1463 |
0.5424 |
0.7415 |
本模型 |
0.4624 |
0.6218 |
0.6425 |
0.4624 |
0.7581 |
0.8205 |
使用方法
使用sentence-transformers
工具包(详见GitHub项目UKPLab/sentence-transformers):
from sentence_transformers import SentenceTransformer
bi_model = SentenceTransformer("svalabs/bi-electra-ms-marco-german-uncased")
语义搜索示例
import numpy as np
from sklearn.metrics.pairwise import cosine_similarity
K = 3
docs = [
"Netflix终于上线了我最喜爱剧集的新季。",
"猎豹正在追捕猎物。",
"我们机构新安装了一套考勤系统。",
"我的医生建议我最好找骨科专家咨询这个问题。",
"目前医生还无法为我提供疫苗接种预约。",
"我女儿在克里特岛用贝壳堆了个漂亮的沙堡。",
"历史中心(centro storico)位于威尼斯泻湖的100多个岛屿上。",
"为保障未来财富安全,应考虑其他投资策略。",
"恐龙时代的终结很可能是由于巨型陨石撞击地球。",
"ALDI超市的香蕉正在促销。",
"地球形成于45亿年前。",
"金融股推动DAX指数上涨超6% 法兰克福/美因河畔报道。",
"DAX指数转跌。经济数据和获利回吐拖累法兰克福/美因河畔。",
]
queries = [
"dax上涨",
"dax下跌",
"膝盖疼痛问题",
"休假时长统计软件",
"捕食中的猛兽",
"地球年龄",
"我们的星球有多少岁?",
"如何保障资本",
"超市食品降价",
"霸王龙灭绝原因",
"剧集流媒体"
]
features_docs = bi_model.encode(docs)
features_queries = bi_model.encode(queries)
sim = cosine_similarity(features_queries, features_docs)
for i, query in enumerate(queries):
ranks = np.argsort(-sim[i])
print("查询:", query)
for j, r in enumerate(ranks[:K]):
print(f"[{j}: {sim[i, r]: .3f}]", docs[r])
print("-"*96)
联系方式
- Nicole Wochatz, nicole.wochatz@sva.de
- Stefan Kammer, stefan.kammer@sva.de
- Bonian Riebe, bonian.riebe@sva.de
参考文献