Материал подготовлен автоматически по первоисточникам: ссылки на них — в конце статьи.
Контекст для генерации с дополнением из поиска (RAG) можно сокращать заранее, если одни документы участвуют в разных запросах. Команда VinUniversity и University of Illinois представила REVA: метод повысил качество ответов на 1,0–5,8 пункта и сократил накладные расходы на сжатие в 5,3–15,6 раза, хотя препринт не рецензирован и все числа в нём получили сами авторы. Для продукта это возможность убрать отдельный компрессор из пути запроса, не меняя формат контекста и модель генерации.
Как история внимания превращается в короткий документ
Обычный компрессор обрабатывает найденные документы заново для каждого запроса. Он выбирает предложения, удаляет токены или переписывает текст с помощью дополнительной модели. Короткий контекст снижает затраты на токены, память кеша ключей и значений и первичную обработку запроса, но сам компрессор добавляет задержку.
REVA использует уже завершённые обращения к документу. Система берёт запрос, найденный фрагмент и, если он сохранился, ответ модели. Затем она извлекает веса механизма внимания: они показывают, к каким частям документа модель обращалась при чтении вопроса и построении ответа.
Сигнал от ответа оказался полезнее сигнала только от вопроса. Вопрос чаще выделяет совпадающие слова, тогда как ответ показывает фрагменты, которые понадобились модели по ходу генерации. Поэтому REVA может сохранить факт, не похожий на формулировку запроса, но необходимый для итогового вывода.
Технические токены модельного словаря объединяются обратно в читаемые слова и короткие конструкции. Даты, числа с разделителями, слова через дефис и составные имена защищаются от разрыва. Если один фрагмент привлекал внимание при разных обращениях, его оценки усредняются.
Хранилище привязано не только к документу или фрагменту. В ключ входят модель генерации, токенизатор, шаблон запроса, способ подсчёта и версия корпуса. Это не позволяет случайно применить оценки, собранные другой моделью или для старой разбивки документов.
При новом запросе REVA получает обычную выдачу поиска и выделяет каждому документу долю доступного контекста. В локальном режиме квота фиксируется отдельно для каждого документа. В глобальном режиме система перераспределяет остаток в пользу более полезных документов, но сохраняет минимальное покрытие всей выдачи.
Выбранные слова возвращаются в исходный порядок и образуют обычный текст. Если сохранённых оценок для документа ещё нет, REVA оставляет его начало. Завершённый запрос можно обработать асинхронно и пополнить хранилище для следующих обращений.
Повторяемость документов даёт выигрыш, но покрытие решает всё
В исследованных нагрузках 85–92% запросов находили хотя бы один документ, который встречался раньше. Именно эта повторяемость позволяет распределить стоимость анализа по нескольким обращениям вместо запуска компрессора для каждого запроса.
Метод проверяли на четырёх наборах вопросов и ответов — NQ, TriviaQA, HotpotQA и 2Wiki — с тремя моделями генерации. Его сравнивали с простым обрезанием контекста, RECOMP-e, LongLLMLingua и другими компрессорами при разных лимитах контекста.
Отдельный эксперимент включал только запросы, для которых оценки уже существовали по всем найденным документам. Он показывает качество переноса накопленной истории, а не типичный запуск с частично заполненным хранилищем. В этом режиме глобальный вариант прибавил 4,96 пункта F1 к обрезанию по документам; F1 здесь измеряет совпадение токенов подготовленного и эталонного ответов.
Подготовка текста из сохранённых оценок занимала 26–41 мс в сравнении с извлечением и переписыванием контекста во время запроса. При этом порядок слов оказался существенным: набор тех же фрагментов, отсортированный по важности, давал ответы хуже, чем фрагменты в исходном порядке документа.
Когда REVA меняет архитектурный план
Работа меняет планы сервисов с повторяющимся корпусом: внутренних баз знаний, справочных систем и продуктов, где похожие вопросы снова приводят к тем же документам. В такой нагрузке сжатие можно вынести в асинхронный контур, а в критическом пути оставить поиск оценок и сборку текста.
Для внедрения понадобятся стабильные идентификаторы документов и фрагментов, версия корпуса и журнал связок «запрос — документы — ответ». Переход на другую модель, токенизатор или шаблон требует отдельного набора оценок, поэтому хранилище следует версионировать вместе с контуром генерации.
Метод также требует доступа к весам внимания целевой модели. Если модель вызывается через API, который возвращает только готовый текст, собрать такой сигнал напрямую не получится. Тогда потребуется собственный контур генерации или отдельный асинхронный прогон там, где веса доступны.
REVA не отменяет простой запасной путь. Новые документы обслуживаются обрезанием, а накопленные оценки постепенно увеличивают покрытие. Поэтому разумный первый запуск — локальные квоты и фоновое заполнение хранилища; глобальное перераспределение полезно подключать после проверки на запросах, где ответ складывается из нескольких документов.
Источники
Похоже на вашу задачу?
Расскажите, что собираете. За полчаса разложим на этапы и назовём сроки — это бесплатно и ни к чему не обязывает.



