Развитие LLM: изучение нативных, продвинутых и модульных подходов RAG
Представьте, что вы полагаетесь на учебники, написанные много лет назад, чтобы отвечать на насущные вопросы сегодняшнего дня. Хотя вы могли бы объяснять устоявшиеся концепции или исторические события, вам было бы трудно предоставить точную информацию о недавних разработках. Эта проблема соответствует ограничениям больших языковых моделей (LLMs), которые опираются на статические обучающие данные, быстро устаревающие. Retrieval-Augmented Generation (RAG), рассматриваемая в статье Retrieval-Augmented Generation for Large Language Models: A Survey, устраняет эти ограничения, интегрируя внешние источники знаний в процесс генерации.
В отличие от традиционных LLMs, которые опираются исключительно на знания, закодированные в параметрах их нейронной сети, системы RAG динамически извлекают релевантную информацию для улучшения своих ответов. Эта возможность делает RAG полезной для задач, требующих интенсивной работы со знаниями, таких как юридические исследования, медицинская диагностика и техническая поддержка в реальном времени.
В этой статье мы рассмотрим ключевые компоненты RAG, ее эволюцию, техническую реализацию, интеграцию с vector databases, методы оценки и потенциал для реальных приложений.
Архитектура и процесс RAG
RAG, или retrieval augmented generation, вводит процесс, который расширяет возможности LLMs за счет извлечения и включения внешних знаний во время генерации ответа. Этот процесс можно разделить на три основных этапа: индексирование, извлечение и генерация, как показано на изображении ниже:
Figure: Representative instance of the RAG process applied to question answering
Рисунок: Репрезентативный пример процесса RAG, примененного к ответам на вопросы.
Давайте рассмотрим, что происходит на каждом ключевом этапе RAG.
Ключевые этапы RAG
Этап индексирования: Документы разбиваются на управляемые фрагменты, которые затем кодируются в числовые векторы, отражающие их семантическое значение. Эти векторы хранятся в vector database, такой как Milvus, оптимизированной для эффективного поиска по сходству.
Этап извлечения: Система обрабатывает запрос пользователя, преобразуя его в вектор, числовое представление данных, и выполняет поиск семантически похожих фрагментов в векторной базе данных. Это гарантирует извлечение наиболее релевантной информации, даже если точные слова различаются.
Этап генерации: Извлеченная информация объединяется с запросом, чтобы сформировать улучшенный запрос с контекстом, а затем LLM генерирует связный и контекстуально точный ответ. Такая интеграция помогает уменьшить количество ошибок и повышает фактическую надежность выходного результата.
Включая эти шаги, системы RAG позволяют LLMs справляться со сложными задачами, требующими интенсивной работы со знаниями, с которыми традиционные модели испытывают трудности, например отвечать на вопросы о недавних событиях или специализированных областях. Понимание этих этапов создает основу для изучения того, как системы RAG эволюционировали через различные парадигмы.
Эволюция RAG через три парадигмы
Развитие RAG прошло через три парадигмы, каждая из которых решает конкретные проблемы, опираясь на предыдущие достижения: Naive RAG, Advanced RAG и Modular RAG, как показано на изображении ниже.
Figure: Naive RAG vs Advanced RAG vs Modular RAG
Рисунок: Naive RAG vs Advanced RAG vs Modular RAG
Naive RAG: фундаментальные истоки
Наивный RAG заложил основу для систем с дополненной retrieval-генерацией, объединяя поиск документов с генерацией языковой моделью. Эта парадигма следует простому конвейеру: документы индексируются и сегментируются на фрагменты, релевантные фрагменты извлекаются на основе оценок сходства в векторной базе данных, а извлеченная информация синтезируется с пользовательским запросом, чтобы LLM сгенерировала ответ. Этот подход представил базовый фреймворк Retrieve-Read, который, хотя и был прорывным для своего времени, продемонстрировал ряд ограничений.
Ключевая проблема в Naive RAG заключается в точности retrieval. Система часто извлекает нерелевантные фрагменты или не улавливает важный контекст, что приводит к неполным или зашумленным результатам. Кроме того, этап генерации может страдать от галлюцинаций, когда модель выдумывает информацию, не подтвержденную извлеченным содержимым. Кроме того, избыточность в извлеченных документах может снижать релевантность ответа. Несмотря на эти проблемы, Naive RAG заложил основу для более продвинутых парадигм, продемонстрировав преимущества сочетания retrieval и генерации.
Advanced RAG: устранение пробелов
Advanced RAG устраняет несколько ограничений Naive RAG, вводя оптимизации как на этапах до retrieval, так и после retrieval. На этапе до retrieval используются методы оптимизации запросов, такие как расширение и переписывание запросов, чтобы повысить точность retrieval. Например, пользовательский запрос вроде “Каковы последние достижения в квантовых вычислениях?” может быть расширен за счет включения связанных технических терминов и синонимов, обеспечивая retrieval более широкого диапазона релевантных документов.
На этапе после retrieval Advanced RAG включает алгоритмы reranking, чтобы уточнить набор извлеченных документов. Эти алгоритмы оценивают семантическое сходство, авторитетность документа и релевантность каждого фрагмента, отдавая приоритет наиболее полезной информации. Например, при ответе на медицинский запрос система может ранжировать недавние рецензируемые исследования выше, чем более старые или менее авторитетные источники. Этот процесс уточнения значительно улучшает качество извлеченного контекста, позволяя этапу генерации создавать более точные и связные ответы.
Advanced RAG также выигрывает от более сложной интеграции извлеченного контента. Стратегически управляя взаимосвязью между retrieval и генерацией, он снижает вероятность галлюцинаций и гарантирует, что сгенерированные ответы прочно основаны на извлеченных доказательствах.
Modular RAG: гибкий и адаптивный фреймворк
Самая недавняя эволюция, Modular RAG, вводит гибкий фреймворк, предназначенный для работы с широким спектром задач и контекстов. В отличие от фиксированного конвейерного подхода своих предшественников, Modular RAG использует специализированные модули, которые могут динамически перенастраиваться в зависимости от требований запроса. Эти модули включают:
Search Module: Расширяет возможности retrieval на разнообразные источники данных, такие как графы знаний, структурированные базы данных и традиционные поисковые системы. Например, при запросе корпоративных финансовых показателей система может извлекать данные из финансовой отчетности, регуляторных документов и новостных статей.
Memory Module: Сохраняет и управляет растущим пулом контекстных знаний в ходе многоходовых взаимодействий. Этот модуль гарантирует, что система опирается на предыдущие запросы и поддерживает согласованный контекст между взаимодействиями.
Routing Module: Выступает в роли слоя принятия решений, динамически определяя, требует ли запрос retrieval, резюмирования или комбинации подходов.
Модуль Fusion: Модуль Fusion устраняет ограничения традиционных стратегий поиска, применяя техники множественных запросов. Он расширяет пользовательские запросы до различных точек зрения, используя параллельный векторный поиск и интеллектуальное повторное ранжирование, чтобы выявить более широкий спектр знаний. Например, запрос об изменении климата может извлечь документы, охватывающие научные исследования, обсуждения политики и реальные последствия, синтезируя их в единый ответ.
Модуль Predict: Разработанный для уменьшения избыточности и шума в извлеченных результатах; модуль Predict использует LLM для непосредственной генерации контекста. Это гарантирует, что в ответ включается только релевантная информация, упрощая процесс извлечения и повышая общее качество сгенерированных ответов.
Модуль Demonstrate: Модуль Demonstrate играет ключевую роль в уточнении ответов, включая примеры или пошаговые объяснения. Это особенно ценно в образовательных контекстах или в технической поддержке, где пользователи получают пользу от подробных демонстраций процессов или концепций.
Одно из ключевых нововведений в Modular RAG — его поддержка передовых техник дополнения извлечения. К ним относятся итеративное, рекурсивное и адаптивное извлечение.
Рисунок: Типы передовых процессов дополнения извлечения: итеративное, рекурсивное и адаптивное извлечение
Рисунок: Типы передовых процессов дополнения извлечения: итеративное, рекурсивное и адаптивное извлечение.
Итеративное извлечение: Позволяет выполнять несколько раундов извлечения и генерации, уточняя контекст с каждой итерацией. Например, сложный запрос о последствиях изменения климата может начинаться с общего обзора, а затем сопровождаться более целенаправленными извлечениями, посвященными конкретным регионам или стратегиям смягчения последствий.
Рекурсивное извлечение: Разбивает многогранные запросы на более мелкие, управляемые компоненты. При ответе на вопрос об экономических последствиях исторических событий система может сначала извлечь информацию о самих событиях, а затем выполнить извлечения, сосредоточенные на их экономических последствиях.
Адаптивное извлечение: Вводит динамическое управление процессом извлечения. Система оценивает сложность и требования запроса, решая, когда и как извлекать дополнительную информацию. Такая гибкость обеспечивает эффективное использование вычислительных ресурсов при сохранении качества ответов.
Модульная архитектура этой парадигмы также поддерживает гибридные подходы, такие как сочетание извлечения и суммаризации в рамках одного запроса или выборочная активация компонентов в зависимости от требований задачи. Такая адаптивность делает Modular RAG особенно подходящим для сложных, знаниеемких приложений.
Реализация и техническая архитектура
Реализация RAG включает ряд технических компонентов, обеспечивающих его эффективность и масштабируемость в практических сценариях.
Обработка документов и эмбеддинг
Первый шаг в RAG — обработать и закодировать документы в векторные представления. Эти векторы отражают семантическое значение текста и сохраняются в базе данных для эффективного извлечения. Современные системы часто используют гибридные подходы, которые сочетают плотные эмбеддинги для отражения семантических связей и разреженные эмбеддинги для лексической точности.
Вот пример конвейера обработки документов:
```
class DocumentProcessor:
def __init__(self):
self.chunker = SemanticChunker(
chunk_size=512,
overlap=50,
respect_boundaries=True
)
self.embedder = DualEmbedder(
dense_model='sentence-transformers/all-mpnet-base-v2',
sparse_model='bm25'
)
def process_document(self, document):
chunks = self.chunker.split_document(document)
embeddings = self.embedder.encode_chunks(chunks)
return chunks, embeddings
```
Этот процесс гарантирует, что каждый документ кодируется в векторный формат, который можно хранить в векторной базе данных для эффективного извлечения. Сочетание семантических и лексических признаков улучшает способность системы понимать и извлекать контекстуально релевантную информацию.
Извлечение и генерация
На этапе извлечения используются алгоритмы приближенного поиска ближайших соседей (ANN), чтобы эффективно идентифицировать релевантные фрагменты. Этап генерации объединяет извлеченный контент с запросом с использованием структурированных промптов, чтобы направлять ответ языковой модели. Например:
def create_generation_prompt(query, contexts):
prompt = f"""
Question: {query}
Retrieved Information:
{format_contexts(contexts)}
Answer:"""
return prompt
Этот структурированный ввод гарантирует, что языковая модель имеет весь необходимый контекст для генерации информативного ответа.
Фреймворк оценки и метрики качества
Оценка RAG-систем требует многомерного подхода, учитывающего как компоненты извлечения, так и генерации. Комплексный фреймворк оценки гарантирует, что эти системы не только предоставляют точную информацию, но и делают это эффективно и надежно. Ниже приведены основные метрики, используемые для оценки RAG-систем:
Релевантность контекста: Эта метрика измеряет, насколько хорошо извлеченные документы соответствуют пользовательскому запросу. Высокая релевантность указывает на то, что система успешно извлекла информацию, напрямую применимую к вопросу или задаче. Например, когда пользователь задает запрос «Каковы последние достижения в области возобновляемой энергетики?” релевантность контекста обеспечит извлечение документов, конкретно посвященных инновациям в солнечной, ветровой или аккумуляторной технологиях, а не несвязанным экологическим темам.
Верность ответа: Верность оценивает, насколько сгенерированный ответ точно отражает извлеченный контент. Система должна избегать внесения неточностей или неподтвержденных утверждений при синтезе извлеченной информации в связный ответ. Например, если в извлеченном документе говорится, что эффективность солнечных панелей повысится на 20% в 2024 году, сгенерированный ответ не должен обобщать это улучшение на все технологии возобновляемой энергетики.
Эффективность и задержка: Эти метрики оценивают способность системы быстро предоставлять ответы при сохранении вычислительной эффективности. Низкая задержка критически важна для пользовательских приложений, таких как чат-боты или системы клиентской поддержки. Современные RAG-системы часто полагаются на оптимизированный векторный поиск и аппаратное ускорение для достижения быстрого извлечения и времени ответа.
Масштабируемость: Масштабируемость измеряет способность системы сохранять производительность при обработке крупномасштабных данных. Это включает способность управлять миллиардами эмбеддингов документов, обеспечивая при этом точное извлечение и эффективную обработку запросов.
Помимо этих метрик, существуют специализированные фреймворки оценки, которые предлагают структурированные методы для оценки RAG-систем по различным измерениям:
Retrieval Generation Benchmark (RGB):
Retrieval Generation Benchmark (RGB) оценивает как поиск, так и генерацию RAG-систем. Он делает акцент на устойчивости к шуму, обеспечивая способность системы эффективно работать даже тогда, когда извлеченные данные содержат неоднозначности или несоответствия. Он также измеряет негативное отклонение — способность системы избегать генерации ответов, когда надежная информация недоступна. Другие критерии включают контрфактическую устойчивость и интеграцию извлеченной информации в связные ответы. RGB использует такие бенчмарки, как косинусное сходство и нормализованный дисконтированный кумулятивный выигрыш (NDCG), для оценки точности поиска и качества вывода.
RECALL (Оценка частоты повторного появления):
RECALL фокусируется на точности передачи извлеченных знаний в сгенерированном ответе. Метрика R-Rate измеряет, насколько часто критически важная информация из извлеченных документов точно появляется в итоговом выводе. Этот фреймворк показывает, эффективно ли этап поиска поддерживает процесс генерации. Например, в задаче вопросов и ответов RECALL гарантирует, что RAG-система точно включает все релевантные пункты из извлеченных документов в сгенерированный ответ.
CRUD (Креативная генерация, устойчивость, понимание и доменно-специфические задачи)
Фреймворк CRUD расширяет оценку на более широкий спектр возможностей. Он тестирует креативную генерацию, оценивая, насколько эффективно система синтезирует новые инсайты из извлеченной информации. Устойчивость измеряет производительность системы в сложных условиях, таких как зашумленные или неполные запросы. Понимание фокусируется на способности системы точно интерпретировать сложные запросы и отвечать на них. Доменно-специфические задачи оценивают эффективность системы в специализированных областях, таких как юридические исследования или финансовый анализ, обеспечивая применимость в различных отраслях.
Систематически оценивая эти метрики, мы можем выявлять области для улучшения, совершенствовать архитектуры систем и обеспечивать соответствие RAG-систем потребностям реальных приложений. Но имейте в виду, что эффективность этих оценочных метрик часто зависит от базовой инфраструктуры поиска, где векторные базы данных играют ключевую роль в обеспечении скорости и точности.
RAG и векторные базы данных: мощная синергия
Векторные базы данных играют ключевую роль в работе RAG-систем, предоставляя инфраструктуру, необходимую для хранения и извлечения многомерных эмбеддингов контекстной информации, нужной для LLM. Эти эмбеддинги отражают семантическое и контекстуальное значение неструктурированных данных, обеспечивая точные поиски по сходству, лежащие в основе эффективности генерации с дополнением извлеченной информацией.
Milvus — это векторная база данных с открытым исходным кодом, способная обрабатывать векторные данные миллиардного масштаба с ультранизкой задержкой. Ее возможности тесно соответствуют потребностям RAG-систем, что делает ее идеальным выбором для разработчиков, создающих RAG-системы.
Масштабируемость: Milvus разработан для управления миллиардами эмбеддингов, что делает его подходящим для корпоративных приложений, таких как рекомендательные системы электронной коммерции или глобальные сети поддержки клиентов.
Продвинутое индексирование: Milvus поддерживает более 10 методов индексирования, включая IVF и HNSW, позволяя разработчикам выбирать наиболее подходящий метод на основе их требований к производительности и задержке.
Гибридный поиск: Объединяя плотные и разреженные эмбеддинги, Milvus обеспечивает семантическую и лексическую точность извлеченных результатов, повышая общую релевантность ответов системы.
Бесшовная интеграция: Milvus легко интегрируется с популярными фреймворками, такими как LangChain и LlamaIndex, упрощая разработку сложных конвейеров RAG.
Будущие направления для систем RAG
По мере развития технологии Retrieval-Augmented Generation (RAG) появилось несколько перспективных направлений исследований. Эти достижения направлены на повышение точности поиска, улучшение адаптивности и расширение области применения систем RAG для различных задач.
Продвинутый контекстный адаптивный поиск
Будущие системы RAG будут использовать продвинутые стратегии поиска, которые динамически адаптируются на основе намерения пользователя и сложности запроса. Эти системы будут оптимизировать поиск для сложных, многоуровневых вопросов, уточняя глубину и широту поиска в реальном времени, что позволит получать более точные результаты в таких областях, как техническое устранение неполадок или соблюдение нормативных требований.
Итеративные системы на основе обратной связи
Системы RAG будут интегрировать циклы обратной связи, которые позволят сгенерированным результатам направлять последующие поисковые запросы. Такое итеративное уточнение повысит точность, особенно для многоэтапных или неоднозначных запросов. Например, если первоначальный ответ недостаточно подробен, система скорректирует свой запрос, чтобы получить дополнительную информацию.
Темпоральный и контекстно-ориентированный поиск
Следующее поколение систем RAG будет включать темпоральное рассуждение, позволяя формировать ответы, учитывающие изменения во времени. Это будет крайне важно для таких приложений, как финансовый анализ, где понимание тенденций по кварталам или годам обеспечивает более полную картину, чем данные по отдельному случаю.
Межъязыковая и культурная адаптивность
Будущие системы RAG будут более эффективно обрабатывать многоязычные и межкультурные запросы, используя контекстно-ориентированные эмбеддинги, отражающие семантические нюансы и культурные различия. Эти системы обеспечат бесшовное глобальное применение, например поиск и синтез знаний на разных языках при сохранении точности и релевантности.
Заключение
Retrieval-Augmented Generation (RAG) сочетает преимущества больших языковых моделей с поисковыми системами, решая такие проблемы, как статические знания и неточности. Интегрируя поиск в генерацию, системы RAG предоставляют более точные и контекстно-ориентированные результаты, что делает их эффективными для приложений, требующих актуальных или специализированных знаний.
Будущие разработки в таких областях, как динамический поиск, уточнение на основе обратной связи и межъязыковые возможности, улучшат их функциональность. Благодаря таким инструментам, как Milvus, поддерживающим эффективную интеграцию векторных баз данных, системы RAG становятся всё более практичными для различных отраслей, таких как здравоохранение, поддержка клиентов и образование.
По мере развития исследований системы RAG будут продолжать совершенствовать свою способность предоставлять надежные, эффективные и контекстно-чувствительные знания, обеспечивая более широкое использование в реальных сценариях.
Дополнительные ресурсы
Читать далее

DeepSeek-OCR Explained: Optical Compression for Scalable Long-Context and RAG Systems
Discover how DeepSeek-OCR uses visual tokens and Contexts Optical Compression to boost long-context LLM efficiency and reshape RAG performance.

Creating Collections in Zilliz Cloud Just Got Way Easier
We've enhanced the entire collection creation experience to bring advanced capabilities directly into the interface, making it faster and easier to build production-ready schemas without switching tools.

What Exactly Are AI Agents? Why OpenAI and LangChain Are Fighting Over Their Definition?
AI agents are software programs powered by AI that can perceive their environment, make decisions, and take actions to achieve a goal—often autonomously.


