Downloads · 30 days
934
33% of all-time downloads
sshalimov04/ru-reranker-edge-150m
ru-reranker-edge-150m is a text ranking model from sshalimov04. Use it for the text ranking task on the model card, and read the license before you ship it in a product. It is set up for sentence-transformers. The card lists the license as apache-2.0.
Русский кросс-энкодер-реранкер на 150M параметров. Обучен дистилляцией из BAAI/bge-reranker-v2-m3 (568M) и на русских задачах даёт 95–99% его качества при в 3.8 раза меньшем размере.
Downloads · 30 days
934
33% of all-time downloads
All-time downloads
2.8K
Public
Parameters
150M
2.4 GB on disk
Likes
8
Public
Click a slice to open those files.
.safetensors598 MB · 66%
From the Hugging Face model README
Русский кросс-энкодер-реранкер на 150M параметров. Обучен дистилляцией из
BAAI/bge-reranker-v2-m3 (568M) и на русских задачах даёт 95–99% его качества
при в 3.8 раза меньшем размере.
deepvk/RuModernBERT-base (контекст до 8192 токенов, обучали и оценивали при 512).nDCG@10 на подмножестве RusBEIR (зеро-шот, реранк BM25 top-100, одинаковые кандидаты во всех строках):
| scifact | nfcorpus | arguana | tydiqa | xquad | среднее | |
|---|---|---|---|---|---|---|
| BM25 | 0.657 | 0.302 | 0.325 | 0.351 | 0.952 | 0.517 |
| ru-reranker-edge-150m | 0.742 | 0.346 | 0.386 | 0.583 | 0.987 | 0.609 |
| bge-reranker-v2-m3 (568M, учитель) | 0.733 | 0.340 | 0.381 | 0.592 | 0.989 | 0.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 и скрипт экспорта лежат в
демо в браузере.
transformers без FlashAttention — узкое место; torch.compile его частично закрывает.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.