newsmode
search
Меню
arrow_back Назад

P4: Late Interaction Models For RAG – Hamel’s Blog - Hamel Husain

auto_awesomeКраткое саммари

В четвёртой части мини-серии по оценке и оптимизации RAG в рамках курса LLM Evals Антуан Шаффен из LightOn рассказывает о моделях позднего взаимодействия (late interaction) как альтернативе одновекторному поиску. Он объясняет, что главный недостаток плотных моделей — потеря информации при пулинге, из-за которой они плохо обобщаются на новые домены, длинные контексты и задачи с рассуждениями (BRIGHT, LongEmbed). Модели позднего взаимодействия вроде ColBERT сохраняют все токен-уровневые векторы и используют оператор MaxSim, что даёт существенный прирост: GTE-ModernColBERT показывает SOTA на LongEmbed, а Reason-ModernColBERT на 150M параметров обгоняет модели в 45 раз больше на BRIGHT. Антуан представляет PyLate — библиотеку поверх Sentence Transformers, которая упрощает обучение и оценку таких моделей, а также интегрируется с Hugging Face. В завершение он обсуждает направления развития: снижение стоимости хранения, мультимодальность (ColPali, CLaMR) и обучаемые функции схожести.

В рамках нашего курса LLM Evals я пригласил Antoine Chaffin, исследователя из LightOn, для четвёртой части нашей мини-серии из 5 частей по оценке и оптимизации RAG. Antoine — research engineer, который внёс вклад в значимые open-source инструменты, такие как ModernBERT и PyLate — библиотеку для работы с моделями позднего взаимодействия (late-interaction).

В своём докладе он объясняет внутренние ограничения одновекторного поиска, такие как потеря информации при пулинге, и представляет модели позднего взаимодействия как более мощную альтернативу для современных сценариев RAG — например, обобщения на новые домены и поиска по длинным контекстам.

Ниже — аннотированная версия презентации со ссылками на таймкоды для каждого слайда.


👉 Именно такие темы мы разбираем на нашем курсе AI Evals. Подробнее о курсе можно узнать здесь. 👈


Аннотированная презентация

Титульный слайд доклада Antoine: «Going Further: Late Interaction Beats Single Vector Limits».

Antoine представляется, рассказывая о своём бэкграунде: R&D-инженер в LightOn с Ph.D. по мультимодальному обнаружению дезинформации. Его работа сосредоточена на информационном поиске, особенно с энкодерами и моделями позднего взаимодействия, что и привело к со-созданию ModernBERT и библиотеки PyLate. Он также упоминает свою работу над OCR-free RAG-пайплайнами и активное присутствие в Twitter, где он обсуждает эти темы.

Этот слайд показывает стандартную архитектуру плотного (одновекторного) поиска. Запрос и документ по отдельности прогоняются через модель-энкодер (например, BERT), чтобы получить контекстные векторные представления для каждого токена. Затем операция пулинга (например, max, mean, токен [CLS] и т. д.) сжимает все эти токенные векторы в один вектор для запроса и один для документа. Наконец, между этими двумя векторами вычисляется оценка схожести (обычно косинусная), чтобы определить релевантность. Потеря информации на этапе пулинга — ключевое ограничение этого подхода.

Плотный векторный поиск стал стандартом для RAG-пайплайнов по нескольким причинам. Он даёт сильную производительность из коробки, а на платформах вроде Hugging Face Hub доступно огромное количество предобученных моделей под разные размеры, языки и домены. Кроме того, эти модели легко развернуть благодаря растущей экосистеме векторных баз данных и serving-API.

Оценка качества критически важна при выборе подходящей модели. Лидерборд MTEB (Massive Text Embedding Benchmark) — ценный ресурс, который собирает результаты различных бенчмарков, позволяя практикам сравнивать модели и выбирать ту, что подходит под их бюджет и доменные требования.

Antoine приводит бенчмарк BEIR как пример закона Гудхарта в действии. BEIR был создан для оценки обобщения retrieval-моделей вне домена. Однако, став стандартным бенчмарком, он начал провоцировать переобучение моделей под его конкретные датасеты. В результате топовые модели в лидерборде BEIR могут плохо обобщаться на новые, ранее не встречавшиеся сценарии, что подчёркивает важность собственных оценок на ваших данных.

Antoine утверждает: если вы не можете измерить какую-то способность, вы не сможете её улучшить. Существующие бенчмарки часто упускают важные аспекты производительности модели. Например, большинство старых моделей оценивались с окном контекста всего в 512 токенов. И хотя многие новые модели заявляют поддержку 8k токенов, недавние оценки показали, что их качество значительно деградирует за пределами 4k — ограничение, которое не улавливалось старыми бенчмарками.

Эта таблица из статьи LongEmbed иллюстрирует производительность различных embedding-моделей на задачах поиска по длинному контексту. Она показывает, что расширение моделей такими техниками, как SelfExtend или NTK, может значительно улучшить их способность работать с длинными контекстами: модель E5-Mistral + NTK достигает наивысшего среднего балла.

Поиск выходит за рамки простого совпадения по ключевым словам или семантике. Современные RAG-системы требуют более сложного поиска с рассуждениями. Например, запрос «какая Snowflake-функция отличается от UNPIVOT» требует понимания назначения функции, а не только сопоставления ключевых слов. Аналогично, математический вопрос может потребовать поиска документа, использующего ту же теорему, даже если числа другие. Такие задачи сложны для современных моделей.

Эта таблица показывает производительность различных retrieval-моделей на бенчмарке BRIGHT, который создан для задач, требующих рассуждений. Результаты демонстрируют, что даже большие, мощные модели испытывают трудности: лучшая модель достигает среднего nDCG@10 всего 24,3. Это подчёркивает сложность поиска с рассуждениями для нынешних систем.

Интересно, что BM25 — простой лексический метод поиска без deep learning — удивительно хорошо работает на этих более сложных бенчмарках с длинным контекстом и задачами на рассуждение. Его сила в отсутствии компрессии: сопоставляя точные ключевые слова, он избегает потери информации, которая преследует плотные модели, и становится надёжной базовой линией для out-of-domain задач.

Пулинг — основной недостаток плотных моделей. Процесс сжатия всех токенных векторов документа в один вектор по своей природе лоссовый. Эта компрессия вынуждает модель быть избирательной в том, какую информацию сохранять.

Этот слайд иллюстрирует, как плотные модели обучаются избирательному кодированию информации. Если модель обучена на датасете рецензий на фильмы, где запросы в основном про актёров, она научится приоритизировать и кодировать информацию об актёрах, отбрасывая детали о сюжете, музыке или темах. Такое избирательное поведение приводит к плохой производительности на out-of-domain запросах (например, спросить о сюжете) или при переносе на совершенно новые домены (например, кулинарные рецепты), где выученное представление о схожести уже неактуально.

BM25 эффективен в определённых случаях, потому что избегает пулинга и компрессии, опираясь на точное совпадение ключевых слов. В примере «Leonardo DiCaprio disaster» в запросе напрямую совпадает с терминами в документе. Однако этот подход проваливается, когда нет прямого лексического пересечения — например, с синонимами или другими языками.

Модели позднего взаимодействия предлагают решение, заменяя шаг пулинга. Вместо сжатия токенных векторов в один они сохраняют всю информацию на уровне токенов. Затем для вычисления итоговой оценки применяется оператор схожести на уровне токенов — например, MaxSim. MaxSim работает так: для каждого токена запроса находится максимальная схожесть со всеми токенами документа, а затем эти максимальные оценки суммируются.

Этот мем оспаривает идею, что использование вектора большего размера может решить проблему компрессии информации. Хотя более крупный вектор может хранить больше информации, он не решает фундаментальную проблему конфликта сигналов, когда несколько разных концептов втиснуты в одно представление.

Этот слайд даёт наглядное сравнение плотных моделей и моделей позднего взаимодействия. Плотная модель вынуждает разные концепты (например, актёров и сюжет) в одно конфликтующее представление. В отличие от неё, модель позднего взаимодействия сохраняет отдельные представления на уровне токенов. Оператор MaxSim тогда сможет сопоставить запрос об актёрах с конкретными токенами-актёрами, а запрос о сюжете — с токенами сюжета, выдавая чистые, неискажённые сигналы для каждого аспекта документа.

