Как стать автором
Обновить

Часть 2. Обзор технологий RAG для LLM: поиск и извлечение информации

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров2.9K
Автор оригинала: Yunfan Gao, Yun Xiong, Xinyu Gao, Kangxiang Jia, Jinliu Pan, Yuxi Bi, Yi Dai, Jiawei Sun, Meng Wang, Haofen Wang

Продолжаю адаптированный перевод статьи китайских исследователей Retrieval-Augmented Generation for Large Language Models: A Survey (первую часть см. здесь) Во второй части авторы разбирают технологии оптимизации поиска и извлечения данных. Поскольку материал я готовил в первую очередь для начинающих ИТ-переводчиков, сложные и специальные термины я сопровождал английским переводом и краткими пояснениями в инфобоксах (появляются по наведению курсора). Картинок не было, не обессудьте.


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

А. Техники использования источников поиска

RAG использует внешние знания для улучшения LLM, при этом тип источника поиска и детализация выборки напрямую влияют на качество генерации.

  1. Структура данных. Первоначально основным источником для извлечения служил текст. Затем источники извлечения расширились за счет полуструктурированных данных и структурированных данных (например графов знаний). Помимо внешних источников, в исследованиях набирает популярность использование LLM-генерируемого контента — текстов, созданных самой языковой моделью для повторного извлечения и улучшения результатов.

    Таблица 1. Сводка методов RAG.

Метод

Источник

Извлекаемый тип данных

Уровень детализации

Дополняемый этап

Процесс поиска

CoG

Wikipedia

Text

Phrase

Pre-training

Iterative

DenseX

FactoidWiki

Text

Proposition

Inference

Once

EAR

Dataset-base

Text

Sentence

Tuning

Once

UPRISE

Dataset-base

Text

Sentence

Tuning

Once

RAST

Dataset-base

Text

Sentence

Tuning

Once

Self-Mem

Dataset-base

Text

Sentence

Tuning

Iterative

FLARE

Search Engine, Wikipedia

Text

Sentence

Tuning

Adaptive

PGRA

Wikipedia

Text

Sentence

Inference

Once

FILCO

Wikipedia

Text

Sentence

Inference

Once

RADA

Dataset-base

Text

Sentence

Inference

Once

Filter-rerank

Synthesized dataset

Text

Sentence

Inference

Once

R-GQA

Dataset-base

Text

Sentence Pair

Tuning

Once

LLM-R

Dataset-base

Text

Sentence Pair

Inference

Iterative

TIGER

Dataset-base

Text

Item-base

Pre-training

Once

LM-Indexer

Dataset-base

Text

Item-base

Tuning

Once

BEQUE

Dataset-base

Text

Item-base

Tuning

Once

CT-RAG

Synthesized dataset

Text

Item-base

Tuning

Once

Atlas

Wikipedia, Common Crawl

Text

Chunk

Pre-training

Iterative

RAVEN

Wikipedia

Text

Chunk

Pre-training

Once

RETRO++

Pre-training Corpus

Text

Chunk

Pre-training

Iterative

INSTRUCTRETRO

Pre-training corpus

Text

Chunk

Pre-training

Iterative

RRR

Search Engine

Text

Chunk

Tuning

Once

RA-e2e

Dataset-base

Text

Chunk

Tuning

Once

PROMPTAGATOR

BEIR

Text

Chunk

Tuning

Once

AAR

MSMARCO, Wikipedia

Text

Chunk

Tuning

Once

RA-DIT

Common Crawl, Wikipedia

Text

Chunk

Tuning

Once

RAG-Robust

Wikipedia

Text

Chunk

Tuning

Once

RA-Long-Form

Dataset-base

Text

Chunk

Tuning

Once

CoN

Wikipedia

Text

Chunk

Tuning

Once

Self-RAG

Wikipedia

Text

Chunk

Tuning

Adaptive

BGM

Wikipedia

Text

Chunk

Inference

Once

CoQ

Wikipedia

Text

Chunk

Inference

Iterative

Token-Elimination

Wikipedia

Text

Chunk

Inference

Once

PaperQA

Arxiv, Online Database, PubMed

Text

Chunk

Inference

Iterative

NoiseRAG

FactoidWiki

Text

Chunk

Inference

Once

IAG

Search Engine, Wikipedia

Text

Chunk

Inference

Once

NoMIRACL

Wikipedia

Text

Chunk

Inference

Once

ToC

Search Engine, Wikipedia

Text

Chunk

Inference

Recursive

SKR

Dataset-base, Wikipedia

Text

Chunk

Inference

Adaptive

ITRG

Wikipedia

Text

Chunk

Inference

Iterative

RAG-LongContext

Dataset-base

Text

Chunk

Inference

Once

ITER-RETGEN

Wikipedia

Text

Chunk

Inference

Iterative

IRCoT

Wikipedia

Text

Chunk

Inference

Recursive

LLM-Knowledge-Boundary

Wikipedia

Text

Chunk

Inference

Once

RAPTOR

Dataset-base

Text

Chunk

Inference

Recursive

RECITE

LLMs

Text

Chunk

Inference

Once

ICRALM

Pile, Wikipedia

Text

Chunk

Inference

Iterative

Retrieve-and-Sample

Dataset-base

Text

Doc

Tuning

Once

Zemi

C4

Text

Doc

Tuning

Once

CRAG

Arxiv

Text

Doc

Inference

Once

1-PAGER

Wikipedia

Text

Doc

Inference

Iterative

PRCA

Dataset-base

Text

Doc

Inference

Once

QLM-Doc-ranking

Dataset-base

Text

Doc

Inference

Once

Recomp

Wikipedia

Text

Doc

Inference

Once

DSP

Wikipedia

Text

Doc

Inference

Iterative

RePLUG

Pile

Text

Doc

Inference

Once

ARM-RAG

Dataset-base

Text

Doc

Inference

Iterative

GenRead

LLMs

Text

Doc

Inference

Iterative

UniMS-RAG

Dataset-base

Text

Multi

Tuning

Once

CREA-ICL

Dataset-base

Crosslingual, Text

Sentence

Inference

Once

PKG

LLM

Tabular, Text

Chunk

Inference

Once

SANTA

Dataset-base

Code, Text

Item

Pre-training

Once

SURGE

Freebase

KG

Sub-Graph

Tuning

Once

MK-ToD

Dataset-base

KG

Entity

Tuning

Once

Dual-Feedback-ToD

Dataset-base

KG

Entity Sequence

Tuning

Once

KnowledGPT

Dataset-base

KG

Triplet

Inference

Muti-time

FABULA

Dataset-base, Graph

KG

Entity

Inference

Once

HyKGE

CMeKG

KG

Entity

Inference

Once

KALMV

Wikipedia

KG

Triplet

Inference

Iterative

RoG

Freebase

KG

Triplet

Inference

Iterative

G-Retriever

Dataset-base

TextGraph

Sub-Graph

Inference

Once

Неструктурированные данные, такие как текстовые материалы, являются основным источником поиска, собираемым из корпусов материалов. Для взаимодействия типа ODQA ключевыми источниками выступают дампы Wikipedia, включая версии HotpotQA 4 (от 1 октября 2017 г.) и DPR5 (от 20 декабря 2018 г.). Помимо энциклопедических данных, к распространённым типам относят параллельные языковые тексты и узкоспециализированные данные, например, медицинские и юридические.

Полуструктурированные данные создают проблемы для классических RAG-систем по двум основным причинам:

  1. при разделении текста на фрагменты таблицы могут быть случайно разорваны, что приводит к потере целостности данных при поиске;

  2. наличие таблиц усложняет поиск семантического сходства, так как их структура плохо совместима с векторными представлениями.

Для работы с такими данными существуют два подхода:

  1. использовать возможности LLM для генерации SQL-запросов (например, TableGPT), преобразуя таблицы в структурированные запросы к базам данных;

  2. конвертировать таблицы в текстовый формат для последующего анализа стандартными NLP-методами.

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

Структурированные данные, такие как графы знаний — формализованные структуры с проверенными связями, обеспечивающие высокую точность информации. Например, система KnowledGPT автоматизирует формирование поисковых запросов к базам знаний и создает персонализированные хранилища, обогащая контекст RAG-моделей. Для преодоления ограничений LLM в работе с текстовыми графами, архитектура G-Retriever интегрирует графовые нейронные сети, LLM и RAG, улучшая анализ связей через мягкое промптирование модели и применяя задачу оптимизации Prize-Collecting Steiner Tree для целевого поиска в графах.

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

Контент, генерируемый языковой моделью. Для преодоления ограничений, связанных со качеством и спецификой внешних вспомогательных данных в RAG исследователи сосредоточились на использовании внутренних знаний LLM. Одним из ключевых подходов здесь является метод SKR, который классифицирует вопросы как известные/неизвестные модели и выборочно применяет механизмы улучшения поиска. Другой подход — GenRead, где вместо традиционного ретривера задействуется генератор на основе LLM, создающий контексты с более точными ответами благодаря совместимости с задачами каузального языкового моделирования.

  1. Детализация поиска. Как было сказано выше, помимо формата данных источника поиска, ключевым аспектом становится детализация выборки. Грубая детализация теоретически предоставляет больше контекста, но рискует включить избыточные данные, которые могут дезориентировать модели на последующих этапах. Тонкая детализация увеличивает вычислительную нагрузку и не гарантирует семантической целостности. Оптимальный выбор уровня детализации во время выполнения — эффективный способ улучшить как поиск, так и результаты дополнительных задачах. В текстовых данных уровни детализации варьируются от токенов до целых документов.
    Метод DenseX ввёл пропозиции как компромисс между точностью и контекстом. Например, предложение "ИИ обрабатывает NLP-запросы" можно разбить на пропозиции: "ИИ выполняет обработку" и "обработка касается NLP-запросов". Такой подход уменьшает шум и повышает релевантность. Для графов знаний используются уровни: сущности, триплеты и подграфы. В рекомендательных системах применяют Item ID, а в задачах машинного перевода — пары предложений. Выбор зависит от специфики задачи: например, в медицинских RAG-системах часто используют триплеты для точного извлечения взаимосвязей "причина-симптом-лечение".

Б. Техники для оптимизации индексирования

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

Стратегия разделения на чанки предполагает компромисс между крупными фрагментами и мелкими. Ключевые подходы:

  • тонкая сегментация на уровне предложений или пропозиций; -  обогащение чанков метаданными (временными метками, иерархическими связями);

  • использование графов знаний для улучшения связности поиска.

1. Стратегия разделения на чанки

Наиболее распространённый подход — разбиение документа на чанки фиксированного размера, фрагменты текста с заданным количеством токенов, например 100, 256 или 512. Крупные чанки сохраняют больше контекста, но увеличивают уровень шума, требуя больше времени обработки и ресурсов. Мелкие чанки снижают шум, но могут терять смысловую целостность.
Однако усечение предложений внутри чанков привело к разработке рекурсивного разделения и метода скользящего окна, которые позволяют объединять глобально связанную информацию в многоуровневом поиске. Несмотря на это, баланс между семантической полнотой и длиной контекста остаётся проблемой.
Для решения этой проблемы предложены гибридные методы вроде Small2Big, который позволяет сочетать точность поиска с сохранением связности контекста в два этапа без перегрузки системы. Суть метода:

  • small — поиск выполняется по компактным единицам (предложениям);

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

2. Обогащение метаданными

Чанки могут дополняться метаданными: номер страницы, имя файла, автор, категория, временная метка. Это позволяет фильтровать результаты поиска, сужая область извлечения данных. Назначение различных весов временным меткам документов при поиске реализует time-aware RAG.
Помимо извлечения метаданных из документов, их можно создавать искусственно. Например, добавлять аннотации абзацев или гипотетические вопросы — этот подход называется Reverse HyDE. В этом случае LLM генерирует вопросы к документу, а при поиске вычисляется схожесть между исходным вопросом и искусственно созданными, что уменьшает семантический разрыв между запросом и ответом.

3. Индексы

Структурный индекс — это эффективный подход для улучшения информационного поиска. Его суть заключается в создании иерархической структуры документов, где элементы связаны через родительско-дочерние отношения. Например, чанки объединяются в логические группы, а на каждом уровне структуры хранятся сводки данных, что ускоряет навигацию и выборку релевантных элементов. Такой подход не только сокращает время обработки запросов в RAG-системах, но и снижает риск возникновения галлюцинаций из-за фрагментарного извлечения данных.


