/ru/research · что мы измерили
Каждая запись — один вопрос, замер против контролей и то, что не получилось. Код и данные открыты: наши цифры пересчитываются одной командой.
TypeSafe выпустила Jev — модель, которая не пишет текст, а возвращает типизированное решение с калиброванной вероятностью. Мы поставили её на свой отложенный набор из 18 792 пар «требование ↔ резюме» против собственного дообученного кросс-энкодера. Zero-shot Jev дал 0.868 против наших 0.883, и разница оказалась статистически неразличимой. Зато заявленная калибровка на наших данных не подтвердилась (ECE 0.117 против 0.071), а оба числа держатся на дефекте разметки, на который Jev опирается сильнее нашей модели.
Авторы: slavb18
Заказчику нужен закрытый контур, значит проверку соответствия кандидата вакансии надо считать без внешнего API. Разметку взяли у самого облака — 181 117 его вердиктов уже лежали в базе. Метрикой сделали не «лучше облака», а «воспроизводит облако», и у этого есть измеренный потолок: 0.924, а не 1.0. Кросс-энкодер на 178M параметров закрывает две трети разрыва, считает на CPU за 171 мс на пару и стоит 0.77 доллара аренды. Отдельно — три места, где качество теряется молча, и как каждое ловится.
Авторы: slavb18
Двухфазный поиск: обычный вектор отбирает 50 кандидатов, ColBERT-модель их переранжирует. Замерили, сколько вторая фаза стоит и сколько приносит: нужный фрагмент оказывается первым в 73% случаев вместо 36%. По дороге выяснилось, что мы не передавали модели её собственный маркер роли, и это ещё 9 пунктов сверху. Плюс замер цены: пулинг, fp16, int8 и int4 — что из этого бесплатно, а что ломает выдачу.
Авторы: slavb18
В нашем матчинге кандидатов почти половина того, что доходит до дорогого LLM-этапа — мусор. Мы перебрали GPU-реранкеры, дообучение CrossEncoder и комбо признаков, чтобы отфильтровать его дешевле. Победил самый простой сигнал — пересечение навыков. Разбираем цифры, что сработало и почему текст проиграл навыкам.
Авторы: slavb18
Совет LoRA-экспертов обменивается скрытыми состояниями, а мы пытаемся подслушать обмен. Мысль отдельного эксперта читается, само сообщение канала — теряет автора в 75 случаях из 75. С граблями, замерами, контролями и открытым кодом.
Авторы: slavb18
Взяли автоэнкодер из свежей работы CALM (Continuous Autoregressive Language Models), который учится упаковывать чанк из K=4 токенов в один непрерывный вектор и разворачивать обратно, и обучили его не на 15 миллиардах токенов Pile на 8 GPU, как в оригинале, а на 18 тысячах коротких строк с требованиями из IT-вакансий - на обычной машине без видеокарты. По дороге выгребли три классических грабли (flash-attn без CUDA, deepspeed, который не импортируется под NumPy 2.x, и тихий OOM на 33 ГБ логитов). Ниже - подробный разбор архитектуры, конфигов и честные результаты round-trip-реконструкции.
Авторы: slavb18
Практический эксперимент по сравнению локальных кросс-энкодеров (RUbert, BAAI) с облачным реранкером NVIDIA на реальных данных сопоставления вакансий и кандидатов.
Авторы: slavb18