Rubert Mini Uncased
模型简介
该模型用于计算俄语和英语句子的嵌入向量,通过蒸馏FRIDA的嵌入向量获得。嵌入向量大小为384,层数为7,上下文大小为512个标记。模型支持多种前缀功能以提高不同任务的性能。
模型特点
多语言支持
支持俄语和英语句子的嵌入向量计算
前缀功能
继承自FRIDA的多任务前缀功能,可针对不同任务优化性能
微型模型
轻量级设计,嵌入向量大小为384,层数为7,适合资源有限的环境
不区分大小写
uncased类型,不区分文本中的大小写字母
模型能力
计算句子嵌入向量
语义文本相似度计算
复述识别
自然语言推理
情感分析
毒性识别
使用案例
文本相似度
搜索查询匹配
使用search_query前缀优化搜索查询与文档的匹配
在ruMTEB基准测试中NDCG@10得分为0.791
复述识别
使用paraphrase前缀识别语义相似的句子
在复述识别任务中得分为0.760
文本分类
情感分析
使用categorize_sentiment前缀进行情感分类
在情感分析任务中得分为0.798
主题分类
使用categorize_topic前缀进行主题分类
在标题分类任务中准确率达0.884
🚀 rubert-mini-uncased
本模型用于计算俄语和英语句子的嵌入向量,它通过蒸馏 ai-forever/FRIDA 的嵌入向量得到(FRIDA 的嵌入向量维度为 1536,层数为 24)。FRIDA 的主要使用模式 CLS pooling 被替换为 mean pooling,且未对模型行为进行其他更改(如修改或过滤嵌入向量、使用额外模型)。蒸馏在最大程度上进行,涵盖俄语和英语句子的嵌入向量以及前缀处理。
该模型属于 uncased 类型,在处理文本时不区分大小写字母(例如,“С Новым Годом!” 和 “С НОВЫМ ГОДОМ!” 编码为相同的 token 序列,且嵌入向量值相等)。模型的嵌入向量维度为 384,层数为 7,上下文长度与 FRIDA 一致,为 512 个 token。
✨ 主要特性
- 多语言支持:可处理俄语和英语句子的嵌入向量计算。
- 蒸馏优化:通过蒸馏 FRIDA 的嵌入向量得到,提升效率。
- Pooling 替换:将 CLS pooling 替换为 mean pooling。
📦 安装指南
文档中未提及具体安装步骤,若需使用该模型,可参考 transformers
或 sentence-transformers
库的官方安装指南。
💻 使用示例
基础用法
import torch
import torch.nn.functional as F
from transformers import AutoTokenizer, AutoModel
def pool(hidden_state, mask, pooling_method="mean"):
if pooling_method == "mean":
s = torch.sum(hidden_state * mask.unsqueeze(-1).float(), dim=1)
d = mask.sum(axis=1, keepdim=True).float()
return s / d
elif pooling_method == "cls":
return hidden_state[:, 0]
inputs = [
#
"paraphrase: В Ярославской области разрешили работу бань, но без посетителей",
"categorize_entailment: Женщину доставили в больницу, за ее жизнь сейчас борются врачи.",
"search_query: Сколько программистов нужно, чтобы вкрутить лампочку?",
#
"paraphrase: Ярославским баням разрешили работать без посетителей",
"categorize_entailment: Женщину спасают врачи.",
"search_document: Чтобы вкрутить лампочку, требуется три программиста: один напишет программу извлечения лампочки, другой — вкручивания лампочки, а третий проведет тестирование."
]
tokenizer = AutoTokenizer.from_pretrained("sergeyzh/rubert-mini-uncased")
model = AutoModel.from_pretrained("sergeyzh/rubert-mini-uncased")
tokenized_inputs = tokenizer(inputs, max_length=512, padding=True, truncation=True, return_tensors="pt")
with torch.no_grad():
outputs = model(**tokenized_inputs)
embeddings = pool(
outputs.last_hidden_state,
tokenized_inputs["attention_mask"],
pooling_method="mean"
)
embeddings = F.normalize(embeddings, p=2, dim=1)
sim_scores = embeddings[:3] @ embeddings[3:].T
print(sim_scores.diag().tolist())
# [0.9366128444671631, 0.8030662536621094, 0.6826460957527161]
# [0.9360030293464661, 0.8591322302818298, 0.728583037853241] - FRIDA
高级用法
from sentence_transformers import SentenceTransformer
# loads model with mean pooling
model = SentenceTransformer("sergeyzh/rubert-mini-uncased")
paraphrase = model.encode(["В Ярославской области разрешили работу бань, но без посетителей", "Ярославским баням разрешили работать без посетителей"], prompt="paraphrase: ")
print(paraphrase[0] @ paraphrase[1].T)
# 0.9366129
# 0.9360032 - FRIDA
categorize_entailment = model.encode(["Женщину доставили в больницу, за ее жизнь сейчас борются врачи.", "Женщину спасают врачи."], prompt="categorize_entailment: ")
print(categorize_entailment[0] @ categorize_entailment[1].T)
# 0.80306643
# 0.8591322 - FRIDA
query_embedding = model.encode("Сколько программистов нужно, чтобы вкрутить лампочку?", prompt="search_query: ")
document_embedding = model.encode("Чтобы вкрутить лампочку, требуется три программиста: один напишет программу извлечения лампочки, другой — вкручивания лампочки, а третий проведет тестирование.", prompt="search_document: ")
print(query_embedding @ document_embedding.T)
# 0.68264616
# 0.7285831 - FRIDA
📚 详细文档
前缀
所有前缀均继承自 FRIDA。以下是在 encodechka 中使用的前缀及其对模型评估的影响:
前缀 | STS | PI | NLI | SA | TI |
---|---|---|---|---|---|
- | 0.817 | 0.734 | 0.448 | 0.799 | 0.971 |
search_query: | 0.828 | 0.752 | 0.463 | 0.794 | 0.973 |
search_document: | 0.794 | 0.730 | 0.446 | 0.797 | 0.971 |
paraphrase: | 0.823 | 0.760 | 0.446 | 0.802 | 0.973 |
categorize: | 0.820 | 0.753 | 0.482 | 0.805 | 0.972 |
categorize_sentiment: | 0.604 | 0.595 | 0.431 | 0.798 | 0.955 |
categorize_topic: | 0.711 | 0.485 | 0.391 | 0.750 | 0.962 |
categorize_entailment: | 0.805 | 0.750 | 0.525 | 0.800 | 0.969 |
任务:
- 语义文本相似度(STS)
- 释义识别(PI)
- 自然语言推理(NLI)
- 情感分析(SA)
- 毒性识别(TI)
指标
模型在 ruMTEB 基准测试中的评估结果如下:
模型名称 | 指标 | Frida | rubert-mini-uncased | rubert-mini-frida | multilingual-e5-large-instruct | multilingual-e5-large |
---|---|---|---|---|---|---|
CEDRClassification | 准确率 | 0.646 | 0.586 | 0.552 | 0.500 | 0.448 |
GeoreviewClassification | 准确率 | 0.577 | 0.485 | 0.464 | 0.559 | 0.497 |
GeoreviewClusteringP2P | V-measure | 0.783 | 0.683 | 0.698 | 0.743 | 0.605 |
HeadlineClassification | 准确率 | 0.890 | 0.884 | 0.882 | 0.862 | 0.758 |
InappropriatenessClassification | 准确率 | 0.783 | 0.705 | 0.698 | 0.655 | 0.616 |
KinopoiskClassification | 准确率 | 0.705 | 0.607 | 0.595 | 0.661 | 0.566 |
RiaNewsRetrieval | NDCG@10 | 0.868 | 0.791 | 0.721 | 0.824 | 0.807 |
RuBQReranking | MAP@10 | 0.771 | 0.713 | 0.711 | 0.717 | 0.756 |
RuBQRetrieval | NDCG@10 | 0.724 | 0.640 | 0.654 | 0.692 | 0.741 |
RuReviewsClassification | 准确率 | 0.751 | 0.684 | 0.658 | 0.686 | 0.653 |
RuSTSBenchmarkSTS | 皮尔逊相关系数 | 0.814 | 0.795 | 0.803 | 0.840 | 0.831 |
RuSciBenchGRNTIClassification | 准确率 | 0.699 | 0.653 | 0.625 | 0.651 | 0.582 |
RuSciBenchGRNTIClusteringP2P | V-measure | 0.670 | 0.618 | 0.586 | 0.622 | 0.520 |
RuSciBenchOECDClassification | 准确率 | 0.546 | 0.509 | 0.491 | 0.502 | 0.445 |
RuSciBenchOECDClusteringP2P | V-measure | 0.566 | 0.525 | 0.507 | 0.528 | 0.450 |
SensitiveTopicsClassification | 准确率 | 0.398 | 0.365 | 0.373 | 0.323 | 0.257 |
TERRaClassification | 平均精度 | 0.665 | 0.604 | 0.604 | 0.639 | 0.584 |
Classification | 准确率 | 0.707 | 0.657 | 0.631 | 0.654 | 0.588 |
Clustering | V-measure | 0.673 | 0.608 | 0.597 | 0.631 | 0.525 |
MultiLabelClassification | 准确率 | 0.522 | 0.476 | 0.463 | 0.412 | 0.353 |
PairClassification | 平均精度 | 0.665 | 0.604 | 0.604 | 0.639 | 0.584 |
Reranking | MAP@10 | 0.771 | 0.713 | 0.711 | 0.717 | 0.756 |
Retrieval | NDCG@10 | 0.796 | 0.715 | 0.687 | 0.758 | 0.774 |
STS | 皮尔逊相关系数 | 0.814 | 0.795 | 0.803 | 0.840 | 0.831 |
Average | 平均值 | 0.707 | 0.653 | 0.642 | 0.664 | 0.630 |
📄 许可证
本模型采用 MIT 许可证。
模型信息
属性 | 详情 |
---|---|
模型类型 | 用于计算俄语和英语句子嵌入向量的蒸馏模型 |
训练数据 | IlyaGusev/gazeta、zloelias/lenta-ru、HuggingFaceFW/fineweb-2、HuggingFaceFW/fineweb |
基础模型 | sergeyzh/rubert-mini-sts |
Jina Embeddings V3
Jina Embeddings V3 是一个多语言句子嵌入模型,支持超过100种语言,专注于句子相似度和特征提取任务。
文本嵌入
Transformers 支持多种语言

J
jinaai
3.7M
911
Ms Marco MiniLM L6 V2
Apache-2.0
基于MS Marco段落排序任务训练的交叉编码器模型,用于信息检索中的查询-段落相关性评分
文本嵌入 英语
M
cross-encoder
2.5M
86
Opensearch Neural Sparse Encoding Doc V2 Distill
Apache-2.0
基于蒸馏技术的稀疏检索模型,专为OpenSearch优化,支持免推理文档编码,在搜索相关性和效率上优于V1版本
文本嵌入
Transformers 英语

O
opensearch-project
1.8M
7
Sapbert From PubMedBERT Fulltext
Apache-2.0
基于PubMedBERT的生物医学实体表征模型,通过自对齐预训练优化语义关系捕捉
文本嵌入 英语
S
cambridgeltl
1.7M
49
Gte Large
MIT
GTE-Large 是一个强大的句子转换器模型,专注于句子相似度和文本嵌入任务,在多个基准测试中表现出色。
文本嵌入 英语
G
thenlper
1.5M
278
Gte Base En V1.5
Apache-2.0
GTE-base-en-v1.5 是一个英文句子转换器模型,专注于句子相似度任务,在多个文本嵌入基准测试中表现优异。
文本嵌入
Transformers 支持多种语言

G
Alibaba-NLP
1.5M
63
Gte Multilingual Base
Apache-2.0
GTE Multilingual Base 是一个多语言的句子嵌入模型,支持超过50种语言,适用于句子相似度计算等任务。
文本嵌入
Transformers 支持多种语言