Иерархическая структура индекса. Файлы организованы в родительско-дочерние связи, при этом чанки связаны с ними. В каждом узле хранятся сводки данных, что ускоряет обход данных и помогает системе RAG выбирать релевантные чанки для извлечения. Такой подход позволяет снизить иллюзии — ошибки, возникающие при извлечении отдельных блоков данных без учёта контекста.

Индекс на основе графа знаний. Использование графов знаний для построения иерархической структуры документов способствует сохранению смысловой целостности данных. Этот подход явно определяет связи между концептами и сущностями, значительно снижая риск иллюзий (ошибочных интерпретаций модели). Дополнительное преимущество — трансформация процесса информационного поиска в инструкции, понятные LLM, что повышает точность извлечения знаний и позволяет модели генерировать контекстно-согласованные ответы, усиливая общую эффективность RAG-системы.

Для анализа логических взаимосвязей между содержанием и структурой документов, метод KGP предлагает построение междокументного индекса на основе KG. Такой граф содержит:

  • узлы (абзацы или структурные элементы: страницы, таблицы);

  • рёбра (отражающие семантическую/лексическую близость абзацев или структурные связи внутри документов).

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

В. Техники для оптимизации запросов

Основная проблема наивного RAG заключается в прямой зависимости от исходного формулирования вопроса пользователем. Создание точных и однозначных запросов — нетривиальная задача, а неаккуратно сформулированные вопросы приводят к снижению эффективности поиска. Кроме того, сами вопросы часто содержат сложную логику или недостаточно структурированы на языковом уровне.

Отдельный вызов связан с языковой сложностью и неоднозначностью. Например, модели могут не различать контекстные значения аббревиатур: та же "LLM" может обозначать как большую языковую модель (Large Language Model), так и степень магистра права (LLM - Master of Laws) в юридическом контексте.

1.   Аугментация запросов

Расширение запросов — метод повышения релевантности ответов за счёт генерации нескольких вариаций исходного запроса (например, вопрос о «болезнях» может быть дополнен синонимами «заболевания», «патологии»). Это позволяет компенсировать недостаток контекстных нюансов и увеличивает охват семантического пространства. Например, мультизапрос, то есть параллельное выполнение нескольких запросов, использует LLM для структурированного создания альтернативных формулировок из исходного промпта, что позволяет захватывать различные аспекты исходного вопроса.

Подзапрос реализуется через метод «от простого к сложному» , где LLM последовательно генерирует уточняющие вопросы . Этот подход аналогичен расширению запросов, но фокусируется на иерархической структуре поиска.

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

2. Трансформация запросов

Трансформация запросов основана на поиске чанков по преобразованному запросу вместо оригинального.

Переформулирование запросов решает проблему неоптимальности исходных формулировок для LLM, особенно в реальных сценариях. Для этого используется как отправка промпта непосредственно в LLM, так и специализированные модели меньшего размера.
Например, RRR (Rewrite-Retrieve-Read) реализует трёхэтапный метод:

  1. переформулирование запроса,

  2. поиск релевантных данных,

  3. формирование ответа на основе найденного.

Этот метод отличается от базового RAG тем, что использует отдельную модель для каждого этапа, что повышает точность и снижает вычислительные затраты. Переформулирование запросов методом BEQUE в системе Taobao повысило эффективность поиска по низкочастотным запросам (с «длинными хвостами»), что привело к росту валового  товарооборота.

Другой подход — генерация HyDE. Вместо поиска схожести между запросом и документами, HyDE фокусируется на схожести между гипотетическими ответами.

Метод Step-back Prompting создаёт обобщённые формулировки. В RAG-системе результаты поиска по обоим типам запросов (исходному и абстрагированному) объединяются для генерации итогового ответа.

3. Маршрутизация запросов

Маршрутизация запросов — ключевой подход для универсальных RAG-систем, адаптирующихся к различным сценариям.

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

Семантический маршрутизатор использует семантическую информацию запроса вместо метаданных. Конкретные методы реализации будут описаны далее в разделе «Семантический маршрутизатор».

Для повышения эффективности может применяться гибридный подход, объединяющий преимущества обоих методов.

Г. Техники для оптимизации эмбеддингов

