🚀 SHerbert large - 波兰语 SentenceBERT
SentenceBERT 是预训练 BERT 网络的一种改进,它使用孪生网络和三元组网络结构来导出语义上有意义的句子嵌入,这些嵌入可以使用余弦相似度进行比较。训练基于原始论文 用于语义文本相似度 (STS) 任务的孪生 BERT 模型,并对训练数据的使用方式进行了轻微修改。该模型的目标是根据给定文本的语义和主题相似度生成不同的嵌入。
语义文本相似度分析两个文本片段的相似程度。
在我们的 博客文章 中了解更多关于该模型的制备方法。
基础训练模型是波兰语 HerBERT。HerBERT 是一个基于 BERT 的语言模型。更多详情,请参考:“HerBERT: Efficiently Pretrained Transformer-based Language Model for Polish”。
✨ 主要特性
- 基于 SentenceBERT 架构,能生成语义有意义的句子嵌入。
- 以波兰语 HerBERT 为基础训练模型。
- 可用于句子相似度分析。
📦 安装指南
文档未提及安装步骤,跳过此章节。
💻 使用示例
基础用法
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
print(pairwise.cosine_similarity(x[0], x[1]))
print(pairwise.cosine_similarity(x[0], x[2]))
📚 详细文档
语料库
该模型仅在 维基百科 上进行训练。
分词器
与原始 HerBERT 实现一样,训练数据集使用字符级字节对编码(CharBPETokenizer)将其分词为子词,词汇表大小为 50k 个标记。分词器本身使用 tokenizers 库进行训练。
我们强烈建议您使用分词器的快速版本,即 HerbertTokenizerFast。
结果
模型 |
准确率 |
来源 |
SBERT-WikiSec-base (EN) |
80.42% |
https://arxiv.org/abs/1908.10084 |
SBERT-WikiSec-large (EN) |
80.78% |
https://arxiv.org/abs/1908.10084 |
sbert-base-cased-pl |
82.31% |
https://huggingface.co/Voicelab/sbert-base-cased-pl |
sbert-large-cased-pl |
84.42% |
https://huggingface.co/Voicelab/sbert-large-cased-pl |
🔧 技术细节
文档未提供具体技术细节,跳过此章节。
📄 许可证
CC BY 4.0
📖 引用
如果您使用此模型,请引用以下论文:
👥 作者
该模型由 Voicelab.ai 的 NLP 研究团队训练。
您可以 在此 与我们联系。