模型:

Voicelab/sbert-large-cased-pl

英文

SHerbert大型 - 波兰SentenceBERT

SentenceBERT是预训练的BERT网络的修改版本,使用连体网络和三元组网络结构来生成语义有意义的句子嵌入,可以使用余弦相似性进行比较。训练是基于原论文 Siamese BERT models for the task of semantic textual similarity (STS) 进行的,对训练数据的使用方式进行了轻微修改。该模型的目标是根据给定文本的语义和主题相似性生成不同的嵌入。

语义文本相似性分析两个文本的相似程度。

了解有关模型准备的更多信息,请阅读我们的 blog post

基础训练模型是波兰HerBERT。HerBERT是基于BERT的语言模型。有关详细信息,请参阅:"HerBERT:用于波兰语的高效预训练基于Transformer的语言模型"。

语料库

该模型仅在 Wikipedia 上进行了训练。

标记器

与原始HerBERT实现一样,训练数据集使用字符级字节对编码(CharBPETokenizer)进行子词标记化,词汇表大小为50k个标记。标记器本身是使用tokenizers库进行训练的。

我们推荐您使用标记器的Fast版本,即HerbertTokenizerFast。

用法

from transformers import AutoTokenizer, AutoModel
from sklearn.metrics import pairwise

sbert = AutoModel.from_pretrained("Voicelab/sbert-large-cased-pl")
tokenizer = AutoTokenizer.from_pretrained("Voicelab/sbert-large-cased-pl")

s0 = "Uczenie maszynowe jest konsekwencją rozwoju idei sztucznej inteligencji i metod jej wdrażania praktycznego."
s1 = "Głębokie uczenie maszynowe jest sktukiem wdrażania praktycznego metod sztucznej inteligencji oraz jej rozwoju."
s2 = "Kasparow zarzucił firmie IBM oszustwo, kiedy odmówiła mu dostępu do historii wcześniejszych gier Deep Blue. "

tokens = tokenizer([s0, s1, s2], 
                   padding=True, 
                   truncation=True,
                   return_tensors='pt')
x = sbert(tokens["input_ids"],
           tokens["attention_mask"]).pooler_output

# similarity between sentences s0 and s1
print(pairwise.cosine_similarity(x[0], x[1])) # Result: 0.8011128

# similarity between sentences s0 and s2
print(pairwise.cosine_similarity(x[0], x[2])) # Result: 0.58822715
   

结果

Model Accuracy Source
SBERT-WikiSec-base (EN) 80.42% 1234321
SBERT-WikiSec-large (EN) 80.78% 1234321
sbert-base-cased-pl 82.31% 1236321
sbert-large-cased-pl 84.42% 1237321

许可证

CC BY 4.0

引用

如果您使用此模型,请引用以下论文:

作者

该模型由Voicelab.ai的NLP研究团队训练。

您可以通过 here 与我们联系。