DeepRAG: Пошаговый переход от размышления к извлечению информации для больших языковых моделей
Представьте, что вы планируете автопутешествие и спрашиваете своего цифрового ассистента: Какой сейчас самый быстрый маршрут в горы? Без информации в реальном времени он предлагает шоссе на основе устаревших схем трафика, и вы застреваете на объезде. Но при наличии актуальных данных о дорожной ситуации он обнаружил бы перекрытие и провел бы вас более быстрым живописным маршрутом. Это подчеркивает ключевое ограничение больших языковых моделей (LLM): их зависимость от статических, предварительно обученных знаний часто приводит к устаревшим или неполным ответам.Генерация с дополненным извлечением (RAG) решает эту проблему, объединяя LLM с внешними источниками знаний, такими как базы данных или поисковые системы. Вместо того чтобы полагаться только на сохраненные знания, RAG извлекает релевантную информацию и включает ее в ответ модели. Это полезно для ответов на вопросы о недавних событиях или специализированных темах. Однако традиционные системы RAG далеки от совершенства. Они часто извлекают нерелевантную информацию, упускают важнейшие детали или тратят ресурсы на ненужные запросы.DeepRAG, представленный в статье DeepRAG: Thinking to Retrieval Step by Step for Large Language Models, решает эти проблемы с помощью более адаптивного подхода. Вместо того чтобы рассматривать извлечение как один шаг, он разбивает сложные вопросы на более мелкие подзапросы и на каждом этапе решает, полагаться ли на внутренние знания или получать внешние данные. Такие методы, как поиск по бинарному дереву, который исследует разные пути ответа, и имитационное обучение, при котором модель обучается на экспертных примерах, помогают DeepRAG извлекать только то, что необходимо. Такой пошаговый подход сокращает количество бесполезных поисков и повышает точность ответов.В этой статье мы рассмотрим, как работает DeepRAG, разберем его ключевые компоненты и покажем, как векторные базы данных, такие как Milvus и Zilliz Cloud, могут дополнительно усилить его возможности извлечения.
Недостатки статических знаний и наивного извлечения
Хотя большие языковые модели (LLM) отлично справляются с генерацией связных ответов, они уступают, когда запросы требуют актуальных, конкретных или глубоко контекстуальных знаний. Это связано с тем, что их знания основаны на статических наборах данных, собранных во время обучения, что ограничивает их способность отвечать на вопросы, требующие информации в реальном времени или специализированных сведений. После завершения обучения их знания фиксируются, что делает их ненадежными для запросов, требующих своевременности, конкретности или динамического контекста.
Своевременность: Для таких тем, как текущие события или обновления в реальном времени, LLM предоставляют устаревшую информацию. На вопрос «Кто выиграл чемпионат мира в этом году?» модель может ответить на основе прошлых турниров, а не самых последних результатов.
Конкретность: LLM часто дают сбой в узких областях, таких как медицина, право или технические стандарты, где критически важны актуальные или высокоспециализированные знания. Например, запрос о новейших одобренных FDA методах лечения болезни Альцгеймера может привести к устаревшим рекомендациям.
Динамический контекст: Быстро меняющаяся информация, такая как цены акций, тренды в социальных сетях или погодные условия, находится вне их досягаемости. Без внешних обновлений модель скорее угадывает, чем дает информированные ответы.
Генерация с дополненным извлечением (RAG) расширяет возможности LLM, подключая внешнюю информацию из баз данных, поисковых систем или API перед генерацией ответов. Однако традиционные системы RAG создают собственный набор проблем:
Избыточное извлечение: Когда RAG извлекает слишком много нерелевантных документов, он перегружает модель шумом, делая ответы менее точными. Например, если спросить «Что стало причиной лесных пожаров на Гавайях в 2023 году?», традиционная система RAG может извлечь множество статей о предотвращении лесных пожаров или исторических пожарах, а не о конкретной причине.
Недостаточное извлечение: Плохо сформулированные или слишком широкие запросы могут привести к пропуску ключевых деталей. Поиск только по запросу «Hawaii wildfire causes» может исключить официальные расследовательские отчеты, в которых причиной названы оборванные линии электропередачи.
Вычислительные потери: Извлечение и обработка больших объемов ненужной информации увеличивают время отклика и затраты, не улучшая качество ответа.
Корень этих проблем заключается в том, что традиционные системы RAG обрабатывают каждый запрос одинаково, извлекая внешнюю информацию без разбора и без оценки того, необходима ли она. Такая нехватка адаптивности приводит к неэффективности при простых вопросах и неполным ответам при сложных. Простые запросы, такие как «Что такое фотосинтез?», не требуют внешнего извлечения, потому что ответ уже находится во внутренних знаниях модели. В отличие от них, сложные или многоэтапные вопросы, такие как «Сравните эффективность мРНК-вакцин в разных возрастных группах», требуют внешней информации и могут предполагать разбиение запроса на подвопросы для извлечения наиболее релевантных данных.
Такой жесткий подход подчеркивает необходимость более адаптивной системы, способной балансировать внутренние знания с внешним извлечением, подстраивая свою стратегию под сложность и требования каждого запроса.
Как DeepRAG адаптирует извлечение шаг за шагом
DeepRAG устраняет ограничения традиционных систем RAG, вводя адаптивный процесс, который отражает то, как мы, люди, подходим к сложным вопросам. Вместо того чтобы извлекать информацию сразу всю или для каждого запроса, DeepRAG разбивает вопросы на более мелкие, более управляемые подзапросы и на каждом шаге решает, необходима ли внешняя информация. Этот адаптивный процесс сокращает ненужные поисковые операции и повышает точность.
Ключ к подходу DeepRAG заключается в том, как он структурирует процесс извлечения и перемещается по нему. Вместо того чтобы рассматривать запрос как единый блок, он следует нарративу извлечения — логической последовательности, в которой каждый подзапрос опирается на предыдущие шаги, постепенно формируя полный ответ. На каждом этапе DeepRAG принимает атомарные решения, чтобы определить, следует ли полагаться на внутренние знания или извлекать внешние данные, что позволяет ему оставаться эффективным и сосредоточенным на том, что действительно необходимо для ответа на вопрос.
Взгляните на следующую иллюстрацию, которая показывает, как DeepRAG отражает человеческое мышление.
Рисунок 1: Иллюстрация того, как DeepRAG отражает человеческое мышление
Структурируя процесс рассуждения через четко определенный нарратив извлечения и принимая точные атомарные решения на каждом шаге, DeepRAG гарантирует, что извлечение выполняется только при необходимости, а внутренние знания используются тогда, когда это уместно. Такой сбалансированный подход приводит к более эффективным и точным ответам, одновременно снижая вычислительные затраты, связанные с чрезмерным или нерелевантным извлечением. Эта адаптивная схема не только улучшает качество ответов, но и оптимизирует использование ресурсов, делая DeepRAG более практичным и масштабируемым решением для сложных задач извлечения информации.
Основные компоненты адаптивного извлечения DeepRAG
Адаптивный процесс извлечения DeepRAG опирается на структурированный подход, который разбивает сложные вопросы, принимает обоснованные решения о том, когда извлекать внешнюю информацию, и совершенствует свои стратегии рассуждения посредством обучения. Этот процесс построен на четырех взаимосвязанных компонентах; моделировании марковского процесса принятия решений (MDP), бинарном поиске по дереву, имитационном обучении и цепочке калибровки, которые совместно работают над балансом эффективности и точности при ответах на вопросы.
Обзор марковского процесса принятия решений (MDP)
В основе процесса принятия решений DeepRAG лежит фреймворк марковского процесса принятия решений (MDP) , который помогает системе систематически выстраивать шаги, необходимые для ответа на вопрос. MDP состоит из четырех компонентов:
Состояния (S): Представляют текущий прогресс в ответе на вопрос. Состояние включает исходный вопрос, а также любые подзапросы и соответствующие ответы, сгенерированные к текущему моменту.
Действия (A): В каждом состоянии модель принимает два решения, чтобы направлять свои действия. Решение о завершении определяет, должна ли модель остановиться и предоставить окончательный ответ или продолжить, генерируя подзапросы. Атомарное решение определяет, должна ли модель использовать свои внутренние знания или извлекать внешнюю информацию для обработки следующего подзапроса.
Переходы (P): Определяют, как система переходит из одного состояния в другое на основе выбранных действий.
Награды (R): Система оценки, которая вознаграждает модель за нахождение правильного ответа, одновременно штрафуя за ненужные или чрезмерные извлечения.
Например, предположим, что системе задан вопрос «Какова общая продолжительность всех фильмов во „Властелине колец“?». Начальное состояние s_0 содержит только вопрос. Первым действием модели может быть генерация подзапроса вроде «Каковы названия фильмов во „Властелине колец“?». Затем она решает, использовать ли внутренние знания или извлечь внешние данные. Получив список фильмов, система переходит в новое состояние s_1, теперь содержащее названия фильмов. Далее она генерирует подзапросы, такие как «Какова продолжительность The Fellowship of the Ring?», и продолжает принимать аналогичные решения, пока не соберет всю необходимую информацию. Наконец, она суммирует продолжительности и предоставляет итоговое значение, достигая терминального состояния.
Стратегия бинарного поиска по дереву
Чтобы эффективно управлять этим процессом принятия решений, DeepRAG использует бинарный поиск по дереву. Эта стратегия позволяет системе исследовать несколько путей рассуждения, рассматривая каждое решение как узел в дереве. Для каждого подзапроса DeepRAG генерирует две ветви:
Одна ветвь представляет использование параметрических знаний (внутренних знаний).
Другая представляет извлечение внешних документов.
По мере исследования дерева система строит нарратив извлечения — последовательность подзапросов и ответов, ведущую к итоговому ответу. Бинарный поиск по дереву помогает модели оценивать разные пути рассуждения, решая, когда извлечение необходимо, а когда достаточно внутренних знаний.
Этот подход позволяет DeepRAG разбивать сложные запросы на более мелкие, управляемые подзапросы и принимать адаптивные решения на каждом шаге. Навигируя по бинарному дереву, модель может балансировать компромисс между опорой на предварительно обученные знания и извлечением внешних данных, в конечном счете повышая точность и эффективность ответов. Структурированный характер бинарного поиска по дереву гарантирует, что DeepRAG не только извлекает информацию, когда это необходимо, но и избегает ненужных извлечений, оптимизируя вычислительные ресурсы при сохранении качества ответов.
Имитационное обучение
Хотя бинарный поиск по дереву помогает DeepRAG исследовать пути рассуждения, ему все равно нужно научиться тому, какие пути являются наиболее эффективными. Здесь свою роль играет имитационное обучение. Имитационное обучение обучает DeepRAG, показывая примеры оптимальных путей рассуждения — тех, которые приводят к правильным ответам, минимизируя извлечения за счет следования следующему алгоритму.
Рисунок: Алгоритм, который DeepRAG использует для построения оптимальных путей рассуждения.
На приведенном выше рисунке показано, как DeepRAG строит оптимальные пути рассуждения с помощью имитационного обучения. Система использует очередь с приоритетом для исследования траекторий рассуждения, отдавая предпочтение путям с меньшим количеством извлечений. Вот как работает алгоритм:
Инициализация: Он начинает с помещения исходного вопроса в очередь с приоритетом с числом извлечений, равным нулю.
Исследование пути: Алгоритм извлекает из очереди путь с наименьшим количеством извлечений и генерирует следующий подзапрос.
Принятие решения: На каждом шаге модель решает, остановиться и предоставить окончательный ответ (решение о завершении) или продолжить генерировать подзапросы.
Генерация ответа: Если модель выбирает ответить напрямую, она добавляет этот путь обратно в очередь. Если она решает извлечь документы, она добавляет новый путь с увеличенным числом извлечений.
Завершение: Процесс продолжается до тех пор, пока алгоритм не определит путь рассуждения, который достигает правильного ответа с наименьшим объемом извлечения.
Цепочка калибровки
Даже после имитационного обучения DeepRAG может испытывать трудности с пониманием того, когда извлекать внешнюю информацию, а когда полагаться на внутренние знания. Чтобы уточнить процесс принятия решений, DeepRAG использует цепочку калибровки, которая тонко настраивает поведение модели при извлечении на основе пар предпочтений — примеров, которые указывают предпочтительное действие (извлечение или внутренние знания) для каждого подзапроса.Цепочка калибровки корректирует принятие решений моделью с помощью следующей функции потерь:
L = - log σ [ β log ( πθ(yw | si, qi) / πref(yw | si, qi) ) - β log ( πθ(yl | si, qi) / πref(yl | si, qi) ) ]
Вот как работает формула:
σ — это логистическая функция, нормализующая выходные данные модели.
β — это гиперпараметр, управляющий штрафом за отклонение от предпочтительного пути принятия решений.
πθ(yw | si, qi) представляет вероятность ответа на подзапрос qi в состоянии si с использованием параметрических знаний.
πθ(yl | si, qi) представляет вероятность ответа на подзапрос на основе извлеченных документов.
πref — это эталонная модель, используемая как базовый уровень для сравнения.
Эта функция потерь побуждает модель отдавать предпочтение наиболее эффективному пути рассуждения, решая, использовать ли внутренние знания или извлекать внешние данные, на основе оптимальных примеров, предоставленных во время имитационного обучения. Если модель извлекает информацию без необходимости или не извлекает ее, когда это требуется, цепочка калибровки исправляет эти тенденции, помогая системе достичь баланса между эффективностью и точностью.
На следующем рисунке показано, как DeepRAG интегрирует поиск по бинарному дереву, имитационное обучение и цепочку калибровки для построения эффективных путей рассуждения. Он демонстрирует пошаговый процесс декомпозиции запроса, принятия решений и калибровки модели, который позволяет DeepRAG балансировать между внутренними знаниями и внешним извлечением.
Рисунок: Обзор фреймворка DeepRAG включает три этапаБлагодаря интеграции MDP-моделирования, поиска по бинарному дереву, имитационного обучения и цепочки калибровки DeepRAG достигает адаптивного процесса извлечения, способного обрабатывать сложные многошаговые вопросы.
Производительность DeepRAG на бенчмарках
После уточнения своей стратегии поиска и адаптивного процесса рассуждения DeepRAG демонстрирует высокую производительность на нескольких бенчмарках вопросно-ответных систем (QA) с открытым доменом. Эти бенчмарки оценивают способность DeepRAG декомпозировать сложные запросы, принимать эффективные решения о поиске и точно генерировать ответы, даже в динамических или многошаговых сценариях. DeepRAG был оценен на пяти разнообразных наборах данных: HotpotQA и 2WikiMultihopQA для многошагового фактологического QA, CAG для чувствительных ко времени запросов, а также PopQA и WebQuestions для задач QA с открытым доменом. Каждый набор данных представляет уникальные вызовы, такие как многоэтапное рассуждение, временные сдвиги в данных или обработка запросов вне распределения.
На HotpotQA DeepRAG достигает F1-score 51.54, превосходя такие методы, как UAR (34.2) и FLARE (32.0). В 2WikiMultihopQA, который требует сложного многошагового рассуждения, DeepRAG набирает 53.25 по F1, превосходя базовые модели, которые часто испытывают трудности с многоэтапными запросами. Для чувствительных ко времени задач, таких как CAG, DeepRAG достигает показателя Exact Match (EM) 59.8, превосходя традиционные системы RAG. В наборах данных QA с открытым доменом, таких как PopQA и WebQuestions, DeepRAG достигает показателей EM 43.2 и 38.8 соответственно, сохраняя высокую точность при сокращении ненужных поисковых запросов. Эти результаты подчеркивают способность DeepRAG балансировать эффективность поиска и точность ответов, превосходя традиционные системы RAG и плотные ретриверы за счет эффективного определения того, когда нужно извлекать внешнюю информацию, а когда полагаться на свои внутренние знания.
Интеграция DeepRAG с векторными базами данных для улучшенного поиска
Одно из преимуществ DeepRAG — его способность решать, когда извлекать внешнюю информацию, а когда полагаться на внутренние знания. Однако качество и эффективность поиска также зависят от системы, которую он использует для хранения и поиска данных. Именно здесь векторные базы данных, такие как Milvus и Zilliz Cloud, повышают производительность DeepRAG, предлагая масштабируемые и эффективные решения для обработки больших объемов неструктурированных данных.
Векторные базы данных хранят данные как многомерные векторы, что позволяет выполнять быстрый и точный поиск по сходству. В рабочем процессе DeepRAG, когда система генерирует подзапрос, требующий внешней информации, она может обратиться к векторной базе данных, такой как Milvus, чтобы найти наиболее релевантные документы на основе семантического сходства. Такой подход улучшает как скорость, так и релевантность извлеченных данных, напрямую влияя на качество ответов DeepRAG.
Milvus — это open-source векторная база данных, оптимизированная для высокопроизводительного поиска по сходству и способная обрабатывать векторные данные миллиардного масштаба. Zilliz Cloud, построенный на базе Milvus, предлагает управляемое облачное решение, которое упрощает масштабирование и обслуживание. Эти базы данных предоставляют инфраструктуру, необходимую DeepRAG для выполнения эффективного поиска, особенно в крупномасштабных приложениях.
Пример: автоматизация поддержки клиентов Рассмотрим систему поддержки клиентов, интегрированную с DeepRAG и Milvus для обработки сложных запросов клиентов. Пользователь отправляет вопрос: «Как я могу передать свою учетную запись другому пользователю и убедиться, что моя платежная информация обновлена?» Этот вопрос включает несколько шагов и требует информации из разных разделов документации компании.
Шаг 1 – Генерация подзапросов: DeepRAG начинает с разбиения сложного запроса на более мелкие, управляемые подзапросы. В данном случае он выявляет два отдельных подвопроса: «Как передать аккаунт другому пользователю?» и «Как обновить платежную информацию?». Такая декомпозиция позволяет DeepRAG сосредоточиться на ответе на каждую часть запроса пользователя по отдельности, повышая как эффективность поиска, так и качество итогового ответа.
Шаг 2 – Поиск с помощью Milvus: После генерации подзапросов DeepRAG использует Milvus для поиска релевантных документов. Каждый подзапрос преобразуется в вектор и сопоставляется с документами, хранящимися в Milvus, которые также проиндексированы как векторы. Для первого подзапроса система извлекает документ под названием «Передача права собственности на аккаунт», в котором подробно описаны шаги, необходимые для передачи аккаунта. Для второго подзапроса она находит документ под названием «Обновление ваших платежных данных», в котором объясняется, как пользователи могут изменить свою платежную информацию. Семантический поиск Milvus гарантирует, что извлекаются только наиболее релевантные документы, сводя к минимуму ненужные данные.
Шаг 3 – Формирование ответа: После извлечения документов DeepRAG обрабатывает информацию, чтобы выделить наиболее полезные детали. Он просматривает содержимое найденных статей и суммирует основные шаги. Для подзапроса о передаче аккаунта DeepRAG генерирует ответ вроде: «Чтобы передать свой аккаунт, перейдите в Settings > Account Management и выберите ‘Transfer Ownership.’ Введите данные нового пользователя и подтвердите изменение.» Для обновления платежной информации он выдает: «Чтобы обновить платежную информацию, перейдите в Billing Settings и нажмите ‘Edit Payment Method.’ Внесите необходимые изменения и сохраните.» Этот шаг гарантирует, что пользователи получают четкие и краткие инструкции, адаптированные к их конкретным вопросам.
Шаг 4 – Итоговый ответ: Наконец, DeepRAG объединяет отдельные ответы в связный ответ, напрямую отвечая на многокомпонентный запрос пользователя. Система объединяет рекомендации из обоих подзапросов в единый ответ, предоставляя пользователю всю необходимую информацию без необходимости читать несколько документов. Такая интеграция подответов приводит к полному и полезному ответу, который эффективно решает проблему пользователя.
В этом примере интеграция DeepRAG с Milvus позволяет системе эффективно обрабатывать сложные запросы. Пошаговое рассуждение DeepRAG в сочетании с быстрым и точным поиском Milvus гарантирует, что пользователь получает точный и полный ответ без необходимости просеивать нерелевантные документы.
Этот подход показывает, как векторные базы данных, такие как Milvus и Zilliz Cloud, могут улучшить процесс поиска DeepRAG, делая его хорошо подходящим для реальных приложений, где эффективный и точный поиск информации имеет критическое значение.
Будущие направления для DeepRAG
Хотя DeepRAG добился значительного прогресса в генерации с расширением поиска, есть области, где будущие исследования могли бы дополнительно расширить его возможности:
Интеграция мультимодального поиска: Расширение DeepRAG для работы с мультимодальными данными, такими как изображения, аудио и видео, значительно расширило бы его применимость. Это улучшение позволило бы системе обрабатывать и извлекать информацию из разнообразных источников, позволяя ей отвечать на более сложные запросы, требующие знаний за пределами текста. Например, в медицинской среде DeepRAG мог бы извлекать как текстовые отчеты, так и релевантные медицинские изображения, чтобы предоставить более комплексный ответ.
Контекстно-осознанные решения о поиске: Улучшение способности DeepRAG принимать более чувствительные к контексту решения о поиске является важнейшим следующим шагом. В настоящее время система опирается на свою MDP-based структуру, чтобы решать, когда извлекать внешние данные, но будущие версии могли бы включать более тонкое понимание намерения запроса и контекста. Это помогло бы модели лучше оценивать, когда поиск необходим, и адаптировать свой подход к сложным или неоднозначным запросам, повышая как эффективность, так и точность.
Извлечение данных в реальном времени и динамических данных:Расширение способности DeepRAG получать доступ к источникам данных в реальном времени и обрабатывать их сделало бы его более эффективным для приложений, чувствительных ко времени. Интеграция потоков оперативных данных, таких как новостные ленты или обновления фондового рынка, позволила бы DeepRAG обрабатывать запросы, требующие актуальной информации. Эта возможность была бы особенно ценной в таких областях, как финансы, агрегация новостей или реагирование на чрезвычайные ситуации, где доступ к самым актуальным данным критически важен.
Заключение
DeepRAG развивает retrieval-augmented generation, сочетая адаптивную декомпозицию запросов с эффективными стратегиями поиска, что приводит к более точным ответам при минимизации ненужных поисковых операций. Его высокая производительность на различных бенчмарках подчеркивает способность обрабатывать сложные многошаговые запросы с улучшенной логикой рассуждений и эффективностью поиска. Хотя базовая модель работает независимо, интеграция DeepRAG с векторными базами данных, такими как Milvus и Zilliz Cloud, может дополнительно усилить его возможности поиска в крупномасштабных приложениях. Благодаря будущим улучшениям в мультимодальном поиске, контекстно-осознанных решениях и доступе к данным в реальном времени DeepRAG хорошо подготовлен к тому, чтобы стать универсальным и мощным решением для широкого спектра сложных задач поиска информации.
Дополнительные ресурсы
Статьи:
[2502.01142] DeepRAG: Thinking to Retrieval Step by Step for Large Language Models
[2404.19456] A Survey of Imitation Learning Methods, Environments and Metrics
Robust Markov Decision Processes: A Place Where AI and Formal Methods Meet
Статьи:
Читать далее

VDBBench Adds Cost-Aware Benchmarking for Vector Databases
Compare Zilliz Cloud, Pinecone, and turbopuffer with VDBBench cost-aware vector database benchmarks across latency, freshness, multitenancy, and cold starts.

Zilliz Skills Breakdown: How AI Agents Master Vector Databases
Zilliz's Milvus Skill (pymilvus, 7 files) and Zilliz Cloud Skill (zilliz-cli, 14 modules) bring vector-DB dev and ops into one Claude Code session.

Zilliz Cloud Update: Smarter Autoscaling for Cost Savings, Stronger Compliance with Audit Logs, and More
What's new in Zilliz Cloud? Smarter autoscaling with scale-down, audit logs GA, enhanced SSO, and Milvus 2.6 in Private Preview.