G
Alibaba-NLP
1.2M
246
Polybert
polyBERT是一个化学语言模型,旨在实现完全由机器驱动的超快聚合物信息学。它将PSMILES字符串映射为600维密集指纹,以数值形式表示聚合物化学结构。
文本嵌入
Transformers

P
kuelumbus
1.0M
5
Bert Base Turkish Cased Mean Nli Stsb Tr
Apache-2.0
基于土耳其语BERT的句子嵌入模型,专为语义相似度任务优化
文本嵌入
Transformers 其他

B
emrecan
1.0M
40
GIST Small Embedding V0
MIT
基于BAAI/bge-small-en-v1.5模型微调的文本嵌入模型,通过MEDI数据集与MTEB分类任务数据集训练,优化了检索任务的查询编码能力。
文本嵌入
Safetensors 英语
G
avsolatorio
945.68k
29
精选推荐AI模型
Llama 3 Typhoon V1.5x 8b Instruct
专为泰语设计的80亿参数指令模型,性能媲美GPT-3.5-turbo,优化了应用场景、检索增强生成、受限生成和推理任务
大型语言模型
Transformers 支持多种语言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一个基于SODA数据集训练的超小型对话模型,专为边缘设备推理设计,体积仅为Cosmo-3B模型的2%左右。
对话系统
Transformers 英语

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基于RoBERTa架构的中文抽取式问答模型,适用于从给定文本中提取答案的任务。
问答系统 中文
R
uer
2,694
98
智启未来,您的人工智能解决方案智库
简体中文