🚀 俄羅斯語句子相似度模型rubert-tiny2
這是一個基於俄羅斯語的小型BERT編碼器,能生成高質量的句子嵌入向量。可用於句子相似度任務,如短文本的KNN分類等。
🚀 快速開始
這是 cointegrated/rubert-tiny 的更新版本。這篇俄語文章 提供了更多詳細信息。
與之前版本的不同之處包括:
- 更大的詞彙表:從29564個標記增加到83828個;
- 支持更長的序列:從512增加到2048;
- 句子嵌入向量比以前更接近LaBSE;
- 有意義的片段嵌入(在NLI任務上進行了調優)
- 該模型僅專注於俄語。
該模型可以直接用於生成句子嵌入向量(例如用於短文本的KNN分類),也可以針對下游任務進行微調。
✨ 主要特性
- 詞彙表更大:擁有83828個標記,相比舊版本的29564個有顯著提升。
- 支持長序列:能夠處理長度為2048的序列,而不是之前的512。
- 嵌入更優:句子嵌入向量更接近LaBSE,且有意義的片段嵌入經過NLI任務調優。
- 語言專注:僅針對俄語進行優化。
📦 安裝指南
在使用模型前,需要安裝必要的庫:
pip install transformers sentencepiece
💻 使用示例
基礎用法
可以按照以下方式生成句子嵌入向量:
import torch
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained("cointegrated/rubert-tiny2")
model = AutoModel.from_pretrained("cointegrated/rubert-tiny2")
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
model = SentenceTransformer('cointegrated/rubert-tiny2')
sentences = ["привет мир", "hello world", "здравствуй вселенная"]
embeddings = model.encode(sentences)
print(embeddings)
📄 許可證
本模型採用MIT許可證。
屬性 |
詳情 |
模型類型 |
基於BERT的編碼器,用於句子相似度任務 |
訓練數據 |
未提及 |