模型:
Voicelab/sbert-large-cased-pl
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 与我们联系。