Сравнение 16 архитектур RAG: какой паттерн подходит к какой проблеме
Обзор шестнадцати шаблонов RAG в четырех категориях: от стандартных и гибридных методов поиска до агентных, графовых и федеративных решений, с пошаговым планом разработки по месяцам.
Источники: 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 начинается с этого этапа, и процесс включает четыре стадии:
- Индексация: разделение документов на фрагменты, преобразование их в эмбеддинги и хранение в векторной базе данных.
- Поиск: преобразование запроса пользователя в эмбеддинг и поиск похожих фрагментов.
- Дополнение: включение найденных фрагментов в запрос к системе.
- Генерация: большая языковая модель отвечает на основе этого реального контекста.
Основной цикл занимает примерно десять строк:
# 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 — это его создание.