Главная / Статьи

Сравнение 16 архитектур RAG: какой паттерн подходит к какой проблеме

Обзор шестнадцати шаблонов RAG в четырех категориях: от стандартных и гибридных методов поиска до агентных, графовых и федеративных решений, с пошаговым планом разработки по месяцам.

Издатель: REACTAPP.TOP14 мин чтения3330 слов

Источники: I Built 16 RAG Systems From Scratch — Here’s What Actually Works

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

Три проблемы, лежащие в основе RAG

Большие языковые модели впечатляющи, однако три основные недостатка делают их ненадёжными в реальных приложениях.

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

RAG решает все три проблемы, предоставляя модели справочник с реальными документами перед тем, как она отвечает. Сравните эти два способа работы. Без поиска:

Without RAG:
  User: "What's our refund policy?"
  LLM:  "I believe you offer a 14-day return..." (guessing)

И вместе с ним:

With RAG:
  User: "What's our refund policy?"
  → Step 1: Search internal docs → Finds: "Refunds within 30 days..."
  → Step 2: LLM reads the doc and answers accurately
  LLM:  "Your refund policy allows returns within 30 days..."

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

Шестнадцать шаблонов в четырёх уровнях

Разделение шаблонов по их практической значимости приводит к формированию четырёх уровней. Первый уровень охватывает то, что необходимо примерно 80% производственных систем, а более поздние уровни предназначены для решения специализированных задач.

Уровень 1: обязательно к знанию

1. Стандартный RAG — основа

Уровень сложности: начинающий. Идеален для тех, кто только начинает. Каждый проект RAG начинается с этого этапа, и процесс включает четыре стадии:

  1. Индексация: разделение документов на фрагменты, преобразование их в эмбеддинги и хранение в векторной базе данных.
  2. Поиск: преобразование запроса пользователя в эмбеддинг и поиск похожих фрагментов.
  3. Дополнение: включение найденных фрагментов в запрос к системе.
  4. Генерация: большая языковая модель отвечает на основе этого реального контекста.

Основной цикл занимает примерно десять строк:

# The core loop in ~10 lines
query_embedding = embed(user_query)
relevant_docs = vector_store.search(query_embedding, top_k=5)
context = "\n".join(relevant_docs)
prompt = f"Answer using this context:\n{context}\n\nQuestion: {user_query}"
answer = llm.generate(prompt)

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

2. Гибридный RAG — наибольшее улучшение качества

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

User: "React useState hook"
→ Semantic search finds: "state management in React components"
→ BM25 finds: docs with exact string "useState"
→ Hybrid (RRF fusion): gets the best of both

Метод слияния рангов взаимно (Reciprocal Rank Fusion, RRF) объединяет два списка с рангами без необходимости нормализации их оценок, что делает его элегантным и эффективным. Многие команды отмечают улучшение точности на 10–20 процентов уже благодаря этому методу. Он подходит для любых производственных систем, особенно для документации кода, технических руководств и юридических документов, где важны как точные формулировки, так и их значение.

3. Метод контекстуального поиска RAG, разработанный для диалога

Уровень сложности: средний. Используйте его, когда появляются дополнительные вопросы. Распространённая ошибка заключается в следующем: кто-то спрашивает о плане Premium, а затем о его стоимости. Стандартный метод RAG ищет что-то вроде «it cost» и не находит ничего полезного. В этой версии запрос переписывается с учётом истории разговора перед поиском.

User turn 1: "Tell me about the Premium plan"
User turn 2: "How much does it cost?"
Before search, rewrite → "How much does the Premium plan cost?"
Now retrieve → finds the pricing document ✓

Этот шаг переписывания, часто называемый контекстуализацией запроса, крайне важен в любом чат-боте с несколькими раундами общения, поскольку диалог разрушается в тот момент, когда кто-то использует местоимение. Если пользователи могут задавать дополнительные вопросы, это становится обязательным.

Уровень 2: конкурентное преимущество

4. Agentic RAG — горячая тенденция 2025 и 2026 годов

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

User: "What was NVDA's stock return last quarter vs its historical average?"
Agentic RAG decides:
  → Use web_search tool for current stock data
  → Use calculator tool for return calculation
  → Use document_retrieval tool for historical reports
  → Synthesize all three into one answer

