Перейти к содержанию
modelium.
Начать с задачи
←

vLLM Rerank API: локальная переоценка найденных фрагментов RAG

vLLM предоставляет /v1/rerank для совместимой scoring-модели: передайте запрос и уже найденные фрагменты, получите список с оценками релевантности и исходными индексами. Для русских тестовых текстов можно начать с BAAI/bge-reranker-v2-m3, но качество и совместимость именно вашего стенда нужно проверить. Reranker не ищет документы в хранилище и не генерирует ответ.

На 5 октября 2026 года исходные документы vLLM на коммите 138810056093301f4881050fcf2b1786939da387 описывают Scoring и Rerank API. Здесь показано, как поставить локальную модель после извлечения кандидатов и отличить реальное изменение порядка от красивой оценки. Это проверка документации и исходников, а не выполненный Modelium запуск модели. s1 s3

Когда нужен reranking, а не ещё один поиск?

Для RAG сначала получите кандидатов из индекса с помощью embedding- или гибридного поиска, затем дайте запрос и тексты кандидатов отдельной scoring-модели. vLLM вычисляет оценку пар «запрос–фрагмент», возвращает упорядоченный список, но не хранит индекс и не создаёт ответ с цитатами. У модельных семейств бывают разные scoring-задачи: для обычного cross-encoder это классификация пары, для bi-encoder — сопоставление embeddings; произвольная chat-модель без scoring-задачи здесь не подходит. s1 s2

Практический маршрут: поиск документов → подходящий reranker → совместимое железо → сервер vLLM → список results → сравнение с размеченным ожиданием. В первом тесте используйте вымышленные русские фрагменты, а не закрытые документы. На одинаковых запросах сохраните исходную выдачу индекса до обращения к reranker; без неё нельзя сказать, повысилось ли качество или только поменялся порядок. s1 s7

Как подготовить модель и локальный сервер?

В списке совместимых моделей vLLM прямо указана BAAI/bge-reranker-v2-m3 для архитектуры XLMRobertaForSequenceClassification; закреплённый HF API подтверждает эту архитектуру и наличие model.safetensors. Автор описывает модель как multilingual, однако эффективность на вашей русской выборке не доказана. В карточке стоит метка apache-2.0: читайте сам текст лицензии и условия остальных компонентов прежде чем делать вывод о коммерческом стеке. Размер файла весов не является минимальной RAM или VRAM. s1 s7 s8

Для воспроизводимости фиксируйте HF ревизию 953dc6f6f85a1b2dbfca4c34a2796e7dde08d41e и сверяйте версию собственного vLLM с цитируемым коммитом документации. Установите vLLM по инструкции для вашего GPU и ОС; наличие документации не гарантирует запуск на CPU или любом драйвере. На подготовленном совместимом стенде команда vllm serve BAAI/bge-reranker-v2-m3 --revision 953dc6f6f85a1b2dbfca4c34a2796e7dde08d41e --runner pooling --host 127.0.0.1 --port 8000 задаёт pooling и локальную привязку; --runner pooling обычно определяется автоматически, но явный флаг помогает зафиксировать режим. По имени HF модель может загружаться через сеть: для закрытого контура сначала обеспечьте кеш и отдельно проверьте сетевые обращения. Modelium эту команду не запускал. s1 s2 s3 s8

Не открывайте vLLM прямо в сеть. По документации --api-key защищает префикс /v1, но маршрут /rerank того же сервера остаётся незащищённым: поэтому для внешних клиентов нужны отдельные сетевые правила или прокси с проверенным списком разрешённых путей. Привязка к loopback — только первый барьер на этом хосте, не доказательство отсутствия исходящих соединений. s4 s6

Как отправить запрос и проверить исходный порядок?

После загрузки выполните curl -fsS http://127.0.0.1:8000/v1/models и сверьте модель в ответе; список моделей ещё не доказывает работу scoring. Для пробного POST на http://127.0.0.1:8000/v1/rerank передайте JSON {"model":"BAAI/bge-reranker-v2-m3","query":"Где указан ИНН поставщика?","documents":["Сроки отпуска сотрудников указаны в графике.","В счёте указан ИНН поставщика и дата.","Команда подготовила акт приёмки."],"top_n":3} с Content-Type: application/json. Например, сохраните JSON в локальный файл rerank-request.json и вызовите curl -fsS -X POST http://127.0.0.1:8000/v1/rerank -H 'Content-Type: application/json' --data-binary @rerank-request.json. Такой вызов следует формату официального примера; сервер и модель у Modelium не запускались. s1 s5 s6

