/ Модель

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

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

rubert-mini-frida

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

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

4 748скачиваний за 30 дней28лайковвеса обновлены3 мар 2025

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

  • GeoreviewClusteringP2P

    main_score

    Результат

    0,6985

    MTEB

    Публичная таблицадругая ревизия

  • InappropriatenessClassification

    main_score

    Результат

    0,6984

    MTEB

    Публичная таблицадругая ревизия

  • MIRACLRetrieval

    main_score

    Результат

    0,5709

    MTEB

    Публичная таблицадругая ревизия

  • RuBQReranking

    main_score

    Результат

    0,7112

    MTEB

    Публичная таблицадругая ревизия

  • CEDRClassification

    main_score

    Результат

    0,5704

    MTEB

    Публичная таблицадругая ревизия

  • MIRACLReranking

    main_score

    Результат

    0,6012

    MTEB

    Публичная таблицадругая ревизия

  • RuSciBenchOECDClusteringP2P

    main_score

    Результат

    0,5073

    MTEB

    Публичная таблицадругая ревизия

  • SensitiveTopicsClassification

    main_score

    Результат

    0,3734

    MTEB

    Публичная таблицадругая ревизия

  • RuSTSBenchmarkSTS

    main_score

    Результат

    0,8026

    MTEB

    Публичная таблицадругая ревизия

  • RiaNewsRetrievalHardNegatives.v2

    main_score

    Результат

    0,7256

    MTEB

    Публичная таблицадругая ревизия

  • RuReviewsClassification

    main_score

    Результат

    0,6584

    MTEB

    Публичная таблицадругая ревизия

  • MIRACLRetrievalHardNegatives.v2

    main_score

    Результат

    0,5609

    MTEB

    Публичная таблицадругая ревизия

  • STS22

    main_score

    Результат

    0,6107

    MTEB

    Публичная таблицадругая ревизия

  • HeadlineClassification

    main_score

    Результат

    0,8822

    MTEB

    Публичная таблицадругая ревизия

  • RuBQRetrieval

    main_score

    Результат

    0,6544

    MTEB

    Публичная таблицадругая ревизия

  • MassiveScenarioClassification

    main_score

    Результат

    0,7223

    Общий результат 0,7243
    MTEB

    Публичная таблицадругая ревизия

  • RuSciBenchGRNTIClassification

    main_score

    Результат

    0,6253

    MTEB

    Публичная таблицадругая ревизия

  • RuSciBenchGRNTIClusteringP2P

    main_score

    Результат

    0,5857

    MTEB

    Публичная таблицадругая ревизия

  • MassiveIntentClassification

    main_score

    Результат

    0,6456

    Общий результат 0,6477
    MTEB

    Публичная таблицадругая ревизия

  • RuSciBenchOECDClassification

    main_score

    Результат

    0,4912

    MTEB

    Публичная таблицадругая ревизия

  • KinopoiskClassification

    main_score

    Результат

    0,5953

    MTEB

    Публичная таблицадругая ревизия

  • RiaNewsRetrieval

    main_score

    Результат

    0,7203

    MTEB

    Публичная таблицадругая ревизия

  • GeoreviewClassification

    main_score

    Результат

    0,4642

    MTEB

    Публичная таблицадругая ревизия

  • TERRa

    main_score

    Результат

    0,6036

    MTEB

    Публичная таблицадругая ревизия

  • RUParaPhraserSTS

    main_score

    Результат

    0,751

    MTEB

    Публичная таблицадругая ревизия

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

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

rubert-mini-frida — компактная модель на архитектуре BERT, опубликованная sergeyzh для построения эмбеддингов предложений на русском и английском языках. Она создана дистилляцией эмбеддингов ai-forever/FRIDA в sergeyzh/rubert-mini-sts: 7 слоёв и размер эмбеддинга 312 вместо 24 слоёв и 1536 у FRIDA. Используется mean pooling; по умолчанию настроен префикс «categorize: », также поддерживаются префиксы FRIDA для разных задач.

Модель подходит для семантического поиска и сравнения предложений, выявления перефразирований, классификации и кластеризации текста, анализа тональности и токсичности, а также задач NLI. В карточке приведены результаты ruMTEB: модель уступает FRIDA по указанным метрикам, но превосходит приведённые варианты multilingual-e5 в некоторых из них. Хотя унаследованная длина контекста составляет 2048 токенов, автор рекомендует не превышать 512. Лицензия — MIT.

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

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

