Skip to content
Neuronavt
Go back

ColBERT и MUVERA: где они полезны

Исследование7/10

Коротко

Автор сравнил ColBERT и MUVERA с плотным поиском на четырёх размеченных корпусах и обнаружил, что преимущества зависят от домена, языка, модели и метрики. Для обычного текста часто выгоднее сначала нарезать документы на фрагменты, а новые методы проверять на собственных данных.

Контекст

Автор давно работает с Qdrant и готовил практический курс по этой системе. Поводом для эксперимента стала доступная в экосистеме Qdrant реализация MUVERA; автор хотел проверить её и ColBERT на практике, сопоставив с плотным поиском multilingual-e5-large.

Главное

Как сделано

ColBERT хранит векторы отдельных токенов и при поиске сопоставляет каждый токен запроса с наиболее похожим токеном документа — это позднее взаимодействие. Такая детализация обходится дорого: вместо примерно 4 КБ на документ для обычного плотного вектора матрица ColBERT занимает около 150 КБ. MUVERA сжимает многовекторное представление в один вектор фиксированного размера для отбора кандидатов, после чего точное ранжирование выполняет ColBERT.

В сравнении использовались русская и английская Википедия из MIRACL, российские кодексы и SciFact — около 3000 запросов. Основной плотной моделью была multilingual-e5-large; размеры e5-large и jina-colbert-v2 почти совпадают: 560 и 559 млн параметров. Автор оценивал разные метрики, менял число кандидатов и число корзин MUVERA, а также сравнил ColBERT с плотным поиском по фрагментам и проверил методы на байткоде Python.

Результаты

Итог на четырёх основных наборах неоднороден: один домен заметно выиграл от ColBERT, один ухудшился, а на двух разница была небольшой. На российских кодексах переход от recall@10 к recall@1 выявил прирост ColBERT на 4,7 процентного пункта: плотный поиск уже давал recall@10 93,7%, поэтому метрика почти скрывала разницу на первых местах. На русской Википедии ColBERT, напротив, ухудшил выдачу. Для английского SciFact специализированная answerai-colbert-small превзошла мультиязычную jina-colbert-v2 по recall@1: 64,7% против 58,3%.

На кодексах MUVERA с отбором 100 кандидатов дала MRR 0,737 против 0,823 у плотного отбора кандидатов с последующим ColBERT; увеличение пула до 1000 подняло MUVERA до 0,811. В тесте русской Википедии нарезка документов на 125 тысяч фрагментов повысила качество почти на 5 пунктов относительно статей целиком. ColBERT при значительно большем индексе результата нарезки не улучшил: оба режима показали 85,3%.

На байткоде Python e5 поставила правильную функцию первой в 6% случаев, ColBERT — в 97%, а BM25 по тройкам соседних инструкций — в 94–96%. При отборе 100 кандидатов MUVERA обеспечила ColBERT 80% результата, тогда как отбор e5 — 48%; с 500 кандидатами MUVERA достигла 93%. На функциях из сторонних библиотек e5 дала 4%, ColBERT — 99,7%.

Ограничения

Эксперименты охватывают четыре размеченных набора и около 3000 запросов; многие замеры ColBERT использовали мультиязычную jina-colbert-v2, поэтому специализированная модель могла бы изменить результаты. Сравнение на русской Википедии показывает конкретный компромисс индекса, но не доказывает, что нарезка всегда лучше. Байткодный тест был специальным экспериментом на небольших корпусах: выводы о генах, химических формулах и редких языках остаются гипотезами, которые автор не проверял. В статье не приводится денежная оценка стоимости хранения или вычислений; при этом ColBERT требует на порядки больше места, а BM25 по n-граммам оказался сильным и дешёвым базовым методом для байткода.

Что взять себе

Читать оригинал, если…

Откройте оригинал, если нужны детали конкретных датасетов, графики и настройки экспериментов или практическая реализация поиска в Qdrant.