В ответе по документации ожидается массив results с index, document.text и relevance_score. index — индекс в исходном массиве documents, а позиция элемента в results — новая позиция после reranking. top_n необязателен: без него обычно возвращаются все фрагменты. Для тестового вопроса заранее пометьте фрагмент с ИНН как ожидаемо релевантный (index=1), затем сравните реальный список индексов с исходным [0,1,2]. Не выдавайте ожидаемый index=1 на первом месте за уже полученный результат. s1

Отдельный /score принимает queries и documents, возвращает оценки для пар в исходной связке; не путайте его JSON data с отсортированным results у /v1/rerank. При ошибке «model does not support Rerank» проверьте, что загрузили именно scoring-модель и что выбранная версия vLLM распознала pooling-задачу. Модель Qwen3 Reranker не подставляйте в ту же команду вслепую: vLLM документирует для исходной Qwen/Qwen3-Reranker-0.6B отдельные --hf_overrides. s1 s2 s6

Как оценить пользу на собственных вопросах?

Для каждого размеченного вопроса сохраняйте выдачу первого этапа (ID документа, текст, порядок), результат index после rerank, ожидаемый релевантный ID и версию модели. Пересчитайте позиции документа до/после только среди тех же кандидатов; если нужного фрагмента нет в первом этапе, reranker не сможет его добавить. Для пилота измеряйте recall@k: число вопросов, где нужный документ среди top-k / число размеченных вопросов при одинаковых вопросах и одинаковом наборе кандидатов. Это предложенная процедура сравнения, не опубликованный показатель качества BAAI и не измерение Modelium. s1 s7

Не интерпретируйте relevance_score как вероятность правильности ответа или универсальный порог для разных моделей. Авторская карточка предлагает сигмоиду для отображения собственного score в диапазон 0–1, но этот диапазон не доказывает калибровку на вашей выборке. Если порядок не меняется или ухудшается, проверьте состав кандидатов, длину фрагментов, язык, обрезку контекста, выбранную scoring-модель и свои метки; затем повторите на тех же вопросах, а не подбирайте оценку на одном примере. s1 s7

Когда остановиться и куда двигаться дальше?

При нехватке памяти не выводите требования из размера весов: сначала соберите логи загрузки, GPU/CPU, параметры batching и длины фрагментов, затем сократите тестовый набор или выберите другой совместимый runtime. Если вам нужен только embedding-этап, откройте vLLM Embeddings API; если модельная альтернатива — Qwen3 Reranker. Для оценки полноценного поискового тракта и ответов с цитатами основной следующий шаг — протокол проверки RAG. s1 s2

По окончании теста остановите процесс vLLM через Ctrl+C, сохраните конфигурацию и обезличенные результаты в журнале эксперимента. Документация описывает серверный инференс, но Modelium не проводил собственный прогон, не публикует чисел скорости или качества и не обещает, что тестовая команда пройдёт на любом железе. s3

Источники

  1. vLLM: Scoring Usages и Cohere Rerank API — revision 138810056093301f4881050fcf2b1786939da387. Получено 05.10.2026.
  2. vLLM: pooling runner и задачи — revision 138810056093301f4881050fcf2b1786939da387. Получено 05.10.2026.
  3. vLLM: online serving, различия OpenAI и Cohere API — revision 138810056093301f4881050fcf2b1786939da387. Получено 05.10.2026.
  4. vLLM: Security, API key limitations — revision 138810056093301f4881050fcf2b1786939da387. Получено 05.10.2026.
  5. vLLM: пример запроса rerank API — revision 138810056093301f4881050fcf2b1786939da387. Получено 05.10.2026.
  6. vLLM: исходный код маршрутов rerank — revision 138810056093301f4881050fcf2b1786939da387. Получено 05.10.2026.
  7. BAAI/bge-reranker-v2-m3: карточка автора — revision 953dc6f6f85a1b2dbfca4c34a2796e7dde08d41e. Получено 05.10.2026.
  8. BAAI/bge-reranker-v2-m3: HF API, метаданные ревизии — revision 953dc6f6f85a1b2dbfca4c34a2796e7dde08d41e. Получено 05.10.2026.