🚀 SHerbert - 波兰语 SentenceBERT
SentenceBERT 是对预训练 BERT 网络的一种改进,它使用孪生网络和三元组网络结构来导出具有语义意义的句子嵌入,这些嵌入可以使用余弦相似度进行比较。训练基于原始论文 用于语义文本相似度 (STS) 任务的孪生 BERT 模型,并对训练数据的使用方式进行了轻微修改。该模型的目标是根据给定文本的语义和主题相似度生成不同的嵌入。
语义文本相似度分析用于分析两段文本的相似程度。
在我们的 博客文章 中可以了解更多关于该模型的训练过程。
基础训练模型是波兰语 HerBERT。HerBERT 是一个基于 BERT 的语言模型。更多详细信息,请参考:“HerBERT: Efficiently Pretrained Transformer-based Language Model for Polish”。
✨ 主要特性
- 基于改进的 BERT 网络,能生成语义有意义的句子嵌入。
- 训练数据使用方式有轻微调整,以适应语义和主题相似度分析。
- 基于波兰语 HerBERT 模型进行训练。
📦 安装指南
文档未提及具体安装步骤,可参考 Hugging Face 相关模型的通用安装方式。
💻 使用示例
基础用法
from transformers import AutoTokenizer, AutoModel
from sklearn.metrics import pairwise
sbert = AutoModel.from_pretrained("Voicelab/sbert-base-cased-pl")
tokenizer = AutoTokenizer.from_pretrained("Voicelab/sbert-base-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 研究团队训练。
您可以 在此 与我们联系。