/ Модель

Характеристики

Контекст
512 токенов
Параметры
38,8 млн
Лицензия
MIT
Архитектура
bert · dense
Базовая модель
rubert-mini-sts
Опубликована
25 мар 2025

rubert-mini-uncased

ЭмбеддингиТекст → embedding11 профессий

Компактный двуязычный BERT-энкодер для эмбеддингов предложений, семантического сходства и поиска по текстам.

149скачиваний за 30 дней5лайковвеса обновлены25 мар 2025

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Тесты пользователейпока нет

Никто ещё не опубликовал тест этой модели. Соберите бенчмарк из своих задач — результат появится здесь.

  1. Добавьте модель в бенчмарк

    Вместе с другими моделями категории «Эмбеддинги» — сравнение идёт внутри одной категории.

  2. Опишите свои задачи

    Напишите запросы, при необходимости приложите файлы и эталонные ответы.

  3. Запустите и опубликуйте

    Модели ответят на каждую задачу, судья оценит ответы. Опубликованный результат появится на этой странице.

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

sergeyzh/rubert-mini-uncased — компактная BERT-модель автора sergeyzh для получения эмбеддингов предложений на русском и английском языках. Она создана дистилляцией эмбеддингов ai-forever/FRIDA: модель имеет 7 слоёв, размер эмбеддинга 384 и контекст до 512 токенов. Веса доступны в формате safetensors, лицензия — MIT.

Модель предназначена для оценки семантического сходства предложений, поиска и сравнения текстов, а также задач классификации и кластеризации на основе эмбеддингов. README указывает поддержку префиксов FRIDA, включая search_query: и search_document:, и приводит результаты по STS, идентификации перефразирований, выводу по тексту, анализу тональности и выявлению токсичности. Модель uncased: регистр букв не влияет на токенизацию. В приведённых сравнениях она уступает FRIDA по ряду метрик; максимальная длина контекста ограничена 512 токенами.

Сценарии применения

  • поиск семантически похожих предложений
  • поиск документов по текстовому запросу
  • сравнение запроса и документа с префиксами FRIDA
  • выявление перефразирований
  • кластеризация текстов по смыслу
  • классификация тональности и токсичности на основе эмбеддингов

Ограничения

Контекст ограничен 512 токенами, а модель без учёта регистра сводит варианты текста с разным регистром к одинаковому представлению. В приведённых в README сравнениях она уступает FRIDA по ряду метрик.

Для каких профессий подходит11

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

rubert-mini-uncased

Модель для расчетов эмбеддингов предложений на русском и английском языках получена методом дистилляции эмбеддингов ai-forever/FRIDA (размер эмбеддингов - 1536, слоёв - 24). Основной режим использования FRIDA - CLS pooling заменен на mean pooling. Каких-либо других изменений поведения модели (модификации или фильтрации эмбеддингов, использования дополнительной модели) не производилось. Дистиляция выполнена в максимально возможном объеме - эмбеддинги русских и английских предложений, работа префиксов.

Модель принадлежит к виду uncased - не различает при обработке текста буквы, написанные в верхнем и нижнем регистре (фразы, например, "С Новым Годом!" и "С НОВЫМ ГОДОМ!" кодируются одинаковой последовательностью токенов и имеют равные значения эмбеддингов). Размер эмбеддингов модели - 384, слоёв - 7. Размер контекста модели соответствует FRIDA - 512 токенов.

Префиксы

Все префиксы унаследованы от FRIDA.

Перечень используемых префиксов и их влияние на оценки модели в encodechka:

ПрефиксSTSPINLISATI
-0.8170.7340.4480.7990.971
search_query:0.8280.7520.4630.7940.973
search_document:0.7940.7300.4460.7970.971
paraphrase:0.8230.7600.4460.8020.973
categorize:0.8200.7530.4820.8050.972
categorize_sentiment:0.6040.5950.4310.7980.955
categorize_topic:0.7110.4850.3910.7500.962
categorize_entailment:0.8050.7500.5250.8000.969

Задачи:

  • Semantic text similarity (STS);
  • Paraphrase identification (PI);
  • Natural language inference (NLI);
  • Sentiment analysis (SA);
  • Toxicity identification (TI).

Метрики

Оценки модели на бенчмарке ruMTEB:

Model NameMetricFridarubert-mini-uncasedrubert-mini-fridamultilingual-e5-large-instructmultilingual-e5-large
CEDRClassificationAccuracy0.6460.5860.5520.5000.448
GeoreviewClassificationAccuracy0.5770.4850.4640.5590.497
GeoreviewClusteringP2PV-measure0.7830.6830.6980.7430.605
HeadlineClassificationAccuracy0.8900.8840.8820.8620.758
InappropriatenessClassificationAccuracy0.7830.7050.6980.6550.616
KinopoiskClassificationAccuracy0.7050.6070.5950.6610.566
RiaNewsRetrievalNDCG@100.8680.7910.7210.8240.807
RuBQRerankingMAP@100.7710.7130.7110.7170.756
RuBQRetrievalNDCG@100.7240.6400.6540.6920.741
RuReviewsClassificationAccuracy0.7510.6840.6580.6860.653
RuSTSBenchmarkSTSPearson correlation0.8140.7950.8030.8400.831
RuSciBenchGRNTIClassificationAccuracy0.6990.6530.6250.6510.582
RuSciBenchGRNTIClusteringP2PV-measure0.6700.6180.5860.6220.520
RuSciBenchOECDClassificationAccuracy0.5460.5090.4910.5020.445
RuSciBenchOECDClusteringP2PV-measure0.5660.5250.5070.5280.450
SensitiveTopicsClassificationAccuracy0.3980.3650.3730.3230.257
TERRaClassificationAverage Precision0.6650.6040.6040.6390.584
Model NameMetricFridarubert-mini-uncasedrubert-mini-fridamultilingual-e5-large-instructmultilingual-e5-large
ClassificationAccuracy0.7070.6570.6310.6540.588
ClusteringV-measure0.6730.6080.5970.6310.525
MultiLabelClassificationAccuracy0.5220.4760.4630.4120.353
PairClassificationAverage Precision0.6650.6040.6040.6390.584
RerankingMAP@100.7710.7130.7110.7170.756
RetrievalNDCG@100.7960.7150.6870.7580.774
STSPearson correlation0.8140.7950.8030.8400.831
AverageAverage0.7070.6530.6420.6640.630

Использование модели с библиотекой 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

Использование с sentence_transformers (sentence-transformers>=2.4.0):

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

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм

Можно запустить

Подбираем GPU…

Класс архитектуры
BertModel
Ревизия весов
8ae7293

0 моделей