🚀 oguuzhansahin/bi-encoder-mnrl-dbmdz-bert-base-turkish-cased-margin_3.0-msmarco-tr-10k
这是一个 sentence-transformers 模型,它可以将句子和段落映射到一个 768 维的密集向量空间,可用于聚类或语义搜索等任务。
🚀 快速开始
当你安装了 sentence-transformers 后,使用这个模型会变得很容易:
pip install -U sentence-transformers
然后你可以像这样使用该模型:
💻 使用示例
基础用法
from sentence_transformers import SentenceTransformer, util
model = SentenceTransformer('oguuzhansahin/bi-encoder-mnrl-dbmdz-bert-base-turkish-cased-margin_3.0-msmarco-tr-10k')
query = "İstanbul'un nüfusu kaçtır?"
sentences = ["İstanbul'da yaşayan insan sayısı 15 milyonu geçmiştir",
"Londra'nın nüfusu yaklaşık 9 milyondur.",
"İstanbul'da hayat çok zor."]
query_embedding = model.encode(query, convert_to_tensor=True)
sentence_embeddings = model.encode(sentences, show_progress_bar=True)
scores = util.dot_score(query_embedding, sentence_embeddings)[0].cpu().tolist()
doc_score_pairs = list(zip(sentences, scores))
doc_score_pairs = sorted(doc_score_pairs, key=lambda x: x[1], reverse=True)
for doc, score in doc_score_pairs:
print(score, doc)
400.1816711425781 | İstanbul'da yaşayan insan sayısı 15 milyonu geçmiştir
309.97796630859375 | Londra'nın nüfusu yaklaşık 9 milyondur.
133.04507446289062 | İstanbul'da hayat çok zor.
📚 详细文档
评估结果
该模型在 10k 查询翻译的 MSMARCO 开发数据集上进行了评估。
轮次 |
步数 |
余弦相似度准确率@1 |
余弦相似度准确率@3 |
余弦相似度准确率@5 |
余弦相似度准确率@10 |
余弦相似度精确率@1 |
余弦相似度召回率@1 |
余弦相似度精确率@3 |
余弦相似度召回率@3 |
余弦相似度精确率@5 |
余弦相似度召回率@5 |
余弦相似度精确率@10 |
余弦相似度召回率@10 |
余弦相似度平均倒数排名@10 |
余弦相似度归一化折损累积增益@10 |
余弦相似度平均准确率@100 |
点积分数准确率@1 |
点积分数准确率@3 |
点积分数准确率@5 |
点积分数准确率@10 |
点积分数精确率@1 |
点积分数召回率@1 |
点积分数精确率@3 |
点积分数召回率@3 |
点积分数精确率@5 |
点积分数召回率@5 |
点积分数精确率@10 |
点积分数召回率@10 |
点积分数平均倒数排名@10 |
点积分数归一化折损累积增益@10 |
点积分数平均准确率@100 |
0 |
500 |
0.6525787965616046 |
0.7808022922636103 |
0.8197707736389684 |
0.8611747851002866 |
0.6525787965616046 |
0.6301575931232092 |
0.27277936962750715 |
0.7720630372492837 |
0.17286532951289396 |
0.8130730659025788 |
0.0912320916905444 |
0.8564828080229226 |
0.7247057352071669 |
0.7540179789445202 |
0.7229577384633034 |
0.5883954154727794 |
0.7340974212034383 |
0.7799426934097421 |
0.833810888252149 |
0.5883954154727794 |
0.5672158548233047 |
0.25577841451766953 |
0.7242956064947469 |
0.16421203438395413 |
0.772648042024833 |
0.08810888252148998 |
0.82774594078319 |
0.6712877495792965 |
0.7060157817761727 |
0.6695710889515925 |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
... |
训练
该模型使用以下参数进行训练:
数据加载器
torch.utils.data.dataloader.DataLoader
,长度为 311,参数如下:
{'batch_size': 32, 'sampler': 'torch.utils.data.sampler.RandomSampler', 'batch_sampler': 'torch.utils.data.sampler.BatchSampler'}
损失函数
sentence_transformers.losses.MultipleNegativesRankingLoss.MultipleNegativesRankingLoss
,参数如下:
{'scale': 20.0, 'similarity_fct': 'cos_sim'}
fit() 方法的参数
{
"epochs": 5,
"evaluation_steps": 500,
"evaluator": "sentence_transformers.evaluation.InformationRetrievalEvaluator.InformationRetrievalEvaluator",
"max_grad_norm": 1,
"optimizer_class": "<class 'torch.optim.adamw.AdamW'>",
"optimizer_params": {
"lr": 2e-05
},
"scheduler": "WarmupLinear",
"steps_per_epoch": null,
"warmup_steps": 1000,
"weight_decay": 0.01
}
完整模型架构
SentenceTransformer(
(0): Transformer({'max_seq_length': 256, 'do_lower_case': False}) with Transformer model: BertModel
(1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False})
)
引用与作者
文档中未提供相关信息。