🚀 用于CPU上语义文本相似度(STS)的基础Bert模型
这是一个基础的BERT模型,用于计算俄语句子的紧凑嵌入向量。该模型基于 cointegrated/rubert-tiny2 构建,具有相似的上下文长度(2048)和嵌入维度(312),但层数从3增加到了7。
模型信息
属性 |
详情 |
模型类型 |
用于语义文本相似度的基础Bert模型 |
训练数据集 |
IlyaGusev/gazeta、zloelias/lenta-ru |
许可证 |
MIT |
基础模型 |
cointegrated/rubert-tiny2 |
🚀 快速开始
✨ 主要特性
- 专为俄语句子的语义文本相似度计算设计。
- 基于
cointegrated/rubert-tiny2
模型,增加了层数以提升性能。
- 可在CPU上高效运行。
📦 安装指南
在使用模型前,需要安装必要的库:
pip install transformers sentencepiece
💻 使用示例
基础用法
使用 transformers
库调用模型:
import torch
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained("sergeyzh/rubert-mini-sts")
model = AutoModel.from_pretrained("sergeyzh/rubert-mini-sts")
def embed_bert_cls(text, model, tokenizer):
t = tokenizer(text, padding=True, truncation=True, return_tensors='pt')
with torch.no_grad():
model_output = model(**{k: v.to(model.device) for k, v in t.items()})
embeddings = model_output.last_hidden_state[:, 0, :]
embeddings = torch.nn.functional.normalize(embeddings)
return embeddings[0].cpu().numpy()
print(embed_bert_cls('привет мир', model, tokenizer).shape)
高级用法
使用 sentence_transformers
库调用模型:
from sentence_transformers import SentenceTransformer, util
model = SentenceTransformer('sergeyzh/rubert-mini-sts')
sentences = ["привет мир", "hello world", "здравствуй вселенная"]
embeddings = model.encode(sentences)
print(util.dot_score(embeddings, embeddings))
🔧 技术细节
模型评估指标
模型在 encodechka 基准测试中的评估结果如下:
任务说明:
- 语义文本相似度(STS)
- 释义识别(PI)
- 自然语言推理(NLI)
- 情感分析(SA)
- 毒性识别(TI)
性能和大小
模型在 encodechka 基准测试中的性能和大小指标如下:
📄 许可证
本项目采用 MIT 许可证。