В архитектуре RAG поиск реализуется через вычисление семантического сходства (например, косинусного) между векторными представлениями запроса и чанков документов. Ключевую роль здесь играют два подхода:

  • разреженный энкодер типа BM25;

  • плотный ретривер.

Современные исследования предлагают специализированные модели векторного представления (AngIE, Voyage, BGE), улучшенные за счёт мультизадачного инструктивного обучения.

Для сравнения моделей используется MTEB от Hugging Face — бенчмарк, оценивающий 8 задач на 58 датасетах. Под китайский язык разработан C-MTEB, охватывающий 6 задач и 35 наборов данных. Универсального решения для выбора оптимальной модели не существует — выбор зависит от конкретного сценария использования, однако определённые модели эффективнее всего себя проявляют в узкоспециализированных задачах.

1. Гибридный поиск объединяет разреженные и плотные модели поиска. Эти подходы дополняют друг друга: разреженные модели могут предоставлять начальные результаты для обучения плотных моделей. Кроме того, предобученные языковые модели оптимизируют весовые коэффициенты терминов для улучшения разреженного поиска. В частности, разреженные модели повышают способность плотных моделей к zero-shot поиску и помогают обрабатывать редкочастотные запросы, тем самым увеличивая надёжность системы.

2. Дообучение моделей эмбеддингов критически необходимо, когда контекст данных существенно отличается от исходного корпуса для предобучения. Это особенно актуально для узкоспециализированных областей, таких как медицина, юриспруденция и других сфер с обилием профессиональной терминологии. Например, в медицинских текстах могут встречаться редкие аббревиатуры диагнозов (по МКБ-11), требующие адаптации модели.

Помимо добавления узкоспециализированных знаний, дообучение решает задачу согласованной работы ретривера и генератора. Одним из методов для обеспечения такой согласованности является LSR. Например, PROMPTAGATOR использует LLM для генерации запросов в режиме few-shot, чтобы создавать ретриверы под конкретные задачи. Это решает проблему дефицита размеченных данных в нишевых доменах (например, анализ патентной документации).

Еще один метод, LLM-Embedder использует LLM для создания сигналов вознаграждения в дополнительных задачах. Ретривер проходит дообучение с двумя типами сигналов: жесткими метками и мягкими вознаграждениями . Такой гибридный подход повышает эффективность обучения, адаптируя модель эмбеддингов под различные прикладные сценарии.

Метод REPLUG объединяет ретривер и LLM для расчета распределений вероятностей по качеству найденных документов, после чего выполняет обучение с учителем через вычисление KL-дивергенции. Этот метод исключает необходимость сложных архитектурных решений, используя саму языковую модель как источник контрольных сигналов. Кроме того, в основу этого метода легло классическое обучение с подкреплением, только вместо человеческой оценки (обратной связи) здесь используется обратная связь от LLM.

Д. Техники использования адаптеров

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

Для оптимизации многозадачных возможностей LLM система UP-RISE, который автоматически извлекает подходящие промпты из предварительно созданного промпт-пула [prompt pool] для zero-shot сценариев. AAR реализует универсальный адаптер — модуль, который позволяет одной системе работать с разными типами данных и задач. В свою очередь, в PRCA реализован подключаемый контекстный адаптер, управляемый вознаграждением, который улучшает производительность на узкоспециализированных задачах.

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

PKG предлагает инновационный метод интеграции знаний через white-box модели, используя директивное дообучение. Здесь модуль ретривера заменяется на генератор документов, создающий релевантные материалы по запросу. Такой подход решает проблемы классического дообучения и повышает производительность системы.


Продолжение следует. В следующей, 3-й части мы поговорим о техниках аугментации в RAG.

Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
+5
Комментарии0

Публикации

Истории

Ближайшие события

19 марта – 28 апреля
Экспедиция «Рэйдикс»
Нижний НовгородЕкатеринбургНовосибирскВладивостокИжевскКазаньТюменьУфаИркутскЧелябинскСамараХабаровскКрасноярскОмск
24 апреля
VK Go Meetup 2025
Санкт-ПетербургОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань
14 мая
LinkMeetup
Москва
5 июня
Конференция TechRec AI&HR 2025
МоскваОнлайн
20 – 22 июня
Летняя айти-тусовка Summer Merge
Ульяновская область