Руководство по RAG (Retrieval-Augmented Generation): архитектура, реализация и развертывание в продакшене
От базового RAG до продакшена: чанкинг, векторный поиск, реранкинг и оценка — всё в одном руководстве.
Этот Туториал по генерации с дополнением извлечения (RAG) представляет собой пошаговое руководство, ориентированное на внедрение в производство, для создания реальных систем RAG.
Если вы ищете:
- Как построить систему RAG
- Объяснение архитектуры RAG
- RAG туториал с примерами
- Как реализовать RAG с помощью векторных баз данных
- RAG с переобучением (reranking)
- RAG с веб-поиском
- Лучшие практики RAG для продакшена
Вы по адресу.
Это руководство объединяет практические знания о реализации RAG, архитектурные паттерны и техники оптимизации, используемые в продакшн-системах искусственного интеллекта.

Карта кластера RAG (Читайте в этом порядке)
Если вы хотите пройти по кластеру RAG самым быстрым путем, используйте эту карту:
- Вы здесь: Обзор RAG + сквозной конвейер (эта страница)
- Чанкинг (основа качества извлечения): Стратегии чанкинга в RAG
- Векторные хранилища (выбор хранилища и индексации): Сравнение векторных хранилищ для RAG
- Глубина извлечения (когда “поиск” недостаточно): Поиск vs DeepSearch vs Deep Research
- Переобучение (часто дает наибольший прирост качества): Переобучение с использованием моделей эмбеддингов
- Модели эмбеддингов и переобучения (практическая реализация):
- Продвинутые архитектуры: Продвинутые варианты RAG: LongRAG, Self-RAG, GraphRAG
Что такое генерация с дополнением извлечения (RAG)?
Генерация с дополнением извлечения (RAG) — это паттерн проектирования систем, который объединяет:
- Извлечение информации
- Дополнение контекста
- Генерацию большой языковой моделью
Простыми словами, конвейер RAG извлекает релевантные документы и вставляет их в промпт перед тем, как модель генерирует ответ.
В отличие от дообучения (fine-tuning), RAG:
- Работает с часто обновляемыми данными
- Поддерживает частные базы знаний
- Снижает галлюцинации
- Избегает необходимости переобучать большие модели
- Улучшает обоснованность ответов
Современные системы RAG включают больше, чем просто векторный поиск. Полноценная реализация RAG может включать:
- Переписывание запросов
- Гибридный поиск (BM25 + векторный поиск)
- Переобучение с помощью кросс-энкодера
- Мультиэтапное извлечение
- Интеграцию веб-поиска
- Оценку и мониторинг
Минимальный план RAG для продакшена (Референсная реализация)
Используйте это как ментальную модель (и начальный скелет) для продакшн-системы RAG.
Конвейер загрузки (оффлайн или непрерывный)
- Сбор источников (документы, тикеты, веб-страницы, PDF, код)
- Нормализация (извлечение текста, очистка шаблонного текста, удаление дубликатов)
- Чанкинг (выбор стратегии + перекрытие + метаданные)
- Эмбеддинг (версионированные эмбеддинги)
- Вставка/обновление (Upsert) в индекс (векторное хранилище + поля метаданных)
- Стратегия переиндексации при изменении эмбеддингов или чанкинга
Конвейер запросов (онлайн)
- Парсинг / переписывание запроса (опционально)
- Извлечение кандидатов (векторный или гибридный поиск + фильтрация по метаданным)
- Переобучение (Rerank) топ-K с помощью кросс-энкодера / модели переобучения
- Сборка контекста (удаление дубликатов, сортировка по релевантности, добавление цитирований)
- Генерация с обоснованным промптом (правила + поведение отказа)
- Логирование (набор извлеченных документов, переобученный набор, финальный контекст, задержка, стоимость)
- Оценка (онлайн/оффлайн тестовая установка)
Если вы улучшаете только одну вещь в работающей системе RAG: добавьте переобучение и тестовую установку для оценки.
Пошаговый туториал RAG: Как построить систему RAG
Этот раздел описывает практический поток туториала RAG для разработчиков.

