/ Модель

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

Контекст
8 192 токена
Параметры
149 млн
Лицензия
Apache 2.0
Архитектура
modernbert · dense
Базовая модель
RuModernBERT-base
Библиотека
sentence-transformers
Опубликована
1 сен 2026

ru-reranker-edge-150m

Ранжирование текстаТекст → score7 профессий

Компактный русскоязычный кросс-энкодер-реранкер для повышения релевантности результатов поиска по парам «запрос — документ».

1 788скачиваний за 30 дней7лайковвеса обновлены12 сен 2026

Бенчмарки

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

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

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

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

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

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

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

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

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

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

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

  • RuBQReranking

    main_score

    Результат

    0,7706

    MTEB

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

  • MIRACLReranking

    main_score

    Результат

    0,6848

    MTEB

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

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

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

ru-reranker-edge-150m — русскоязычный кросс-энкодер-реранкер на архитектуре ModernBERT с 149 млн параметров, разработанный sshalimov04 на базе deepvk/RuModernBERT-base. Модель принимает пару «запрос — документ» и выдаёт один логит релевантности; её используют для повторного ранжирования кандидатов, найденных поисковой системой. Контекст базовой модели достигает 8192 токенов, однако обучение и оценка проводились при длине 512 токенов.

Модель дообучена методом листвайз-дистилляции: она училась воспроизводить оценки BAAI/bge-reranker-v2-m3 для групп запросов и документов. По результатам README, на выбранных русскоязычных тестах она достигает качества, близкого к модели-учителю, при меньшем размере. Доступны веса Safetensors и экспорт ONNX; лицензия — Apache-2.0.

Модель предназначена для русскоязычного поиска и ранжирования документов, включая ответы на вопросы, научные тексты и нормативные документы. Для запросов с номерами статей и другими точными совпадениями BM25 может работать лучше; в таких случаях автор рекомендует сочетать нормированные оценки BM25 и реранкера. Другие языки не тестировались, а показатели скорости зависят от рантайма и оборудования.

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

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

Ограничения

Модель предназначена и проверена для русского языка. На юридических запросах с номерами статей BM25 может превосходить её в одиночку; автор рекомендует смешивать оценки BM25 и реранкера.

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

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

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

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

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

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

Открыть на Hugging Face

ru-reranker-edge-150m

Русский кросс-энкодер-реранкер на 150M параметров. Обучен дистилляцией из BAAI/bge-reranker-v2-m3 (568M) и на русских задачах даёт 95–99% его качества при в 3.8 раза меньшем размере.

Что это

  • База: deepvk/RuModernBERT-base (контекст до 8192 токенов, обучали и оценивали при 512).
  • Как обучали: листвайз-дистилляция — модель учится повторять распределение скоров учителя внутри группы «запрос + 16 документов». Меток релевантности не требуется.
  • На чём обучали: русский mMARCO (train), MIRACL-ru (train), статьи русской Википедии, фрагменты кодексов и нормативных актов РФ, синтетические пары «аргумент → контраргумент» (Qwen3-27B). Ни один из оценочных датасетов ниже в обучение не попадал.
  • Вход: пара (запрос, документ) → один скор (логит). Чем больше, тем релевантнее.

Качество

nDCG@10 на подмножестве RusBEIR (зеро-шот, реранк BM25 top-100, одинаковые кандидаты во всех строках):

scifactnfcorpusarguanatydiqaxquadсреднее
BM250.6570.3020.3250.3510.9520.517
ru-reranker-edge-150m0.7420.3460.3860.5830.9870.609
bge-reranker-v2-m3 (568M, учитель)0.7330.3400.3810.5920.9890.607

RuBQReranking (ruMTEB, официальный mteb, зеро-шот): MAP 0.773, nDCG@10 0.839 (учитель: 0.785 / 0.848).

Среднее по пяти датасетам — выше учителя; ArguAna (поиск контраргументов) закрыт синтетическими парами «аргумент → контраргумент» (0.249 → 0.386).

Как использовать

from sentence_transformers import CrossEncoder

model = CrossEncoder("sshalimov04/ru-reranker-edge-150m", max_length=512)
query = "Что может вызвать цунами?"
docs = [
    "Землетрясения, извержения вулканов и подводные оползни обладают потенциалом вызвать цунами.",
    "Флаг муниципального округа утверждён решением совета депутатов.",
]
scores = model.predict([(query, d) for d in docs])
ranked = sorted(zip(scores, docs), reverse=True)

Или через transformers: AutoModelForSequenceClassification с num_labels=1, на вход tokenizer(query, document, truncation=True, max_length=512).

Скорость

На NVIDIA GB10 (bf16, batch 32, длина 512) реранк 100 документов: ~0.8 с в обычном transformers-пути и ~0.35–0.4 с с torch.compile (2.2× быстрее, без потерь):

model.model = torch.compile(model.model, dynamic=True)   # для CrossEncoder

ONNX (папка onnx/): model_fp16.onnx — экспорт opset 17, паритет с torch (Spearman 0.997 по скорам). Вход: input_ids, attention_mask; выход: logits [batch, 1]. На CUDA через ONNX Runtime он медленнее torch (часть узлов ModernBERT падает на CPU), поэтому предназначен для переноса на другие рантаймы/устройства, а не для ускорения на GPU. int8-квантизация не выложена: динамическая int8 заметно портит ранжирование (Spearman 0.77–0.95).

int8-квантизация: поканальная (per_channel=True, reduce_range=True, вместе с таблицей эмбеддингов) ранжирование не портит — на отложенных 500 юридических делах gold@5 0.720 против 0.702 у fp32 с длиной 512, при 149 МБ вместо 299 и длине 256. Обычная (не поканальная) динамическая int8 действительно ломает скоры — с ней Spearman падает до 0.77–0.95. Готовый int8-ONNX и скрипт экспорта лежат в демо в браузере.

Ограничения

  • Только русский язык (тексты на других языках не тестировались).
  • Путь внимания ModernBERT в transformers без FlashAttention — узкое место; torch.compile его частично закрывает.
  • На юридическом корпусе с номерами статей один реранкер BM25 не обыгрывает. На отложенных 500 делах gold@5: BM25 0.736, реранкер 0.702. Запросы содержат номера статей, точное совпадение токенов сильнее семантики. Рабочий рецепт — смесь нормированных скоров 50/50: gold@5 0.760, gold@10 0.806 против 0.774 у BM25 (парный тест Макнемара p=0.0015). Одну модель как единственную первую стадию в таких доменах ставить не стоит.
  • Оценка первой стадии — bm25s, а не Elasticsearch, поэтому абсолютные числа могут отличаться от лидерборда RusBEIR; сравнения внутри таблицы точны.

Данные для воспроизведения

Кэш скоров учителя и тексты всех обучающих групп опубликованы как датасет: sshalimov04/ru-reranker-teacher-scores.


English. A 150M Russian cross-encoder reranker (RuModernBERT-base) distilled listwise from BAAI/bge-reranker-v2-m3. Zero-shot on a RusBEIR subset it averages 0.609 nDCG@10 (BM25 0.517, teacher 0.607) and reaches MAP 0.773 on RuBQReranking (teacher 0.785). Use with sentence_transformers.CrossEncoder; input is a (query, document) pair, output a relevance logit. Teacher scores and training groups are released as sshalimov04/ru-reranker-teacher-scores.

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

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

GPU в ailist

Универсальный рантайм · sentence-transformers

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

Подбираем GPU…

Класс архитектуры
ModernBertForSequenceClassification
Ревизия весов
86795a4

0 моделей