Назад в блог

Поиск идеального матча: тестируем локальные Cross-Encoder модели против NVIDIA Reranker в HR-домене

Практический эксперимент по сравнению локальных кросс-энкодеров (RUbert, BAAI) с облачным реранкером NVIDIA на реальных данных сопоставления вакансий и кандидатов.

Авторы: slavb18

Семантический поиск по резюме и вакансиям давно стал стандартом в HRTech. Обычно это работает по двухкупольной схеме (Bi-encoders): мы быстро кодируем тексты в векторные представления (эмбеддинги) и ищем кандидатов по косинусному сходству.

Но косинусное сходство векторов улавливает лишь общие темы и ключевые слова. Для точного сопоставления опыта кандидата требованиям работодателя нужен второй этап — переранжирование (Reranking) с помощью тяжелых Cross-Encoder моделей.

В этом материале мы расскажем о нашем практическом эксперименте: как мы развернули инфраструктуру на удаленном сервере и протестировали несколько популярных кросс-энкодеров на реальных данных сопоставления вакансий и кандидатов против облачного решения NVIDIA Reranker.


Что и как мы сравнивали

Для проведения честного бенчмарка мы выгрузили из рабочей базы данных 95 предложений (Offers), по которым у нас уже были накоплены:

  • matched — реальные эталонные оценки релевантности кандидата вакансии (наш ground truth).

  • matchedBatch — оценки, выставленные облачной моделью NVIDIA Reranker (rerank-qa-mistral-4b).

Выборка была сбалансирована: 50% предложений имели высокие оценки соответствия (≥ 0.7), и 50% — низкие.

Метрики качества

Для оценки качества работы моделей использовались две классические статистические метрики:

  • Корреляция Спирмена (Spearman's Rho) — ключевая метрика для поиска и ранжирования. Она оценивает монотонность взаимосвязи (насколько хорошо модель сохраняет правильный относительный порядок кандидатов в выдаче).

  • Корреляция Пирсона (Pearson's r) — оценивает линейную зависимость между скором модели и эталоном.


Участники тестирования

Мы выбрали 5 популярных моделей для сравнения:

  1. WpythonW/RUbert-tiny_custom_cross-encoder — ультра-легковесный отечественный кросс-энкодер на базе RuBERT-tiny.

  2. DiTy/cross-encoder-russian-msmarco — классический русскоязычный реранкер на базе RuBERT-base.

  3. BAAI/bge-reranker-base — популярный азиатский мультипликативный реранкер среднего размера.

  4. BAAI/bge-reranker-large — тяжелая версия BGE для высокоточного ранжирования.

  5. s-nlp/ruRoberta-large-paraphrase-v1 — кросс-энкодер от SberDevices для оценки парафраз.


Результаты бенчмарка

Вот какие цифры мы получили по итогам запусков на тестовой выборке:

Модель Spearman (vs True Matched) Pearson (vs True Matched) Spearman (vs Nvidia) Pearson (vs Nvidia) Статус / Примечание
Nvidia (rerank-qa-mistral-4b) 0.3505 0.2519 1.0000 1.0000 Победитель (Baseline)
WpythonW/RUbert-tiny_custom_cross-encoder 0.2561 0.0242 -0.0559 -0.1393 Лучшая среди локальных по ранжированию
BAAI/bge-reranker-large 0.1051 0.3183 0.0729 0.0717 Высокая линейная точность
BAAI/bge-reranker-base 0.0394 0.1248 -0.0711 -0.0923 Слабая корреляция
DiTy/cross-encoder-russian-msmarco Ошибка: Нет ONNX версии в репозитории
s-nlp/ruRoberta-large-paraphrase-v1 Ошибка: Не поддерживается TEI как реранкер

Главные инсайды и грабли

1. Облачный гигант по-прежнему впереди

Модель Nvidia Reranker на базе архитектуры Mistral показала наилучшую ранговую корреляцию Спирмена (0.3505). Она точнее всего распределяет кандидатов сверху вниз, отправляя неподходящих в подвал выдачи.

2. Феномен RUbert-tiny

Малыш RUbert-tiny_custom_cross-encoder приятно удивил. При минимальном размере и времени инференса (около 230 мс на пару на CPU) он выдал корреляцию Спирмена 0.2561.

Однако обратите внимание на его корреляцию Пирсона (0.0242). Это значит, что модель отлично справляется с бинарным разделением ("хороший кандидат" / "плохой кандидат"), но абсолютно не умеет выстраивать плавную и линейную шкалу оценок.

3. Нюансы Hugging Face TEI на CPU

Если вы решите развернуть TEI на процессорах (CPU) без использования видеокарт, вас ждут два ограничения:

  • Требование ONNX формата: Веб-сервер TEI в CPU-режиме требует наличия предобученных ONNX-файлов (model.onnx) прямо в репозитории модели на Hugging Face. Именно поэтому упала модель DiTy — у неё в репозитории были только PyTorch веса, и TEI не смог их инициализировать.

  • Специфика архитектуры: Модель s-nlp/ruRoberta-large-paraphrase-v1 упала с ошибкой model is not a re-ranker model. TEI строго проверяет конфигурационные файлы (config.json) и ожидает увидеть стандартную структуру sequence classification с одним выходным лейблом.


Резюме

Если вам нужна максимальная точность ранжирования "из коробки" и бюджет позволяет — облачный Nvidia Reranker остается лучшим выбором.

Если же вы строите независимый и экономичный контур на собственных CPU-серверах:

  • Для быстрого отсева мусора на первом этапе идеально подойдет компактный RUbert-tiny.
  • Для более тонкой оценки и построения скоринговых карт стоит смотреть в сторону BAAI/bge-reranker-large, предварительно прогрев кэш его ONNX-весов.
iconicompany

агрегатор аутстаффинга ·
проектная работа для ИТ-специалистов

заказчикам Платформа

Вход для заказчиков — отдельная страница, не витрина для специалистов.

примечания к спецификации
  • из проекта imatching берётся только тема кабинета — функциональность кабинета не переносится
  • цвета — из темы кабинета imatching
  • шрифты — из темы кабинета imatching: Bricolage Grotesque · Public Sans · JetBrains Mono
  • регистр — «воздух публичного сайта», а не плотность кабинета
  • тип продукта — landing, публичный сайт
  • не админка
  • не мобильное приложение
  • ориентир по типу продукта — skillstaff.ru, и только по типу
  • бренд и оформление skillstaff.ru не копируются
  • темы различаются: собственный продукт (эта витрина) и движок (страница «Платформа»)
  • собственный продукт — ИТ-аутстаффинг; витрина сделана для него
  • тендерная история на главную не выносится — она живёт на странице «Платформа»

© 2026 iconicompany

отклик — ссылкой на hh-резюме · без регистрации