Агент следует шаблону ReAct, сочетающему рассуждения и действия: он определяет, что нужно сделать, выполняет действие, наблюдает за результатом и снова рассуждает. Это соответствует процессу планирования и поиска в циклической форме. Такой подход подходит для финансовых ассистентов, инструментов для исследований и инструментов для разработчиков, где задействовано несколько источников данных или актуальная информация.

5. Self-RAG — когда ошибки недопустимы

Уровень сложности: продвинутый. Идеален там, где точность имеет решающее значение. Контроль качества встроен непосредственно в процесс обработки, и система не отвечает слепо после поиска. Она проходит через четыре этапа проверки. На первом этапе определяется, действительно ли необходим поиск для данного запроса. На втором — проверяется, действительно ли полученный документ релевантен. На третьем — убеждается, что ответ соответствует найденным фактам, а на четвертом — оценивается польза ответа. Если система не проходит какой-либо из этапов, она повторяет поиск, корректирует результат или отказывается отвечать. Медицинские системы, юридические ИИ и финансовые консультанты — это естественные сферы применения, где ложный ответ может причинить реальный вред.

6. HyDE RAG — мост между словарным запасом и данными

Уровень сложности: продвинутый. Оптимально используется, когда речь пользователей отличается от языка документов. HyDE — это аббревиатура от Hypothetical Document Embeddings. Представьте, что пользователь спрашивает, почему предметы падают, в то время как в документах говорится о ускорении свободного падения 9,81 м/с². У этих источников практически нет общего словарного запаса, поэтому поиск с использованием эмбеддингов, скорее всего, не даст результата. Секрет HyDE заключается в том, что сначала генерируется фиктивный ответ, а затем проводится поиск с его помощью.

User: "Why do things fall down?"
→ LLM generates hypothesis: "Objects fall due to gravitational force..."
→ Search with the hypothesis (technical vocabulary)
→ Find the actual document about gravitational acceleration
→ Answer using the real document

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

Уровень 3: специалисты с высоким влиянием

7. Graph RAG — для реляционного рассуждения

Уровень сложности: средний. Оптимально при необходимости ответить на вопрос о связи между X и Y. Векторный поиск находит похожие документы, но не может ответить на вопросы вроде «Какие компании связаны с определенным человеком через по меньшей мере двух членов совета директоров?», что требует обработки графа. Graph RAG создает знаниевой граф из документов, где сущности выступают в качестве узлов, а связи — рёбер, а запросы проходят по этому графу.

Text: "Dr. Chen collaborated with Dr. Patel on a 2022 study funded by NIH."
Graph nodes: Dr. Chen, Dr. Patel, 2022 study, NIH
Graph edges: COLLABORATED_WITH, FUNDED_BYQuery: "Who funded Dr. Chen's work?" → traverse: Chen → study → NIH

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

8. RAG с усилением памяти — бот, который помнит вас

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

user_profile = memory.get_user_facts(user_id)
recent_context = memory.get_recent_conversations(user_id, k=3)
answer = rag_with_context(query, user_profile, recent_context)
memory.update(user_id, query, answer)

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

9. Модульный RAG: возможность замены любой части без переписывания кода

Уровень сложности: средний. Отлично подходит, когда необходимо быстро вносить изменения. Это архитектурная философия, при которой каждый компонент конвейера может заменяться независимо. Переход с FAISS на ChromaDB требует всего одной строки кода, а тестирование алгоритма BM25 по сравнению с другими методами поиска без изменения структуры кода не требуется.

Standard RAG:   [fixed retriever] → [fixed reranker] → [fixed LLM]
Modular RAG:    [pluggable retriever] → [pluggable reranker] → [pluggable LLM]
                     ↑ swap anytime         ↑ swap anytime        ↑ swap anytime

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

10. RAG, адаптированный под конкретную отрасль

Уровень сложности: продвинутый. Подходит для медицины, права или финансов. Аббревиатура MI означает инфаркт миокарда для кардиолога, однако чат-бот без специализированных знаний воспринимает её как название штата Мичиган. Обычные решения на основе RAG не справляются с специализированными областями, и это не из-за ошибок при поиске информации. Система просто не понимает специальную терминологию, нормативные требования или ограничения безопасности. Для улучшения результата необходимы три элемента: словарь специальной терминологии с собственными терминами, аббревиатурами и синонимами данной области; правила соответствия, такие как обязательное добавление оговорок и указание источников при каждом ответе; а также механизмы безопасности, например отказ от предложений конкретных дозировок и направление пользователя к профессионалу. Типичными областями применения являются поддержка клинических решений, юридические исследования, финансовый анализ и мониторинг соблюдения нормативов.

11. Усовершенствованный RAG: три источника и один ответ

Уровень сложности: продвинутый. Идеально подходит, когда необходимы одновременно структурированные и неструктурированные данные. Один запрос объединяет SQL или другие структурированные базы данных для получения точных чисел, графы знаний для отображения связей и эмбеддинги документов для понимания контекста повествования.

Query: "Tell me about the Mars Exploration Program"
→ SQL: "Mars: 1.52 AU from sun, 687-day orbit"
→ Graph: Mars → explored_by → Curiosity Rover, Perseverance
→ Text: "Mars is the fourth planet... known as the Red Planet..."→ Fused Answer: Combines all three for comprehensive, expert-level response

Инструменты научных исследований, платформы финансового анализа и корпоративные базы знаний с смешанными типами данных получают от этого преимущества.

12. Рекурсивный или многократный RAG для сложных вопросов

Уровень сложности: продвинутый. Выбирайте его, когда одного поиска недостаточно для ответа на вопрос. Некоторые вопросы требуют последовательности знаний. Чтобы понять, как изобретение транзистора привело к современным ИИ, необходимо учитывать как минимум пять этапов: транзистор, интегральная схема, CPU, GPU, глубокое обучение, LLM. Рекурсивный RAG выполняет поиск, обучение и снова выполняет поиск.

Round 1: Retrieve about transistors → learn about miniaturization
Round 2: Retrieve about integrated circuits → learn about computing power
Round 3: Retrieve about GPUs → learn about parallel processing
Round 4: Retrieve about deep learning → learn about compute requirements
Round 5: Synthesize the full chain into a coherent answer

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

Уровень 4: специализированные случаи применения

13. ODQA RAG — ответы на любые вопросы

Уровень сложности: средний. Оптимально подходит, когда база знаний огромна и не имеет четких границ. Ответы на вопросы из открытых доменов представляют собой применение технологии RAG в масштабах, охватывающих науку, историю, географию и культуру. Проблема заключается не в качестве поиска информации, а в управлении объемом данных и определении момента, когда ответ отсутствует. ODQA включает функцию оценки уверенности, поэтому при отсутствии подходящего ответа в найденных документах система признает свою неуверенность и не выдумывает ответы. Его используют универсальные ассистенты, боты для ответов на вопросы из различных областей, исследовательские платформы и внутренние базы знаний между доменами.

14. Multi-Modal RAG — текст, изображения и аудио вместе

Уровень сложности: продвинутый. Оптимально, когда база знаний включает изображения, диаграммы или аудиоматериалы. Большинство систем RAG обрабатывают только текст, однако реальные знания также представлены в виде анатомических схем, фотографий продуктов, записей и диаграмм. Мультимодальная система создаёт одно пространство вкладок, общее для всех модалитетов, благодаря чему текстовый запрос может найти изображение, а запрос на изображение — документ.

User (text): "Show me the anatomy of the heart"
→ Retrieves both: text descriptions AND anatomical diagrams
→ Response includes both text explanation and relevant image

Медицинское образование, каталоги продуктов, платформы электронного обучения и архивы медиа — отличные примеры применения.

15. Стриминговый RAG, знания в реальном времени

Уровень сложности: средний. Оптимально для ситуаций, когда информация меняется каждые несколько минут. Вопрос, заданный в 9 утра, и снова в 11 утра требует разных ответов, если данные, лежащие в его основе, изменились. Стриминговый RAG поддерживает постоянно обновляемую базу знаний, индексируя новые документы по мере их поступления.

Time 9:00 AM: "What's happening with NVDA?"
→ Retrieves this morning's earnings report
Time 11:30 AM (after news breaks): "What's happening with NVDA?"
→ Retrieves the breaking news from 11:15 AM

Ассистенты по финансовым новостям, боты для онлайн-поддержки, системы мониторинга мероприятий и панели управления операциями опираются на него.

16. Федеративный RAG, приватность превыше всего и множественные источники

Уровень сложности: продвинутый. Оптимально, когда данные не могут покидать свой источник. Этот подход решает основное противоречие в корпоративном ИИ: несколько владельцев данных хотят использовать общую систему, но никто не желает делиться сырыми данными. Типичным примером являются больницы, вносящие вклад в разработку медицинских ассистентов, поскольку медицинские записи нельзя централизовать. Каждый источник использует собственный локальный механизм поиска; запросы направляются ко всем источникам одновременно, и в центральную систему поступают только извлеченные фрагменты, а не сырые данные.

Central Query: "What's the survival rate for treatment X?"
→ Hospital A retriever: returns relevant anonymized snippets
→ Hospital B retriever: returns relevant anonymized snippets
→ Hospital C retriever: returns relevant anonymized snippets
→ Central LLM synthesizes — never saw raw patient recordsResult: HIPAA/GDPR compliant, collaborative AI

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

Порядок внедрения по месяцам

Не все шестнадцать компонентов необходимы с самого начала. Большинство производственных систем развиваются постепенно.

Month 1:  Standard RAG           ← Get something working
Month 2:  + Hybrid RAG            ← Biggest retrieval quality win
Month 3:  + Contextual Retrieval  ← Multi-turn conversations work now
Month 4:  + Self-RAG              ← Stop hallucinations
Month 5:  + Agentic capabilities  ← Tools beyond just search
This covers 80-90% of production RAG needs.

Сочетание шаблонов

Системы производства почти всегда используют несколько шаблонов. Несколько примеров:

  • Корпоративный чат-бот сочетает стандартные, гибридные, контекстуальные и модели на основе памяти для многократных диалогов, эффективного поиска информации и персонализации.
  • Медицинский ассистент использует специализированные, самостоятельные и усиленные модели, поскольку важна точность и задействованы структурированные данные.
  • Инструмент для исследований сочетает агентные, гибридные и рекурсивные модели для решения сложных задач, выполнения нескольких шагов и использования различных инструментов.
  • Служба поддержки клиентов применяет стандартные, контекстуальные и потоковые модели для последующих действий и реального времени обновлений.
  • Для юридических исследований используются специализированные, графовые и гибридные модели для анализа связей между сущностями и точного цитирования.
  • Анализатор новостей сочетает потоковые, ODQA-модели и мультимодальные подходы для обработки данных в реальном времени, охвата широкого спектра тем и анализа изображений.

Быстрый выбор

Для первого бота по ответам на вопросы, работающего с документами, начните с Standard RAG. Для улучшения поиска в производственных условиях добавьте Hybrid. Для многократных диалогов требуется Contextual Retrieval, а боту, вызывающему инструменты или API, необходим вариант agentic. Высокоточная работа в медицине или праве подразумевает использование Self-RAG, а обычные пользователи, работающие с технической документацией, — HyDE. Для вопросов, связанных с отношениями между данными, подходит Graph RAG; для персонализированного ассистента — Memory-Augmented; для экспериментов с разными компонентами — Modular; а для регулируемых сфер — Domain-Specific. Смешанные структурированные и неструктурированные данные подходят для Enhanced RAG, вопросы с несколькими этапами обработки — для Recursive RAG, а универсальные системы вопросов и ответов — для ODQA. Для изображений и аудио требуется Multi-Modal, для реальных данных — Streaming, а для многоорганизационных сетей в рамках HIPAA или GDPR — Federated.

Запуск примеров

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

# Clone the repo
git clone https://github.com/Manjunadh86/RAG-Materials.git
cd RAG-Materials
# Install dependencies
pip install -r requirements.txt# Set your OpenAI API key
export OPENAI_API_KEY="sk-your-key-here"# Run your first RAG system
cd 01-Standard-RAG
python hands_on.py

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

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