Модели позднего взаимодействия, такие как ColBERT, демонстрируют сильную производительность вне домена, превосходя даже in-domain плотные модели. Antoine подчёркивает: поскольку понятие «out-of-domain» сложно определить, лучший подход — тестировать эти модели на ваших собственных данных, чтобы увидеть выгоды.

Модель GTE-ModernColBERT, использующая позднее взаимодействие, достигает state-of-the-art результатов на бенчмарке LongEmbed. Примечательно, что она превосходит другие модели с большим отрывом, хотя обучалась на документах максимальной длиной всего 300 токенов, тогда как базовые модели, с которыми её сравнивают, обучались с окном контекста 8k. Это подчёркивает её впечатляющие способности к обобщению при поиске по длинному контексту.

На бенчмарке BRIGHT, требующем рассуждений, Reason-ModernColBERT со 150M параметров обходит все 7B-моделей (которые в 45 раз больше). Она даже конкурирует с проприетарной моделью ReasonIR-8B, обученной на тех же данных. Это демонстрирует силу архитектуры позднего взаимодействия для сложных retrieval-задач.

Этот слайд даёт прямое сравнение «яблоки к яблокам» на бенчмарке BRIGHT. Модель позднего взаимодействия достигает среднего балла 19,61, тогда как плотная (одновекторная) модель с тем же бэкбоном и обучающими данными набирает лишь 12,31. Этот значительный разрыв подчёркивает эффективность позднего взаимодействия для сложного поиска с рассуждениями.

Интерпретируемость — ценный бонус моделей позднего взаимодействия вроде ColBERT. Поскольку оператор MaxSim выполняет детализированное сопоставление на уровне токенов, можно увидеть, какие именно части документа дали вклад в совпадение. Это позволяет определить конкретный под-чанк текста, наиболее релевантный запросу, что полезно для отладки и для подачи более точного контекста в LLM в RAG-пайплайне.

Несмотря на преимущества, плотные модели всё ещё остаются мейнстримом. Antoine связывает это с тремя основными факторами:

Стоимость хранения: хранить n токенных векторов вместо одного дороже, хотя такие техники, как квантизация и снижение footprint, делают это всё более управляемым. Поддержка VectorDB: изначально большинство векторных БД не поддерживали иной механизм поиска, нужный моделям позднего взаимодействия. Однако ситуация меняется: крупные провайдеры, такие как Vespa, Weaviate и LanceDB, теперь предлагают поддержку. Нехватка доступных инструментов: широкая доступность библиотек вроде Sentence Transformers делает работу с плотными моделями очень простой.

Чтобы решить проблему нехватки доступных инструментов, Antoine с коллегами создали PyLate — библиотеку, расширяющую популярный фреймворк Sentence Transformers на мульти-векторные модели. Поскольку позднее взаимодействие — это, по сути, плотная модель без пулинга и с оператором MaxSim, PyLate может опираться на существующую экосистему Sentence Transformers. Это обеспечивает эффективное и наблюдаемое обучение (multi-GPU, FP/BF16, W&B) и поддержку всех базовых моделей.

PyLate хорошо интегрирована с экосистемой Hugging Face. Это позволяет легко делиться моделями на Hub и включает такие возможности, как автоматическое создание model card, что упрощает документирование и распространение обученных моделей позднего взаимодействия.

Синтаксис обучения моделей в PyLate спроектирован максимально похожим на Sentence Transformers. Эта привычность облегчает разработчикам адаптацию существующих шаблонов и рабочих процессов. Пример кода показывает, как определить модель, загрузить датасет, настроить аргументы обучения и запустить тренировку всего с несколькими модификациями стандартного скрипта Sentence Transformers.

PyLate подходит не только для обучения; она также предоставляет инструменты для оценки. В неё встроен эффективный индекс на основе PLAID для быстрого поиска. Также есть вспомогательные функции, использующие библиотеку ranx, чтобы легко вычислять стандартные IR-метрики (такие как NDCG и Recall) по результатам поиска. Система совместима со стандартными форматами данных (например, MTEB, BEIR), так что можно оценивать модели на существующих бенчмарках или на собственных данных.