Ограничения

Автор рекомендует ограничивать контекст 512 токенами, хотя унаследованный предел составляет 2048. На приведённых метриках ruMTEB модель уступает FRIDA.

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

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

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

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

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

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

Открыть на Hugging Face

rubert-mini-frida - лёгкая и быстрая модификация FRIDA

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

Рекомендуемый размер контекста модели соответствует FRIDA и не превышает 512 токенов (фактический унаследованный от исходной модели - 2048).

Префиксы

Все префиксы унаследованы от FRIDA. Оптимальный (обеспечивающий средние результаты) для большинства задач - "categorize: " прописан по умолчанию в config_sentence_transformers.json

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

ПрефиксSTSPINLISATI
-0.8390.7620.4750.8010.972
search_query:0.8460.7610.4980.8000.973
search_document:0.8300.7480.4680.7940.972
paraphrase:0.8350.7640.4750.7990.973
categorize:0.8500.7610.5160.8020.973
categorize_sentiment:0.7550.6560.4270.7980.959
categorize_topic:0.7340.5230.3890.7280.959
categorize_entailment:0.8370.7530.5440.8020.970

Задачи:

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

Метрики

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

Model NameMetricFridarubert-mini-fridamultilingual-e5-large-instructmultilingual-e5-large
CEDRClassificationAccuracy0.6460.5520.5000.448
GeoreviewClassificationAccuracy0.5770.4640.5590.497
GeoreviewClusteringP2PV-measure0.7830.6980.7430.605
HeadlineClassificationAccuracy0.8900.8800.8620.758
InappropriatenessClassificationAccuracy0.7830.6980.6550.616
KinopoiskClassificationAccuracy0.7050.5950.6610.566
RiaNewsRetrievalNDCG@100.8680.7210.8240.807
RuBQRerankingMAP@100.7710.7110.7170.756
RuBQRetrievalNDCG@100.7240.6540.6920.741
RuReviewsClassificationAccuracy0.7510.6580.6860.653
RuSTSBenchmarkSTSPearson correlation0.8140.8030.8400.831
RuSciBenchGRNTIClassificationAccuracy0.6990.6250.6510.582
RuSciBenchGRNTIClusteringP2PV-measure0.6700.5860.6220.520
RuSciBenchOECDClassificationAccuracy0.5460.4930.5020.445
RuSciBenchOECDClusteringP2PV-measure0.5660.5070.5280.450
SensitiveTopicsClassificationAccuracy0.3980.3730.3230.257
TERRaClassificationAverage Precision0.6650.6060.6390.584
Model NameMetricFridarubert-mini-fridamultilingual-e5-large-instructmultilingual-e5-large
ClassificationAccuracy0.7070.6310.6540.588
ClusteringV-measure0.6730.5970.6310.525
MultiLabelClassificationAccuracy0.5220.4630.4120.353
PairClassificationAverage Precision0.6650.6060.6390.584
RerankingMAP@100.7710.7110.7170.756
RetrievalNDCG@100.7960.6870.7580.774
STSPearson correlation0.8140.8030.8400.831
AverageAverage0.7070.6430.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-frida")
model = AutoModel.from_pretrained("sergeyzh/rubert-mini-frida")

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.9423348903656006, 0.8306248188018799, 0.7095720767974854]
# [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-frida")

paraphrase = model.encode(["В Ярославской области разрешили работу бань, но без посетителей", "Ярославским баням разрешили работать без посетителей"], prompt="paraphrase: ")
print(paraphrase[0] @ paraphrase[1].T) 
# 0.94233495
# 0.9360032 - FRIDA

categorize_entailment = model.encode(["Женщину доставили в больницу, за ее жизнь сейчас борются врачи.", "Женщину спасают врачи."], prompt="categorize_entailment: ")
print(categorize_entailment[0] @ categorize_entailment[1].T) 
# 0.8306249
# 0.8591322 - FRIDA

query_embedding = model.encode("Сколько программистов нужно, чтобы вкрутить лампочку?", prompt="search_query: ")
document_embedding = model.encode("Чтобы вкрутить лампочку, требуется три программиста: один напишет программу извлечения лампочки, другой — вкручивания лампочки, а третий проведет тестирование.", prompt="search_document: ")
print(query_embedding @ document_embedding.T) 
# 0.70957196
# 0.7285831 - FRIDA

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

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

GPU в ailist

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

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

Подбираем GPU…

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

0 моделей