Новости

Почему модель отложенного взаимодействия является стандартом для следующего поколения RAG?

2024-08-05

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina



Колонка AIxiv — это колонка, в которой Machine Heart публикует академический и технический контент. За последние несколько лет колонка Heart of the Machine AIxiv получила более 2000 отчетов, охватывающих ведущие лаборатории крупнейших университетов и компаний по всему миру, что эффективно способствует академическому обмену и распространению информации. Если у вас есть отличная работа, которой вы хотите поделиться, пожалуйста, внесите свой вклад или свяжитесь с нами для отчета. Электронная почта для отправки: [email protected];

Чжан Инфэн: соучредитель Infra, обладающий многолетним опытом в области поиска, искусственного интеллекта и развития инфраструктуры инфраструктуры. В настоящее время он работает над созданием следующего поколения основных продуктов RAG.

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

В настоящее время существует два основных типа архитектур моделей ранжирования:

1. Двойной энкодер. Если взять в качестве примера модель BERT, она кодирует запросы и документы отдельно и, наконец, проходит через уровень объединения, так что выходные данные содержат только один вектор. На этапе ранжирования запроса вам нужно только вычислить сходство двух векторов, как показано на рисунке ниже. Двойные кодировщики могут использоваться как для этапов ранжирования, так и для переранжирования, и векторный поиск фактически является этой моделью ранжирования. Поскольку двойной кодировщик кодирует запрос и документ отдельно, он не может уловить сложную интерактивную связь между запросом и токенами документа, что приведет к большим семантическим потерям. Однако для завершения сортировки и оценки необходим только векторный поиск. расчета, эффективность выполнения повышается очень сильно.



2. Кросс-энкодер. Cross-Encoder использует единую модель кодировщика для одновременного кодирования запросов и документов. Он может фиксировать сложное взаимодействие между запросами и документами и обеспечивать более точные результаты ранжирования при поиске. Cross-Encoder не выводит вектор, соответствующий токену запроса и документа, но добавляет классификатор для непосредственного вывода оценки сходства запроса и документа. Его недостатком является то, что из-за необходимости совместного кодирования каждого документа и запроса во время запроса, что делает сортировку очень медленной, Cross-Encoder можно использовать только для изменения порядка конечных результатов. Например, изменение порядка 10 лучших результатов предварительного отбора по-прежнему занимает секунды.



С этого года другой тип работ, представленный ColBERT [Ссылка 1], привлек широкое внимание сообщества разработчиков RAG. Как показано на рисунке ниже, он имеет некоторые характеристики, которые существенно отличаются от двух вышеупомянутых типов моделей ранжирования:

Во-первых, по сравнению с Cross Encoder, ColBERT по-прежнему использует стратегию двойного кодирования, используя независимые кодировщики для кодирования запросов и документов. Таким образом, токен запроса и токен документа не влияют друг на друга во время кодирования. Такое разделение делает возможным кодирование документа. обрабатывается в автономном режиме, и при запросе кодируется только запрос, поэтому скорость обработки намного выше, чем у Cross Encoder;

Во-вторых, по сравнению с двойным кодером, ColBERT выводит несколько векторов вместо одного вектора, который получается непосредственно из последнего выходного слоя преобразователя, в то время как двойной кодер преобразует несколько векторов в один вектор через выходной слой объединения. таким образом теряя некоторую семантику.

При расчете сортировки ColBERT вводит функцию сходства с отложенным интерактивным расчетом и называет ее максимальным сходством (MaxSim). Метод расчета следующий: для каждого вектора токена запроса вычисляется сходство с векторами, соответствующими всем токенам документа. отслеживать максимальный балл для каждого токена запроса. Общая оценка запроса и документа представляет собой сумму этих максимальных оценок косинуса. Например, для запроса с 32 векторами токенов (максимальная длина запроса — 32) и документа со 128 токенами необходимо выполнить 32*128 операций сходства, как показано на рисунке ниже.

Для сравнения, Cross Encoder можно назватьМодель раннего взаимодействия, а работу, представленную ColBERT, можно назватьМодель позднего взаимодействия.



На следующем рисунке приведено сравнение вышеуказанных моделей сортировки с точки зрения производительности и качества сортировки. Поскольку модель отложенного взаимодействия обеспечивает возможность захвата сложных взаимодействий между запросами и документами во время процесса сортировки, а также позволяет избежать накладных расходов на кодирование токенов документов, она может не только обеспечить хорошие результаты сортировки, но и повысить производительность сортировки. при том же масштабе данных эффективность ColBERT может быть более чем в 100 раз выше, чем у Cross Encoder. Таким образом, модель отложенного взаимодействия является очень многообещающей моделью сортировки. Естественная идея такова:Может ли модель отложенного взаимодействия напрямую использоваться в RAG для замены двухэтапной архитектуры сортировки векторного поиска + тонкой сортировки?



С этой целью нам необходимо рассмотреть некоторые вопросы проектирования ColBERT:

1. Функция задержанного интерактивного сходства ColBERT MaxSim имеет гораздо более высокую вычислительную эффективность, чем Cross Encoder, но по сравнению с обычным векторным поиском вычислительные затраты все еще очень высоки: поскольку сходство между запросом и документом представляет собой многовекторное вычисление, функция MaxSim накладные расходы в M * N раз больше, чем при обычном вычислении сходства векторов (M — количество токенов в запросе, N — количество токенов в документе). В ответ на это автор ColBERT запустил ColBERT v2 в 2021 году [Ссылка 2], которая улучшила качество сгенерированного внедрения с помощью Cross Encoder и дистилляции модели, а также использовала технологию сжатия для квантования сгенерированного вектора документа, тем самым улучшив расчет Производительность МаксСим. Проект RAGatouille [Ссылка 3] на основе упаковки ColBERT v2 становится решением для высококачественной сортировки RAG. Однако ColBERT v2 — это всего лишь библиотека алгоритмов, и ее по-прежнему сложно использовать в комплексных системах RAG корпоративного уровня.

2. Поскольку ColBERT представляет собой предварительно обученную модель, а данные обучения поступают из запросов поисковых систем и возвращаемых результатов, эти текстовые данные невелики. Например, количество токенов запроса равно 32, а количество токенов документа — 128. , которые являются типичными ограничениями длины. Поэтому, когда ColBERT используется для реальных данных, длина, превышающая предел, будет обрезана, что не подходит для долгого поиска документов.

Учитывая вышеуказанные проблемы, собственная база данных искусственного интеллекта с открытым исходным кодом Infinity предоставляет тип данных Tensor в последней версии и изначально предоставляет комплексное решение ColBERT. Когда в качестве типа данных используется Tensor, несколько векторов, выводимых с помощью кодировки ColBERT, могут быть непосредственно сохранены в одном Tensor, поэтому сходство между Tensor может напрямую определять оценку MaxSim. В ответ на проблему большого объема вычислений MaxSim, Infinity предложила два решения для оптимизации: первое — двоичное квантование, которое может сделать пространство исходного тензора только 1/32 исходного размера, но не меняет относительный порядок. результатов вычислений MaxSim. Это решение в основном используется для Reranker, поскольку необходимо извлечь соответствующий тензор на основе результатов предыдущего этапа грубого скрининга. Другой — Tensor Index. ColBERTv2 на самом деле представляет собой реализацию Tensor Index, запущенную автором ColBERT, Infinity использует EMVB [Ссылка 4], которую можно рассматривать как улучшение ColBERT v2, главным образом за счет технологии количественного анализа и предварительной фильтрации, а также SIMD. вводятся инструкции по ключевым операциям для ускорения реализации. Тензорный индекс можно использовать только для обслуживания ранкера, а не реранкера. Кроме того, для длинного текста, превышающего лимит токена, Infinity вводит тип Tensor Array:



Документ, превышающий ограничение ColBERT, будет разделен на несколько абзацев. После кодирования и создания тензоров соответственно они будут сохранены в той же строке, что и исходный документ. При расчете MaxSim запрос и эти абзацы рассчитываются отдельно, а затем максимальное значение принимается за оценку всего документа. Как показано ниже:



Поэтому, используя Infinity, можно внедрить сквозную модель отложенного взаимодействия, чтобы обслуживать RAG с высоким качеством. Итак, следует ли использовать ColBERT в качестве ранкера или реранкера? Ниже мы используем Infinity для проведения оценки реальных наборов данных. Поскольку последняя версия Infinity реализует наиболее комплексное решение гибридного поиска в истории, методы отзыва включают векторный поиск, полнотекстовый поиск, поиск по разреженным векторам, упомянутый выше тензор и любую комбинацию этих методов, а также предоставляет множество методов переранжирования. ., такие как RRF и ColBERT Reranker, поэтому мы включаем в обзор различные комбинации гибридного поиска и Reranker.

Для оценки мы используем набор данных MLDR. MLDR — это набор тестов, используемый MTEB [Ссылка 5] для оценки качества моделей внедрения. MLDR — это один из наборов данных, который называется «Поиск нескольких длинных документов» и содержит в общей сложности 200 000 длинных текстовых данных. При оценке используется BGE-M3 [ссылка 6] в качестве модели внедрения, Jina-ColBERT [ссылка 7] для создания тензора, а сценарий оценки также размещается в хранилище Infinity [ссылка 8].

Оценка 1: Эффективен ли ColBERT в качестве средства реранкинга? Используйте BGE-M3 для создания плотных векторов и разреженных векторов из 200 000 данных MLDR и вставки их в базу данных Infinity. База данных содержит 4 столбца, в которых соответственно хранятся исходный текст, векторы, разреженные векторы и тензоры, а также создаются соответствующие полнотекстовые данные. индексы и векторы соответственно. Индекс, индекс разреженного вектора. Оценка включает в себя все комбинации воспоминаний, включая одностороннее припоминание, двустороннее припоминание и трехстороннее припоминание, а именно:



Индекс оценки принимает nDCG@10. Другие параметры: при использовании RRF Reranker Top N = 1000 возвращается путем грубого отбора, общее количество запросов составляет 800, а средняя длина запроса составляет около 10 токенов.



Как видно из рисунка, все решения по отзыву значительно улучшили результаты после использования ColBERT Reranker. В качестве модели отложенного взаимодействия ColBERT может обеспечить качество ранжирования, сравнимое с тем, что находится на вершине рейтинга Reranker MTEB, но производительность в 100 раз выше, поэтому изменение ранжирования может выполняться в большем масштабе. Результаты, показанные на рисунке, относятся к Top 100 Reranker, а Top 1000 используется для переупорядочения ColBERT. Значения существенно не меняются, а производительность существенно падает, поэтому это не рекомендуется. Традиционно при использовании внешнего реранкера на основе Cross Encoder в топ-10 возникает задержка второго уровня. Однако Infinity реализует высокопроизводительный ColBERT Reranker внутри компании. Даже если топ-100 или даже топ-1000 будут переупорядочены, пользовательский опыт не пострадает, однако объем отзыва значительно увеличивается, поэтому окончательный эффект ранжирования может быть значительно улучшен. Кроме того, этот расчет ColBERT Reranker необходимо выполнять только на чистой архитектуре ЦП, что также значительно снижает стоимость развертывания.

Оценка 2: Сравнение основано на использовании ColBERT как ранкера, а не реранкера. Следовательно, необходимо построить тензорный индекс для данных столбца тензора. В то же время, чтобы оценить потерю точности, вносимую тензорным индексом, также был выполнен перебор.



Видно, что по сравнению с Reranker даже при использовании перебора без потери точности существенного улучшения нет, а качество сортировки по Tensor Index даже ниже, чем при использовании Reranker. Однако время запроса в качестве ранкера намного медленнее: набор данных MLDR содержит 200 000 данных документов, что составляет около 2 ГБ. После использования Jina-ColBERT для преобразования его в данные Tensor он достигает 320 ГБ. Это связано с тем, что Tensor. тип данных — документ. Вектор, соответствующий каждому токену документа, должен быть сохранен. Размерность модели ColBERT составляет 128 измерений, поэтому объем данных по умолчанию увеличится на 2 порядка. Даже если будет построен тензорный индекс. запрос такого большого количества данных займет в среднем 7 секунд. Возвращает запрос, но не дает лучших результатов.

Таким образом, очевидно, что ColBERT гораздо более выгоден в качестве реранкера, чем в качестве ранкера. На данный момент лучшим решением для поиска RAG является добавление ColBERT Reranker на основе трехстороннего гибридного поиска (полнотекстовый поиск + вектор + разреженный вектор). Некоторые партнеры могут спросить, чтобы использовать ColBERT Reranker, необходимо добавить отдельный столбец Tensor, и столбец расширится на 2 порядка по сравнению с исходным набором данных. Стоит ли оно того? Прежде всего: Infinity предоставляет метод двоичного квантования для тензора. В качестве реранкера он не сильно влияет на результаты сортировки, но может сделать окончательные данные только 1/32 исходного размера тензора. Во-вторых, даже в этом случае некоторые люди подумают, что эти накладные расходы слишком велики. Однако с точки зрения пользователя использование большего объема памяти по-прежнему имеет смысл в обмен на более высокое качество сортировки и меньшие затраты (процесс сортировки не требует графического процессора). Наконец, я считаю, что вскоре будет запущена модель позднего взаимодействия с немного сниженной производительностью, но значительно меньшими затратами на хранение. Поскольку инфраструктура Data Infra прозрачна для этих изменений, и передача этих компромиссов пользователям будет разумным выбором.

Вышеупомянутое основано на оценке многоканального отзыва Infinity на наборе данных MLDR. Результаты оценки на других наборах данных могут отличаться, но общий вывод не изменится: трехсторонний гибридный поиск + переупорядочение на основе тензора — это текущий отзыв. метод с наивысшим качеством результатов поиска.

Из этого видно, что ColBERT и его модель отложенного взаимодействия имеют большую прикладную ценность в сценариях RAG. Вышеупомянутая работа связана с генерацией контента текстовых диалогов. В последнее время модели отложенного взаимодействия также получили признание SOTA в мультимодальных сценариях. Это ColPali [ссылка 9], который меняет рабочий процесс RAG, как показано на следующем рисунке:



Когда RAG сталкивается с документами сложного формата, текущая версия SOTA использует модель распознавания документов для определения макета документа, а затем вызывает соответствующую модель для идентифицированных частичных структур, таких как диаграммы, изображения и т. д., для преобразования их в соответствующий формат. текст затем сохраняется в базе данных поддержки RAG в различных форматах. ColPali исключает эти шаги и напрямую использует мультимодальные модели для создания встраиваемого контента. Задавая вопросы, вы можете отвечать непосредственно, опираясь на схемы в документе:



Обучение модели ColPali аналогично ColBERT, в котором также используется форма пар страниц запрос-документ для фиксации семантической связи между мультимодальными данными запроса и документа, но используется PaliGemma [Ссылка 10] для создания мультимодального внедрения. По сравнению с BiPali, который не использует механизм позднего взаимодействия, но также использует PaliGemma для создания встраивания, сравнение индексов оценки nDCG@5 составляет 81,3 против 58,8. Этот разрыв представляет собой разницу между «отлично» и «вообще не может работать».



Поэтому, хотя с момента появления ColBERT прошло уже 4 года, применение модели Late Interaction в RAG только началось. Она определенно расширит сценарии использования RAG и обеспечит качественный семантический отзыв в сложных RAG-сценах, включая мультимодальность. Infinity уже готова к созданию своего комплексного приложения. Добро пожаловать на Star Infinity, https://github.com/infiniflow/infinity, и стремится стать лучшей базой данных для искусственного интеллекта!

Рекомендации

1. Колберт: Эффективный и действенный поиск отрывков посредством контекстуализированного позднего взаимодействия по Берту, SIGIR 2020.

2. Colbertv2: Эффективный и действенный поиск с помощью легкого позднего взаимодействия, arXiv:2112.01488, 2021.

3. РАГатуй https://github.com/bclavie/RAGatouille

4. Эффективный многовекторный плотный поиск с битовыми векторами, ECIR 2024.

5. https://huggingface.co/mteb

6. https://huggingface.co/BAAI/bge-m3

7. https://huggingface.co/jinaai/jina-colbert-v1-en

8. https://github.com/infiniflow/infinity/tree/main/python/benchmark/mldr_benchmark

9. ColPali: Эффективный поиск документов с помощью моделей языка Vision, arXiv:2407.01449, 2024.

10. https://github.com/google-research/big_vision/tree/main/big_vision/configs/proj/paligemma