Шаг 1: Подготовьте и разбейте данные на чанки
Качество извлечения сильно зависит от стратегии чанкинга и дизайна индексации: хороший RAG начинается с правильного чанкинга.
Чанкинг определяет:
- Полноту извлечения (Recall)
- Задержку (Latency)
- Шум контекста
- Стоимость токенов
- Риск галлюцинаций
Распространенные стратегии чанкинга в RAG включают:
- Чанкинг фиксированного размера
- Чанкинг скользящим окном
- Семантический чанкинг
- Рекурсивный чанкинг
- Иерархический чанкинг
- Чанкинг с учетом метаданных
Плохой чанкинг является одной из самых распространенных причин низкой производительности систем RAG.
Для глубокого инженерного разбора компромиссов чанкинга, измерений оценки, матриц принятия решений и исполняемых реализаций на Python, см.:
Стратегии чанкинга в RAG: альтернативы, компромиссы и примеры
Это руководство охватывает практические значения по умолчанию для:
- Систем QA
- Конвейеров суммаризации
- Поиска кода
- Мульти-модальных документов
- Потоковой загрузки
- Мульти-модальных документов с кросс-модальными эмбеддингами
Если вы серьезно настроены на производительность RAG, прочитайте это перед настройкой эмбеддингов или переобучения.
Для мульти-модальных систем RAG, объединяющих текст, изображения и другие модальности, изучите Кросс-модальные эмбеддинги: объединение модальностей ИИ
Шаг 2: Выберите векторную базу данных для RAG
Векторная база данных хранит эмбеддинги для быстрого поиска по сходству.
Сравните векторные базы данных здесь:
Векторные хранилища для RAG - Сравнение
При выборе векторной базы данных для туториала RAG или продакшн-системы, учитывайте:
- Тип индекса (HNSW, IVF и т.д.)
- Поддержку фильтрации
- Модель развертывания (облако vs самообслуживание)
- Задержку запросов
- Горизонтальную масштабируемость
- Требования к многопользовательству и контролю доступа
Шаг 3: Реализуйте извлечение (Векторный поиск или Гибридный поиск)
Базовое извлечение RAG использует сходство эмбеддингов.
Продвинутое извлечение RAG использует:
- Гибридный поиск (векторный + ключевые слова)
- Фильтрацию по метаданным
- Извлечение из нескольких индексов
- Переписывание запросов
Для концептуального понимания:
Поиск vs DeepSearch vs Deep Research
Понимание глубины извлечения необходимо для высококачественных конвейеров RAG.
Шаг 4: Добавьте переобучение (Reranking) в ваш конвейер RAG
Переобучение часто дает наибольший прирост качества в реализации RAG.
Переобучение улучшает:
- Точность (Precision)
- Релевантность контекста
- Правдивость (Faithfulness)
- Соотношение сигнал/шум
Изучите техники переобучения:
- Переобучение с использованием моделей эмбеддингов
- Qwen3 Embedding + Qwen3 Reranker на Ollama
- Переобучение с Ollama + Qwen3 Embedding (Go)
- Переобучение с Ollama + Qwen3 Reranker на Go
В продакшн-системах RAG переобучение часто важнее, чем переход на более крупную модель.
Шаг 5: Интегрируйте веб-поиск (Опционально, но мощно)
RAG с дополнением из веб-поиска позволяет динамически извлекать знания.
Веб-поиск полезен для:
- Данных в реальном времени
- Новостных ИИ-ассистентов
- Конкурентной разведки
- Ответов на вопросы в открытой доменной области
См. практические реализации:
Шаг 6: Постройте фреймворк оценки RAG
Серьезный туториал RAG должен включать оценку. Без нее оптимизация системы RAG превращается в гадание.
Что измерять
| Слой | Что измерять | Почему это важно |
|---|---|---|
| Загрузка | Покрытие чанков, частота дубликатов, версия эмбеддинга | предотвращает скрытый дрейф |
| Извлечение | recall@k, precision@k, MRR/NDCG | показывает, получаете ли вы нужные доказательства |
| Переобучение | Дельта precision@k по сравнению с базовой линией | валидирует ROI переобучения |
| Генерация | Правдивость/обоснованность, точность цитирования, качество отказа | снижает галлюцинации |
| Система | Задержка p50/p95, стоимость запроса, частота попадания в кэш | сохраняет работоспособность в продакшене |
Минимальная тестовая установка (практический чек-лист)
- Постройте тестовый набор запросов (реальные запросы пользователей, если возможно)
- Для каждого запроса сохраните:
- ожидаемый ответ или ожидаемые источники
- разрешенные источники (золотые документы), когда они доступны
- Запустите оффлайн пакет:
- извлечь кандидатов
- переобучить
- сгенерировать
- оценить (извлечение + генерация)
- Отслеживайте метрики со временем и отклоняйте сборку при регрессиях (даже малых)
Начните просто: 50–200 запросов достаточно для обнаружения серьезных регрессий.
Продвинутые архитектуры RAG
После того как вы поймете базовый RAG, изучите продвинутые паттерны:
Продвинутые варианты RAG: LongRAG, Self-RAG, GraphRAG
Продвинутые архитектуры генерации с дополнением извлечения позволяют:
- Мультихоповое рассуждение
- Извлечение на основе графов
- Самокорректирующиеся циклы
- Интеграцию структурированных знаний
Эти архитектуры необходимы для корпоративных систем ИИ.
Когда RAG проваливается (И как это исправить)
Большинство провалов RAG можно диагностировать, если посмотреть на конвейер слой за слоем.
- Он возвращает нерелевантный контекст → улучшите чанкинг, добавьте фильтры метаданных, реализуйте гибридный поиск, настройте K.
- Он извлекает правильные документы, но отвечает неправильно → добавьте переобучение, уменьшите шум контекста, улучшите правила обоснования промпта.
- Он галлюцинирует, несмотря на хорошие документы → enforce цитирование, добавьте поведение отказа, добавьте оценку правдивости, уменьшите температуру “творчества”.
- Он медленный/дорогой → кэшируйте извлечение + эмбеддинги, уменьшите K для переобучения, ограничьте контекст, пакетизируйте эмбеддинги, настройте параметры ANN-индекса.
- Он утекает данные между арендаторами (тенантами) → реализуйте фильтрацию ACL на время извлечения (не только в промпте), разделите индексы или используйте разделы по тенантам.
Распространенные ошибки реализации RAG
Распространенные ошибки в туториалах RAG для начинающих включают:
- Использование чрезмерно больших чанков документов
- Пропуск переобучения
- Перегрузка окна контекста
- Отсутствие фильтрации метаданных
- Отсутствие тестовой установки для оценки
Исправление этих ошибок dramatically улучшает производительность системы RAG.
RAG vs Дообучение (Fine-Tuning)
Во многих туториалах RAG и дообучение путают. Используйте это руководство по принятию решений:
| Вы должны предпочесть… | Когда… |
|---|---|
| RAG | знания часто меняются; вам нужны цитаты/аудит; у вас есть частные документы; вы хотите быстрых обновлений без переобучения |
| Дообучение | вам нужен последовательный тон/поведение; вы хотите, чтобы модель следовала стилю доменной области; ваши знания относительно статичны |
| Оба | вам нужно поведение доменной области и свежие/частные знания (часто в продакшене) |
Используйте RAG для:
- Извлечения внешних знаний
- Часто обновляемых данных
- Снижения операционных рисков
Используйте дообучение для:
- Контроля поведения
- Последовательности тона/стиля
- Адаптации к доменной области, когда данные статичны
Большинство продвинутых систем ИИ сочетают генерацию с дополнением извлечения с селективным дообучением.
Лучшие практики RAG для продакшена
Если вы переходите от туториала RAG к продакшену:
Извлечение + качество
- Используйте гибридное извлечение
- Добавьте переобучение
- Используйте фильтрацию метаданных и удаление дубликатов
- Непрерывно отслеживайте метрики извлечения (recall@k / precision@k)
Стоимость + задержка (не пропускайте это)
- Кэширование:
- Кэш эмбеддингов (идентичный текст → идентичный эмбеддинг)
- Кэш извлечения (популярные запросы)
- Кэш ответов (для детерминированных рабочих процессов)
- Настройте параметры ANN-индекса (HNSW/IVF) и пакетные операции
- Контролируйте использование токенов: меньший контекст, меньше кандидатов, структурированные промпты
Безопасность + конфиденциальность
- Осуществляйте контроль доступа на моменте извлечения (фильтры ACL / разделы по тенантам)
- Скрывайте или избегайте индексации PII, где это возможно
- Безопасно логгируйте (избегайте хранения сырых чувствительных промптов, если это не требуется)
Операционная дисциплина
- Версионируйте свои эмбеддинги и стратегию чанкинга
- Автоматизируйте конвейеры загрузки
- Мониторьте метрики галлюцинаций/правдивости
- Отслеживайте стоимость запроса
Генерация с дополнением извлечения — это не просто концепция туториала, это дисциплина архитектуры для продакшена.
Финальные мысли
Этот туториал RAG охватывает как базовую реализацию для начинающих, так и продвинутый дизайн систем.
Генерация с дополнением извлечения — это основа современных приложений ИИ.
Освоение архитектуры RAG, переобучения, векторных баз данных, гибридного поиска и оценки определит, останется ли ваша система ИИ демо-версией или станет готовой к продакшену.
Эта тема будет продолжать расширяться по мере развития систем RAG.