/ Модель

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

Контекст
32 768 токенов
Параметры
307 млн
Лицензия
Apache 2.0
Архитектура
modernbert · dense
Базовая модель
mmbert-32k-yarn
Библиотека
transformers
Опубликована
27 янв 2026

mmbert-rerank-32k-2d-matryoshka

Классификация текстаТекст → label9 профессий

Многоязычный кросс-энкодер ModernBERT для переранжирования результатов поиска по запросу, включая длинные документы до 32 768 токенов.

105скачиваний за 30 дней4лайкавеса обновлены27 янв 2026

Бенчмарки

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

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

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

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

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

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

mmbert-rerank-32k-2d-matryoshka — многоязычный переранжировщик на архитектуре ModernBERT, дообученный на базе llm-semantic-router/mmbert-32k-yarn. Он оценивает релевантность пары «запрос — текст» как кросс-энкодер и подходит для перестановки результатов поиска, в том числе по длинным документам. Модель содержит около 307 млн параметров, принимает до 32 768 токенов и поддерживает сокращение числа слоёв и размерности представлений для выбора компромисса между скоростью и качеством.

Модель обучалась на 1 569 864 парах «запрос — фрагмент» из cfli/bge-m3-data. Карточка заявляет поддержку более 1800 языков; метаданные перечисляют английский, китайский, немецкий, французский, испанский, русский, японский, корейский, арабский и хинди. В приведённых тестах модель показывает хорошие результаты на длинных текстах и языках с малым объёмом ресурсов; на коротких документах некоторые конкуренты немного превосходят её. Лицензия — Apache-2.0.

Основное ограничение — обучение преимущественно на коротких фрагментах, поэтому качество на очень длинных текстах может зависеть от расширения контекста базовой модели YaRN. Для специализированных областей может потребоваться дообучение. Сокращение числа слоёв само по себе даёт небольшой прирост скорости без механизмов раннего выхода.

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

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

Ограничения

Обучение преимущественно проводилось на коротких фрагментах, поэтому качество на очень длинных текстах может зависеть от расширения контекста базовой модели. Для специализированных областей может потребоваться дообучение, а сокращение числа слоёв без раннего выхода даёт небольшой прирост скорости.

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

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

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

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

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

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

Открыть на Hugging Face

mmbert-rerank-32k-2d-matryoshka

A 32K context multilingual reranker with 2D Matryoshka support, enabling flexible layer and dimension reduction for efficient inference.

Model Description

This model is a cross-encoder reranker built on mmbert-32k-yarn, a ModernBERT model extended to 32K context via YaRN position interpolation and trained on 1800+ languages from the Glot500 corpus.

Key Features

FeatureValue
Context Length32,768 tokens (64× longer than typical 512-token rerankers)
Languages1800+ (Glot500 multilingual)
Parameters308M
ArchitectureModernBERT + 2D Matryoshka Cross-Encoder
Flash Attention✅ Supported

2D Matryoshka Architecture

This model implements 2D Matryoshka Representation Learning, allowing you to trade quality for speed by using:

  • Fewer layers: 3, 6, 11, or 22 (full)
  • Fewer dimensions: 64, 128, 256, 512, or 768 (full)

This provides 20 different quality-speed configurations from a single model.

Benchmark Results

Long Document Reranking (Key Advantage)

We evaluate on synthetic long documents (~1500 tokens) where the relevant answer is placed at different positions. This tests whether models can use their full context window.

Test Casemmbert-rerankBGE-reranker-v2-m3Qwen3-Reranker-0.6B
Answer at START100%100%100%
Answer at END100%33% ❌100%

Key Finding: BGE truncates inputs at 512 tokens, causing it to completely miss relevant information beyond that limit. mmbert-rerank maintains 100% accuracy with its 32K context window.

Latency Benchmark

Measured on AMD MI300X GPU:

Metricmmbert-rerankBGE-reranker-v2-m3Qwen3-Reranker-0.6B
Short doc (~15 tokens)19.0ms8.3ms21.5ms
Long doc (~1500 tokens)24.0ms11.9ms*28.8ms
Throughput (batch 10)506 q/s1193 q/s422 q/s

*BGE truncates at 512 tokens, so it doesn't actually process long docs

Multilingual Performance

Tested on 8 languages including low-resource African languages (Swahili, Yoruba, Amharic, Hausa, Igbo):

Language Typemmbert-rerankBGE-reranker-v2-m3Qwen3-Reranker-0.6B
High-resource (EN/ZH/ES)100%100%100%
Low-resource (SW/YO/AM/HA/IG)100%100%100%

BEIR Benchmark (Short Documents)

