inference: false
pipeline_tag: sentence-similarity
language:
- bg
license: mit
datasets:
- oscar
- chitanka
- wikipedia
tags:
- torch
基于私有保加利亚语-英语平行数据训练的ROBERTA BASE(区分大小写)模型
这是一个多语言Roberta模型,可用于生成保加利亚语句子的嵌入向量。
该模型基于Sentence-BERT的理念进行训练,核心思想是翻译后的句子应与原句在向量空间中映射到相同位置。
本模型区分大小写:例如"bulgarian"和"Bulgarian"会被视为不同词汇。
训练数据来源于私有保加利亚语-英语平行语料库。
模型后期通过渐进式模块替换技术进行了压缩优化。
使用方式
在PyTorch中使用该模型的示例代码如下:
>>> import scipy
>>> import torch
>>> from transformers import AutoModel, AutoTokenizer
>>>
>>> model = AutoModel.from_pretrained('rmihaylov/roberta-base-nli-stsb-theseus-bg')
>>> tokenizer = AutoTokenizer.from_pretrained('rmihaylov/roberta-base-nli-stsb-theseus-bg')
>>>
>>> def embed(text):
>>> inputs = tokenizer.encode_plus(text, return_tensors='pt')
>>> outputs = model(**inputs)
>>> sequence_output = outputs[0]
>>> input_mask_expanded = inputs['attention_mask'].unsqueeze(-1).expand(sequence_output.size()).float()
>>> embeddings = torch.sum(sequence_output * input_mask_expanded, 1) / torch.clamp(input_mask_expanded.sum(1), min=1e-9)
>>> return embeddings.detach().numpy()[0]
>>>
>>>
>>> query_embedding = embed("饼干由哪些成分组成?")
>>>
>>> questions = [
>>> "什么是饼干?",
>>> "饼干是用什么做的?",
>>> "英国使用饼干这个词吗?",
>>> "饼干在哪里生产?",
>>> "饼干有哪些种类?",
>>> "哪里可以买到饼干?",
>>> "饼干这个词是从哪里来的?",
>>> "什么是饼干怪兽?",
>>> "如何在家自制饼干?",
>>> "一块标准饼干含有多少卡路里?",
>>> "哪些饮料与饼干搭配最佳?",
>>> "饼干也被称为甜点吗?"
>>> ]
>>>
>>> corpus, corpus_embeddings = [], []
>>> for question in questions:
>>> embedding = embed(question)
>>> corpus.append(question)
>>> corpus_embeddings.append(embedding)
>>>
>>> distances = scipy.spatial.distance.cdist([query_embedding], corpus_embeddings, "cosine")[0]
>>>
>>> results = zip(range(len(distances)), distances)
>>> results = sorted(results, key=lambda x: x[1])
>>>
>>> print([[corpus[idx].strip(), (1.0 - distance)] for idx, distance in results])
[['饼干是用什么做的?', 0.9855158537034977],
['饼干在哪里生产?', 0.9774093134195002],
['饼干有哪些种类?', 0.9766014240577192],
['英国使用饼干这个词吗?', 0.9446492058523037],
['什么是饼干怪兽?', 0.9269786184641834],
['哪里可以买到饼干?', 0.9268900421152592],
['什么是饼干?', 0.9188155080718263],
['饼干也被称为甜点吗?', 0.9060368627614406],
['饼干这个词是从哪里来的?', 0.9048309659657036],
['哪些饮料与饼干搭配最佳?', 0.890836765118977],
['如何在家自制饼干?', 0.8878968487540497],
['一块标准饼干含有多少卡路里?', 0.8652821650136402]]