Одно из направлений будущих исследований — снижение стоимости хранения мульти-векторных моделей. Изучаются такие техники, как иерархический пулинг и квантизация, чтобы найти оптимальный компромисс между размером индекса и производительностью. Цель — сделать footprint мульти-векторных индексов сопоставимым с одновекторными представлениями без существенной потери качества.

Ещё одно перспективное направление — применение позднего взаимодействия к другим модальностям помимо текста. Такие подходы, как ColPali, уже использовали ColBERT для OCR-free RAG с текстом и изображениями. На диаграмме показана модель CLaMR, которая использует позднее взаимодействие для мультимодального поиска контента — по видео, аудио, OCR и метаданным — стабильно превосходя одновекторные подходы.

Последнее направление будущего — разработка более совершенных функций схожести. Хотя оператор MaxSim эффективен и обладает хорошими свойствами, он относительно наивен. Исследования обучаемых функций позднего взаимодействия, как показано в статье «Efficient Document Ranking with Learnable Late Interactions» от Google, открывают возможность дальнейшего улучшения производительности этих моделей.

Antoine завершает, резюмируя ключевые выводы. Модели позднего взаимодействия преодолевают внутренние ограничения одновекторного поиска и хорошо подходят для современных, реальных сценариев (out-of-domain, длинный контекст, задачи с рассуждениями). С растущей поддержкой в экосистеме и инструментами вроде PyLate экспериментировать с этими моделями стало проще, чем когда-либо. Он призывает аудиторию попробовать существующие модели на своих данных и обучить собственные специализированные модели, используя предоставленные ресурсы.


Сессия Q&A

(25:52) Почему модели позднего взаимодействия до сих пор не стали мейнстримом, учитывая их преимущества? Antoine считает, что это всё ещё ранние дни. Инструменты и поддержка VectorDB созрели лишь недавно. Принятию новых технологий требуется время, особенно когда нужны изменения в продакшен-системах. Он отмечает, что многим сценариям не нужно масштабироваться до миллионов документов, а для тех, кому нужно, современные индексы делают это возможным. По мере появления большего числа моделей для разных языков и доменов он ожидает роста адопции. Что касается latency: хотя позднее взаимодействие может быть чуть медленнее, прирост качества часто перевешивает небольшое увеличение задержки, которое к тому же редко становится узким местом в сложных RAG-пайплайнах. (31:04) Если дообучить и плотную векторную модель, и модель позднего взаимодействия на одних и тех же in-domain данных, сохраняется ли разрыв в качестве? Да, разрыв сохраняется даже in-domain. Antoine ссылается на сравнение на бенчмарке BRIGHT, где модель позднего взаимодействия значительно обошла одновекторную модель с тем же бэкбоном и теми же обучающими данными. Он также отмечает, что дообучать модель позднего взаимодействия проще и стабильнее: меньше риска, что знания модели «коллапсируют» в новое обучающее распределение, поскольку обновления более гранулярные. (33:20) Насколько просто начать работу и дообучить модель с PyLate? Есть ли советы? Это очень просто, особенно для тех, кто знаком с Sentence Transformers. Шаблонный код почти идентичен. Antoine рекомендует использовать функцию in-training evaluation для мониторинга качества, что особенно полезно при свипе гиперпараметров. Он также упомянул, что процесс обучения в целом более стабилен и сходится быстрее, чем у одновекторных моделей. В документации и репозитории PyLate есть шаблоны и более подробные рекомендации. (34:22) Какие распространённые ошибки или точки путаницы возникают у людей, переходящих с одновекторных моделей на модели позднего взаимодействия? Antoine не видел много серьёзных подводных камней. Он говорит: если вы умеете обучать одновекторную модель, то с PyLate сможете обучить и модель позднего взаимодействия. Обычные советы по-прежнему применимы: подбирать температуру для контрастивного лосса, использовать большой batch size и т. д. Документация покрывает большинство типичных вопросов, и он призывает пользователей открывать issues или писать в Twitter за помощью.


👉 Именно такие темы мы разбираем на нашем курсе AI Evals. Подробнее о курсе можно узнать здесь. 👈


Видео

Здесь полное видео: