P5: RAG with Multiple Representations – Hamel’s Blog - Hamel Husain
В заключительной, пятой части мини-серии курса LLM Evals Хамел Хусейн пригласил Брайана Бишофа (Bryan Bischof) и Аюша Чаурасию (Ayush Chaurasia), которые утверждают: эффективный поиск состоит не в нахождении единственного идеального представления данных, а в создании множества разнообразных представлений с маршрутизатором, лучше отвечающим намерению пользователя. Они деконструируют модные термины RAG (Naive, Agentic, Hybrid, Graph, Multi-Modal) до базовых инженерных конвейеров: HyDE — обогащение документов, Agentic RAG — обогащение запросов, rank fusion — многоэтапная обработка. Три обязанности IR-инженера: предсказать намерение, сгенерировать множество представлений («карт») и сопоставить намерение с нужным представлением. Подчёркивается, что представления должны эволюционировать, поскольку документы динамичны, а статичные эмбеддинги устаревают. Аюш демонстрирует приложение semanticdotart для поиска произведений искусства, где запросы (буквальное или поэтическое описание, изображение) агентно маршрутизируются к подходящим индексам с многоэтапной обработкой и rank fusion. В сессии Q&A обсуждаются reasoning-модели, late-interaction модели вроде ColBERT и роль маршрутизации как классификатора.
В рамках нашего курса LLM Evals я пригласил Bryan Bischof и Ayush Chaurasia для заключительной части нашей мини-серии из пяти частей об оценке и оптимизации RAG. Они утверждали, что эффективный поиск состоит не в нахождении единственного идеального представления данных, а в создании и использовании множества разнообразных представлений с маршрутизатором, который лучше отвечает намерению пользователя, — концепция, которую они демонстрируют на примере semantic dot art.
Ниже приведена аннотированная версия их презентации со ссылками с тайм-кодами для каждого слайда.
👉 Именно такие вещи мы разбираем в нашем курсе AI Evals. Узнать больше о курсе можно здесь. 👈
Аннотированная презентация
Карта — это не территория
Центральная тема презентации в том, что «карта» (представление данных) — это не то же самое, что «территория» (реальные данные). В машинном обучении это различие является преимуществом. Модели и эмбеддинги — это наши карты, и мы можем создавать множество разных карт одной и той же территории для разных целей.
Разбираем модные слова RAG
Ландшафт RAG наполнен терминами, которые могут затмевать фундаментальные принципы. Эти термины можно разложить на более простые понятия.
Naive RAG лучше понимать как Simple RAG: базовый подход поиска похожих элементов в векторном хранилище с помощью вектора.
Agentic RAG предполагает, что LLM сама выбирает, как искать, создавая впечатление, будто модель может убрать инженера из проектирования конвейера поиска.
Hybrid RAG сочетает Simple RAG с классическими техниками поиска, такими как сопоставление по ключевым словам, что позволяет вести поиск одновременно по нескольким сигналам.
Graph RAG использует связи между объектами для улучшения поиска — например, выявление магазинов, продающих «товары для дома», чтобы найти кофейный фильтр, а также учитывая близость.
Multi-Modal RAG имеет два значения: поиск по нескольким типам данных (текст и изображения) или поиск по нескольким местоположениям («модам») в одном и том же латентном пространстве для одного элемента.
Все эти техники — разные подходы к одной и той же проблеме, и их можно было бы изобрести из первых принципов.
Взгляд на RAG из первых принципов
Продвинутые техники RAG можно переосмыслить как базовые инженерные конвейеры.
Hypothetical Document Embeddings (HyDE) — это конвейер обогащения документов. Он использует LLM, чтобы переписать документы на язык, которым пользователи, вероятно, будут искать. Плотный технический документ можно переписать в более простое описание, создав новую, более удобную для поиска «карту» оригинала.
Agentic RAG — это конвейер обогащения запросов. Когда запрос неоднозначен, агент решает, как искать. Например, он определяет, относится ли «V60 filter» к продукту или к ресторану, направляя запрос к правильному процессу поиска.
Rank fusion — это многоэтапная обработка. Она предполагает запуск нескольких разных поисков, а затем объединение, или «сшивание», результатов на последующем этапе.
Три обязанности IR-инженера
Эти продвинутые техники можно вывести, сосредоточившись на трёх ключевых обязанностях.
Предсказать намерение пользователя: Каково наиболее вероятное представление того, что ищет пользователь?
Сгенерировать множество представлений (карт): Заранее создать разные виды исходных данных (обогащение документов).
Сопоставить намерение с представлением: Правильно сопоставить запрос пользователя с подходящим заранее сгенерированным представлением.
Практическое применение: искривление пространства
«Искривление пространства» означает формирование представлений данных и индексов для улучшения поиска.
Для финансовых документов можно создать множество «карт» из одного корпуса — например, сводки, таблицы данных, списки именованных сущностей и типы форм. Это и есть обогащение документов.
Когда существует несколько представлений, для каждого нужно выбрать правильную стратегию индексирования. Это предполагает выбор между семантическим поиском, сопоставлением по ключевым словам, предварительными фильтрами, а также решение о том, использовать ли единый индекс или отдельные.
Иногда требуется второй этап поиска, опирающийся на результаты первого. Это форма поэтапной обработки.
Агенты как маршрутизаторы
По своей функции агенты — это трансформеры: они преобразуют входящие данные и инструкции в структурированный вывод.
Эффективный способ использовать агентов — в роли маршрутизаторов. Они берут входящие данные и направляют их к разным индексам или последующим этапам поиска. Это и есть ключевая идея, лежащая в основе как Agentic RAG, так и Multi-Agent RAG.
Представления должны эволюционировать
Серьёзная опасность в RAG в том, что документы динамичны. Статичный эмбеддинг устареет по мере того, как контекст документа меняется под влиянием новых бизнес- или мировых событий.
Решение — спроектировать систему, способную обнаруживать, что изменилось, и переиндексировать только эти части, что требует архитектуры, рассчитанной на динамические обновления.
Демо: Semantic Dot Art
Чтобы сделать эти концепции наглядными, Ayush Chaurasia продемонстрировал semanticdotart — приложение для поиска произведений искусства. Демо показывает, как система может обслуживать разнообразные намерения пользователей, создавая и проводя поиск по множеству представлений одних и тех же базовых данных.
Пользователь может искать искусство, используя разные «карты» данных. Например, он может искать по буквальному описанию («множество часов, тающих в пустыне»), по поэтическому описанию или даже по похожему изображению. Система извлекает не только оригинальное произведение, но и производные работы, а также другие тематически связанные. Это становится возможным благодаря богатому конвейеру обогащения документов, который создаёт для каждого произведения множество векторных и основанных на ключевых словах индексов, охватывая всё — от настроения и стиля до буквальных описаний объектов.
Процесс поиска агентный. Система направляет запрос пользователя к наиболее подходящему индексу или комбинации индексов. Поэтический запрос может быть направлен к индексу художественных описаний, тогда как запрос по изображению будет использовать мультимодальный эмбеддинг. Эта динамическая маршрутизация в сочетании с многоэтапной обработкой и rank fusion позволяет системе обрабатывать самые разные потребности пользователей и выдавать более удовлетворяющие и разнообразные результаты.
Диаграммы системы
Затем Аюш более подробно описал систему, которую он демонстрировал.
Диаграмма «Represent!» визуализирует конвейер обогащения документов. Данные из различных источников обрабатываются для извлечения разных признаков (поэтические подписи, подписи на естественном языке, ключевые слова настроения, содержимое изображения). Они встраиваются в разные типы векторов и сохраняются, создавая множество «карт» для одной и той же территории.
Диаграмма «Discover!» показывает конвейер поиска. Ввод пользователя проходит через различные этапы, где он может обогащаться (например, извлечение настроения, переписывание запроса). Эти обогащённые запросы затем используются в многоэтапном процессе поиска, включающем предварительную фильтрацию и гибридный поиск перед финальным реранкингом.
Сессия вопросов и ответов
Почему люди часто думают, что для их данных есть лишь одна «карта» (представление)? (Тайм-код: 32:41) Люди часто ищут единственное «лучшее» представление. Когда оно не срабатывает, инстинкт — починить его, а не дополнить новыми, иными представлениями. Лучший подход к поиску — создавать и использовать много специализированных «карт» ваших данных, подобно тому как держишь разные велосипеды для разных типов местности. Современные модели упрощают это, помогая направлять запросы к правильной карте. Как reasoning-модели и late-interaction модели (вроде ColBERT) вписываются в эту концепцию «множества карт»? (Тайм-код: 35:45) Вписываются хорошо. Reasoning-модели — это форма обогащения запросов: они переписывают запутанные запросы, добавляя необходимый контекст. Late-interaction модели, такие как ColBERT, создают разнообразие внутри самой модели, генерируя множество представлений (вектор для каждого токена) для одного документа. Это создаёт разные «моды» в латентном пространстве для более разнообразных и нюансированных результатов поиска. Что такое маршрутизация в этом контексте, и не просто ли это классификатор? (Тайм-код: 42:31) Маршрутизация — это этап поиска, на котором вы решаете, какой процесс или индекс использовать на основе запроса. Для небольшого числа маршрутов LLM может выступать как простой классификатор (например, через вызов инструмента). По мере роста числа маршрутов более уместен становится выделенный, обученный классификатор. LLM хороши для подтверждения концепции семантической маршрутизации, но для масштабируемой классификации лучше подходит дообученная модель.
👉 Именно такие вещи мы разбираем в нашем курсе AI Evals. Узнать больше о курсе можно здесь. 👈
Видео
Вот полное видео: