Ru En RoSBERTa
模型简介
该模型是基于RoBERTa架构的双语(俄语-英语)文本处理模型,在多种文本分类和检索任务上表现良好,支持多标签分类、聚类和重新排序等任务
模型特点
双语支持
同时支持俄语和英语文本处理
多任务适应
在分类、聚类和重新排序等多种任务上表现良好
高效检索
在MIRACL俄语检索任务上表现出色
模型能力
文本分类
多标签分类
文本聚类
信息检索
文本重新排序
使用案例
内容分类
新闻标题分类
对新闻标题进行分类
在HeadlineClassification数据集上达到78%准确率
电影评论情感分析
分析电影评论的情感倾向
在KinopoiskClassification数据集上达到63.27%准确率
信息检索
俄语文档检索
俄语文档的检索和重新排序
在MIRACL俄语检索任务上NDCG@10达到56.912
🚀 ru-en-RoSBERTa
ru-en-RoSBERTa 是一个用于俄语的通用文本嵌入模型。该模型基于 ruRoBERTa,并使用约 400 万对俄语和英语的有监督、合成和无监督数据进行了微调。分词器支持 RoBERTa 分词器中的一些英语标记。
如需了解更多模型详情,请参考我们的 文章。
🚀 快速开始
该模型可以直接使用前缀。建议使用 CLS 池化。前缀和池化的选择取决于具体任务。
我们使用以下基本规则来选择前缀:
"search_query: "
和"search_document: "
前缀用于答案或相关段落检索。"classification: "
前缀用于对称释义相关任务(如 STS、NLI、Bitext Mining)。"clustering: "
前缀用于依赖主题特征的任何任务(如主题分类、标题 - 正文检索)。
为了更好地满足您的需求,您可以使用相关的高质量俄语和英语数据集对模型进行微调。
💻 使用示例
基础用法
以下是使用 Transformers 和 SentenceTransformers 库进行文本编码的示例。
Transformers
import torch
import torch.nn.functional as F
from transformers import AutoTokenizer, AutoModel
def pool(hidden_state, mask, pooling_method="cls"):
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 = [
#
"classification: Он нам и <unk> не нужон ваш Интернет!",
"clustering: В Ярославской области разрешили работу бань, но без посетителей",
"search_query: Сколько программистов нужно, чтобы вкрутить лампочку?",
#
"classification: What a time to be alive!",
"clustering: Ярославским баням разрешили работать без посетителей",
"search_document: Чтобы вкрутить лампочку, требуется три программиста: один напишет программу извлечения лампочки, другой — вкручивания лампочки, а третий проведет тестирование.",
]
tokenizer = AutoTokenizer.from_pretrained("ai-forever/ru-en-RoSBERTa")
model = AutoModel.from_pretrained("ai-forever/ru-en-RoSBERTa")
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="cls" # or try "mean"
)
embeddings = F.normalize(embeddings, p=2, dim=1)
sim_scores = embeddings[:3] @ embeddings[3:].T
print(sim_scores.diag().tolist())
# [0.4796873927116394, 0.9409002065658569, 0.7761015892028809]
SentenceTransformers
from sentence_transformers import SentenceTransformer
inputs = [
#
"classification: Он нам и <unk> не нужон ваш Интернет!",
"clustering: В Ярославской области разрешили работу бань, но без посетителей",
"search_query: Сколько программистов нужно, чтобы вкрутить лампочку?",
#
"classification: What a time to be alive!",
"clustering: Ярославским баням разрешили работать без посетителей",
"search_document: Чтобы вкрутить лампочку, требуется три программиста: один напишет программу извлечения лампочки, другой — вкручивания лампочки, а третий проведет тестирование.",
]
# loads model with CLS pooling
model = SentenceTransformer("ai-forever/ru-en-RoSBERTa")
# embeddings are normalized by default
embeddings = model.encode(inputs, convert_to_tensor=True)
sim_scores = embeddings[:3] @ embeddings[3:].T
print(sim_scores.diag().tolist())
# [0.47968706488609314, 0.940900444984436, 0.7761018872261047]
高级用法
使用提示(sentence-transformers>=2.4.0):
from sentence_transformers import SentenceTransformer
# loads model with CLS pooling
model = SentenceTransformer("ai-forever/ru-en-RoSBERTa")
classification = model.encode(["Он нам и <unk> не нужон ваш Интернет!", "What a time to be alive!"], prompt_name="classification")
print(classification[0] @ classification[1].T) # 0.47968706488609314
clustering = model.encode(["В Ярославской области разрешили работу бань, но без посетителей", "Ярославским баням разрешили работать без посетителей"], prompt_name="clustering")
print(clustering[0] @ clustering[1].T) # 0.940900444984436
query_embedding = model.encode("Сколько программистов нужно, чтобы вкрутить лампочку?", prompt_name="search_query")
document_embedding = model.encode("Чтобы вкрутить лампочку, требуется три программиста: один напишет программу извлечения лампочки, другой — вкручивания лампочки, а третий проведет тестирование.", prompt_name="search_document")
print(query_embedding @ document_embedding.T) # 0.7761018872261047
📚 详细文档
模型评估指标
数据集名称 | 任务类型 | 主要指标 | 指标值 |
---|---|---|---|
MTEB CEDRClassification (default) | 多标签分类 | 准确率 | 44.68650371944739 |
MTEB GeoreviewClassification (default) | 分类 | 准确率 | 49.697265625 |
MTEB GeoreviewClusteringP2P (default) | 聚类 | 主得分 | 65.42249614873316 |
MTEB HeadlineClassification (default) | 分类 | 准确率 | 78.0029296875 |
MTEB InappropriatenessClassification (default) | 分类 | 准确率 | 61.32324218750001 |
MTEB KinopoiskClassification (default) | 分类 | 准确率 | 63.27333333333334 |
MTEB MIRACLReranking (ru) | 重排序 | 主得分 | 56.912 |
MTEB MIRACLRetrieval (ru) | 检索 | 主得分 | 53.909 |
MTEB MassiveIntentClassification (ru) | 分类 | 准确率 | 66.96704774714189 |
MTEB MassiveScenarioClassification (ru) | 分类 | 准确率 | 71.79556153328849 |
MTEB RUParaPhraserSTS (default) | STS | 主得分 | 76.16273410937974 |
MTEB RiaNewsRetrieval (default) | 检索 | 主得分 | 78.864 |
MTEB RuBQReranking (default) | 重排序 | 主得分 | 70.8676293869892 |
MTEB RuBQRetrieval (default) | 检索 | 主得分 | 66.77499999999999 |
MTEB RuReviewsClassification (default) | 分类 | 准确率 | 67.958984375 |
MTEB RuSTSBenchmarkSTS (default) | STS | 主得分 | 78.69157477180703 |
MTEB RuSciBenchGRNTIClassification (default) | 分类 | 准确率 | 59.326171875 |
MTEB RuSciBenchGRNTIClusteringP2P (default) | 聚类 | 主得分 | 55.46570753380975 |
MTEB RuSciBenchOECDClassification (default) | 分类 | 准确率 | 46.328125 |
MTEB RuSciBenchOECDClusteringP2P (default) | 聚类 | 主得分 | 47.28635342613908 |
MTEB STS22 (ru) | STS | 主得分 | 67.06445400504978 |
MTEB SensitiveTopicsClassification (default) | 多标签分类 | 准确率 | 33.0712890625 |
MTEB TERRa (default) | 成对分类 | 主得分 | 60.78861909325018 |
📄 许可证
本项目采用 MIT 许可证。
📚 引用
如果您使用了该模型,请引用以下文献:
@misc{snegirev2024russianfocusedembeddersexplorationrumteb,
title={The Russian-focused embedders' exploration: ruMTEB benchmark and Russian embedding model design},
author={Artem Snegirev and Maria Tikhonova and Anna Maksimova and Alena Fenogenova and Alexander Abramov},
year={2024},
eprint={2408.12503},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2408.12503},
}
🔧 技术细节
模型架构
ru-en-RoSBERTa 基于 ruRoBERTa 架构,并使用约 400 万对俄语和英语的有监督、合成和无监督数据进行了微调。
输入限制
该模型设计用于处理俄语文本,英语处理质量未知。最大输入文本长度限制为 512 个标记。
⚠️ 重要提示
- 该模型设计用于处理俄语文本,英语处理质量未知。
- 最大输入文本长度限制为 512 个标记。
💡 使用建议
- 为了更好地满足您的需求,您可以使用相关的高质量俄语和英语数据集对模型进行微调。
- 建议使用 CLS 池化,但也可以尝试均值池化。
- 前缀的选择取决于具体任务,请根据任务类型选择合适的前缀。
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