On standard BEIR datasets with short documents (where BGE's 512-token limit is sufficient):

DatasetAvg Tokensmmbert MRRBGE MRR
SciFact27994.995.6
NFCorpus30487.289.7
HotpotQA61100.0100.0
FiQA17393.996.0

On short documents, BGE is slightly better due to its focused training on shorter contexts.

When to Use This Model

ScenarioRecommendation
Short docs (<512 tokens)Use BGE (faster, slightly better)
Long docs (>512 tokens)Use mmbert (BGE fails)
Documents with key info at endUse mmbert (BGE truncates)
Low-resource languagesUse mmbert (1800+ languages)
Need speed/quality tradeoffUse mmbert (2D Matryoshka)

Usage

Installation

pip install transformers torch

Basic Usage

import torch
from transformers import AutoTokenizer

# Load model (custom class required)
import sys
sys.path.append("path/to/scripts")
from train_rerank import Matryoshka2DReranker

model = Matryoshka2DReranker.from_pretrained("llm-semantic-router/mmbert-rerank-32k-2d-matryoshka")
tokenizer = AutoTokenizer.from_pretrained("llm-semantic-router/mmbert-rerank-32k-2d-matryoshka")

model.eval()
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model = model.to(device)

# Score query-passage pairs
pairs = [
    ("What is machine learning?", "Machine learning is a subset of AI that enables systems to learn from data."),
    ("What is machine learning?", "The weather is sunny today."),
]

scores = model.compute_score(pairs, tokenizer, normalize=True)
# Output: [0.9686, 0.0017]

Using Reduced Layers/Dimensions (2D Matryoshka)

# Full model (22 layers, 768 dims) - highest quality
scores = model.compute_score(pairs, tokenizer, normalize=True)

# Reduced layers (use layer 11 for good balance)
scores = model.compute_score(pairs, tokenizer, layer_idx=11, normalize=True)

# Reduced dimensions
scores = model.compute_score(pairs, tokenizer, dim_idx=256, normalize=True)

# Both reduced (fastest)
scores = model.compute_score(pairs, tokenizer, layer_idx=11, dim_idx=256, normalize=True)

Reranking Pipeline

def rerank(query: str, passages: list[str], top_k: int = 10) -> list[tuple[str, float]]:
    """Rerank passages by relevance to query."""
    pairs = [(query, p) for p in passages]
    scores = model.compute_score(pairs, tokenizer, normalize=True)
    
    # Sort by score descending
    ranked = sorted(zip(passages, scores), key=lambda x: x[1], reverse=True)
    return ranked[:top_k]

# Example
query = "How does photosynthesis work?"
passages = [
    "Photosynthesis is the process by which plants convert sunlight into energy.",
    "The stock market closed higher today.",
    "Plants use chlorophyll to absorb light during photosynthesis.",
    "Python is a popular programming language.",
]

results = rerank(query, passages, top_k=2)
# [("Photosynthesis is the process...", 0.95), ("Plants use chlorophyll...", 0.87)]

Training Details

Training Data

  • Dataset: cfli/bge-m3-data
  • Samples: 1,569,864 query-passage pairs
  • Languages: 100+ languages from multilingual sources

Training Configuration

ParameterValue
Base Modelllm-semantic-router/mmbert-32k-yarn
Epochs1
Batch Size16
Gradient Accumulation2
Effective Batch Size32
Learning Rate2e-5
Max Length32,768
PrecisionBFloat16
OptimizerAdamW
HardwareAMD MI300X (196GB)
Training Time6h 57m
Final Loss0.3173

2D Matryoshka Configuration

ParameterValue
Layer Indices3, 6, 11, 22
Dimension Indices64, 128, 256, 512, 768
Classification Heads20 (4 layers × 5 dims)
LossBinary Cross-Entropy (averaged across all heads)

Comparison with Competitors

AttributeBGE-reranker-v2-m3Qwen3-Reranker-0.6Bmmbert-rerank-32k
Parameters568M600M308M (smallest)
Context Length5128,19232,768 (longest)
ArchitectureEncoderDecoderEncoder (fast)
Long Doc Quality❌ Fails✅ Good✅ Good
Short Doc SpeedFastestSlowestMiddle
2D Matryoshka❌ No❌ No✅ Yes
Languages100+~1001800+

Model Architecture

Matryoshka2DReranker
├── encoder: ModernBertModel (308M params)
│   └── 22 transformer layers
│   └── hidden_size: 768
│   └── YaRN position interpolation (32K context)
├── final_norm: LayerNorm (applied to intermediate layers)
└── layer_heads: ModuleDict
    ├── "3": {"64": Linear, "128": Linear, ..., "768": Linear}
    ├── "6": {"64": Linear, "128": Linear, ..., "768": Linear}
    ├── "11": {"64": Linear, "128": Linear, ..., "768": Linear}
    └── "22": {"64": Linear, "128": Linear, ..., "768": Linear}

Limitations

  • Training data: While the model supports 32K tokens, training was primarily on shorter passages from BGE-M3 data. Performance on very long passages relies on the base model's YaRN-extended context.
  • Domain-specific data: Model was trained on general web data; may require fine-tuning for specialized domains.
  • Layer reduction speedup: Due to the need for all hidden states, layer reduction provides minimal speedup without early-exit modifications.

License

Apache 2.0

Citation

@misc{mmbert-rerank-2025,
  title={mmbert-rerank-32k-2d-matryoshka: A Long-Context Multilingual Reranker with 2D Matryoshka},
  author={LLM Semantic Router Team},
  year={2025},
  url={https://huggingface.co/llm-semantic-router/mmbert-rerank-32k-2d-matryoshka}
}

Acknowledgments

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

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

GPU в ailist

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

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

Подбираем GPU…

Класс архитектуры
ModernBertModel
Ревизия весов
8022697

0 моделей