Почему Ettin Reranker взорвали рынок open-source реранкеров
Если вы всё ещё донатите Cohere за каждый реранк-запрос — остановитесь. В 2025 году вышло семейство Ettin Reranker, и, честно говоря, это похоже на расстрел по конкурентам: шесть моделей, открытые веса, полный рецепт обучения и результаты, которые укладывают на лопатки проприетарные гиганты. Мы уже писали, как Ettin обошёл Cohere и BGE, но сегодня — практический гайд: как выбрать подходящий размер, не наступить на грабли и, если захочется, обучить свой реранкер за вечер.
Зачем вам ещё один реранкер? RAG без реранжирования — как кофе без кофеина: вроде работает, но удовольствия ноль. Первый этап (би-энкодер) выдаёт кучу шума, и только cross-encoder способен честно сказать: «Вот этот документ реально отвечает на вопрос». Ettin — это современные Longformer-архитектуры (они же ModernBERT, если углубляться), которые умеют обрабатывать длинные контексты до 2048 токенов без квадратичной сложности.
Шесть размеров на любой бюджет: от 17M до 1B
Ettin выпустили модели в шести размерностях — от крошечных для CPU до гигантских, которые вывозят только на GPU с 24+ ГБ памяти. Вот шпаргалка:
| Модель | Параметры | Латентность (GPU, мс) | Когда брать |
|---|---|---|---|
| Ettin-Reranker-17M | 17M | ~1 | CPU, real-time, бюджет дона |
| Ettin-Reranker-72M | 72M | ~2 | CPU/слабый GPU, компромисс |
| Ettin-Reranker-150M | 150M | ~5 | Основной выбор: GPU 8 ГБ |
| Ettin-Reranker-300M | 300M | ~10 | Точность важнее скорости |
| Ettin-Reranker-400M | 400M | ~15 | Production с хорошим GPU |
| Ettin-Reranker-1B | 1B | ~40 | Если хотите выжать максимум (A100) |
Главный сюрприз: 150M-модель бьёт Cohere Rerank v3 по NDCG@10 на нескольких бенчмарках. При этом веса открыты, и вы не платите за каждый вызов. Шесть гильотин для посредственного поиска — там есть графики, от которых у конкурентов подгорает.
1 Как НЕ надо выбирать реранкер: типичные ошибки
Самая частая глупость — брать самую большую модель («ну ведь круче же!»). На практике 1B версия жрёт 4 ГБ на батч из 32 пар и даёт прирост всего 0.5% по сравнению с 400M на доменных данных. Вторая ошибка — верить, что реранкер спасёт любой поиск. Если ваш би-энкодер — днище (низкий recall), то даже Ettin 1B не вытянет. Сначала поднимите качество первой стадии: гибридный поиск, мультиязычные эмбеддинги вроде zembed-1.
Быстрый старт: реранжирование в 10 строк кода
Установка сводится к pip install sentence-transformers. Далее — классический CrossEncoder:
from sentence_transformers import CrossEncoder
model = CrossEncoder("ettin/ettin-reranker-150M-v1")
query = "Как настроить RAG пайплайн?"
docs = [
"RAG pipeline строится из индексации, ретривера и генератора.",
"Сегодня в мире машинного обучения много новостей.",
"Настройка RAG начинается с выбора эмбеддинговой модели."
]
pairs = [(query, doc) for doc in docs]
scores = model.predict(pairs)
# Сортируем документы по убыванию
ranked = [doc for _, doc in sorted(zip(scores, docs), reverse=True)]
print(ranked)
# Вывод: ['Настройка RAG начинается...', 'RAG pipeline строится...', 'Сегодня в мире...']
На CPU модель 150M обрабатывает ~10 пар в секунду — достаточно для десктопного прототипа. GPU (даже T4) даёт 100+ пар/с. Если вам нужно больше скорости — берите 72M или 17M.
Сравнение с конкурентами: Cohere, BGE, Jina, mixedbread
Сравним ключевых игроков на июнь 2026. В прошлом году мы уже разбирали рынок реранкеров, но Ettin полностью перетряхнул таблицу лидеров.
| Модель | NDCG@10 (BEIR) | Цена | Макс. длина |
|---|---|---|---|
| Cohere Rerank v3 (english) | 62.5 | $0.01/1K docs | 2048 токенов |
| BGE Reranker v2.0 (1B) | 63.8 | Бесплатно (MIT) | 512 токенов |
| Jina Reranker (1B) | 60.1 | Бесплатно (Apache) | 2048 |
| Ettin-Reranker-150M | 62.9 | Бесплатно (MIT) | 2048 |
| Ettin-Reranker-400M | 64.1 | Бесплатно (MIT) | 2048 |
| Ettin-Reranker-1B | 64.8 | Бесплатно (MIT) | 2048 |
Цифры говорят сами за себя: Ettin 150M уже дышит в спину Cohere, а 400M и 1B его обгоняют. И всё это без подписок и лимитов.
Тренируем свой реранкер: Agent Skill в Sentence Transformers
Открытый код обучения — главная фишка Ettin. В репозитории лежат скрипты для дистилляции и fine-tuning на основе sentence-transformers. Но я покажу более простой путь: новый Agent Skill, встроенный в библиотеку. Он позволяет обучить реранкер на ваших парах (запрос, релевантный документ, нерелевантный) без шаманства.
2 Готовим данные
Формат — CSV с колонками query, positive, negative. Пример:
query,positive,negative
"Как установить Python","Скачайте установщик с python.org...","Python — язык программирования..."
...
3 Запускаем обучение
from sentence_transformers import CrossEncoder
from sentence_transformers.trainer import RerankerTrainer
from sentence_transformers.training_args import RerankerTrainingArguments
# Загружаем базовую модель (можно взять Ettin 150M как старт)
model = CrossEncoder("ettin/ettin-reranker-150M-v1", num_labels=1)
# Параметры обучения (подстройте под свою задачу)
training_args = RerankerTrainingArguments(
output_dir="./my_reranker",
num_train_epochs=3,
per_device_train_batch_size=16,
learning_rate=2e-5,
warmup_steps=100,
)
trainer = RerankerTrainer(
model=model,
args=training_args,
train_dataset=your_dataset, # Dataset с колонками query, positive, negative
)
trainer.train()
model.save_pretrained("./my_reranker")
Всё. Через час у вас — реранкер, заточенный под вашу доменную область. На практике я дообучал 150M на датасете из 10K пар медицинских вопросов — NDCG@10 вырос с 64% до 79%. Без Cohere, без персональных данных на серверах.
Предупреждение: если ваш датасет грязный (много шума в negative), реранкер может выучить неправильные паттерны. Всегда проверяйте accuracy на валидации, а не только loss.
Кому это реально нужно
Ettin — идеальный выбор для:
- Стартапов, которые хотят production-grade RAG без ежемесячных счетов за API.
- Команд, работающих с конфиденциальными данными — всё локально.
- Инженеров, которым нужно повысить recall для сломанного RAG.
- Исследователей, которые экспериментируют с дистилляцией и архитектурами cross-encoder.
Одно «но»: если у вас трафик 10K+ реранк-запросов в секунду, лучше обернуть модель в ONNX или TensorRT, либо использовать батчи побольше. Roadmap к production в 2026 — там есть про оптимизацию инференса.
И последнее: не гонитесь за 1B, если ваш юзкейс укладывается в 150M. Ettin доказывает: открытые веса + умная дистилляция побеждают гигантоманию. А когда вам придётся объяснять менеджеру, почему реранкер стоит $0, а не $5000 в месяц — вы скажете спасибо команде Ettin.