Движок реранкинга
Реранкинг — это опциональный второй этап извлечения, который переупорядочивает кандидатные результаты с помощью специализированной модели cross-encoder. Хотя извлечение на основе эмбеддингов работает быстро, оно оперирует предварительно вычисленными векторами, которые могут не захватывать точную релевантность. Реранкинг применяет более мощную модель к меньшему набору кандидатов, значительно улучшая точность.
Принцип работы
- Первый этап (извлечение): Поиск по векторному сходству возвращает широкий набор кандидатов (например, топ-50).
- Второй этап (реранкинг): Модель cross-encoder оценивает каждого кандидата относительно запроса, создавая уточнённое ранжирование.
- Финальный результат: Топ-k переранжированных результатов возвращается вызывающей стороне.
graph LR
QUERY["Запрос извлечения"] --> EMBED["Поиск по эмбеддингам<br/>Топ-50 кандидатов"]
EMBED --> RERANK["Реранкер<br/>Оценка cross-encoder"]
RERANK --> RESULTS["Переранжированный топ-K"]Зачем нужен реранкинг
| Метрика | Без реранкинга | С реранкингом |
|---|---|---|
| Охват recall | Высокий (широкое извлечение) | Тот же (без изменений) |
| Точность в топ-5 | Умеренная | Значительно улучшена |
| Задержка | Меньше (~50 мс) | Выше (~150 мс дополнительно) |
| Стоимость API | Только эмбеддинги | Эмбеддинги + реранкинг |
Реранкинг наиболее ценен когда:
- База памяти большая (1000+ записей).
- Запросы неоднозначны или на естественном языке.
- Точность в начале списка результатов важнее задержки.
Поддерживаемые провайдеры
| Провайдер | Значение конфига | Описание |
|---|---|---|
| Jina | PRX_RERANK_PROVIDER=jina | Модели реранкера Jina AI |
| Cohere | PRX_RERANK_PROVIDER=cohere | API реранкинга Cohere |
| Pinecone | PRX_RERANK_PROVIDER=pinecone | Сервис реранкинга Pinecone |
| Pinecone-совместимый | PRX_RERANK_PROVIDER=pinecone-compatible | Пользовательские Pinecone-совместимые эндпоинты |
| Нет | PRX_RERANK_PROVIDER=none | Отключить реранкинг |
Конфигурация
PRX_RERANK_PROVIDER=cohere
PRX_RERANK_API_KEY=your_cohere_key
PRX_RERANK_MODEL=rerank-v3.5Резервные ключи провайдеров
Если PRX_RERANK_API_KEY не установлен, система откатывается к ключам, специфичным для провайдера:
- Jina:
JINA_API_KEY - Cohere:
COHERE_API_KEY - Pinecone:
PINECONE_API_KEY
Отключение реранкинга
Чтобы работать без реранкинга, либо опустите переменную PRX_RERANK_PROVIDER, либо установите её явно:
PRX_RERANK_PROVIDER=noneИзвлечение по-прежнему работает с использованием лексического сопоставления и векторного сходства без этапа реранкинга.
Следующие шаги
- Модели реранкинга — подробное сравнение моделей
- Движок эмбеддингов — первый этап извлечения
- Справочник конфигурации — все переменные окружения