Руководство по генерации с расширенным поиском (RAG): архитектура, реализация и внедрение в производство

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

Содержимое страницы

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

Если вы ищете информацию о том:

  • Как построить систему RAG
  • Об архитектуре RAG
  • Руководстве по RAG с примерами
  • Как реализовать RAG с использованием векторных баз данных
  • RAG с переупорядочиванием (reranking)
  • RAG с веб-поиском
  • Лучших практиках RAG для продакшн-среды

Вы попали по адресу.

Это руководство объединяет практические знания о реализации RAG, архитектурные паттерны и методы оптимизации, используемые в системах искусственного интеллекта на продакшн-среде.

Если у вас также есть коллекция заметок, созданных людьми, статья Второй мозг: объяснение для инженеров разъясняет, что сохраняет курируемая система персонального управления знаниями (PKM) — суждение, развивающийся контекст, — в дополнение к тому, что дополняет извлечение во время запроса.

Ноутбук разработчика с горячей чашкой кофе у окна


Карта кластера RAG (Читайте в этом порядке)

Если вы хотите пройти путь по кластеру RAG максимально быстро, используйте эту карту:

  1. Вы здесь: Обзор RAG + сквозной конвейер (эта страница)
  2. Разбиение на чанки (основа качества извлечения): Стратегии разбиения на чанки в RAG
  3. Текстовые эмбеддинги (API и Python): Текстовые эмбеддинги для RAG и поиска — конечные точки эмбеддингов Ollama и совместимые с OpenAI, форма извлечения, ссылки далее
  4. Векторные хранилища (выбор хранения и индексации): Сравнение векторных хранилищ для RAG
  5. Глубина извлечения (когда «поиск» недостаточен): Поиск vs DeepSearch vs Deep Research
  6. Переупорядочивание (часто дает наибольший прирост качества): Переупорядочивание с моделями эмбеддингов
  7. Модели эмбеддингов и переупорядочивания (практические реализации):
  8. Расширенные архитектуры: Расширенные варианты RAG: LongRAG, Self-RAG, GraphRAG
  9. Извлечение по графам и векторам (GraphRAG в графовой базе данных): Графовая база данных Neo4j для GraphRAG, установка, Cypher, векторы, операции — графы свойств, векторные индексы и neo4j-graphrag в одном месте

Что такое генерация с дополнением на основе извлечения (RAG)?

Генерация с дополнением на основе извлечения (Retrieval-Augmented Generation, RAG) — это паттерн проектирования систем, который объединяет:

  1. Извлечение информации
  2. Дополнение контекста
  3. Генерацию с помощью больших языковых моделей

Простыми словами, конвейер RAG извлекает релевантные документы и внедряет их в промпт перед тем, как модель сгенерирует ответ.

В отличие от тонкой настройки (fine-tuning), RAG:

  • Работает с часто обновляемыми данными
  • Поддерживает частные базы знаний
  • Снижает вероятность галлюцинаций
  • Избегает повторного обучения больших моделей
  • Улучшает обоснованность ответов

Современные системы RAG включают больше, чем просто векторный поиск. Полная реализация RAG может включать:

  • Переписывание запросов
  • Гибридный поиск (BM25 + векторный поиск)
  • Переупорядочивание с помощью кросс-энкодеров
  • Многоэтапное извлечение
  • Интеграцию с веб-поиском
  • Оценку и мониторинг

Минимальный чертеж продакшн-системы RAG (Референсная реализация)

Используйте это как ментальную модель (и стартовый каркас) для продакшн-систем RAG.

Конвейер инжестирования (офлайн или непрерывный)

  1. Сбор источников (документы, тикеты, веб-страницы, PDF, код)
  2. Нормализация (извлечение текста, очистка от шаблонов, удаление дубликатов)
  3. Разбиение на чанки (выбор стратегии, перекрытия и метаданных)
  4. Эмбеддинг (версионированные эмбеддинги)
  5. Вставка или обновление в индекс (векторное хранилище + поля метаданных)
  6. Стратегия переиндексации, когда меняются эмбеддинги или разбиение на чанки

Конвейер запросов (онлайн)

  1. Парсинг / переписывание запроса (опционально)
  2. Извлечение кандидатов (векторный или гибридный поиск + фильтрация по метаданным)
  3. Переупорядочивание топ-K с помощью кросс-энкодера / модели переупорядочивания
  4. Формирование контекста (удаление дубликатов, упорядочивание по релевантности, добавление цитат)
  5. Генерация с помощью промпта с заземлением (правила + поведение отказа)
  6. Логирование (набор извлеченных данных, переупорядоченный набор, финальный контекст, задержка, стоимость)
  7. Оценка (онлайн/офлайн стенд)

Если вы улучшаете только одну вещь в работающей системе RAG: добавьте переупорядочивание и стенд для оценки.


Пошаговое руководство по RAG: Как построить систему RAG

Этот раздел описывает практический поток RAG для разработчиков.

Поток RAG

Шаг 1: Подготовка и разбиение данных на чанки

Качество извлечения сильно зависит от стратегии разбиения на чанки и дизайна индекса: хороший RAG начинается с правильного разбиения на чанки.

Разбиение на чанки определяет:

  • Полноту извлечения (recall)
  • Задержку
  • Шум в контексте
  • Стоимость токенов
  • Риск галлюцинаций

Распространенные стратегии разбиения на чанки в RAG включают:

  • Разбиение на фиксированные блоки
  • Разбиение со скользящим окном
  • Семантическое разбиение
  • Рекурсивное разбиение
  • Иерархическое разбиение
  • Разбиение с учетом метаданных

Плохое разбиение на чанки — одна из самых распространенных причин низкого качества систем RAG.

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

Стратегии разбиения на чанки в RAG: Альтернативы, компромиссы и примеры

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

  • Систем вопросов и ответов
  • Конвейеров суммаризации
  • Поиска кода
  • Мультимодальных документов
  • Потокового инжестирования
  • Мультимодальных документов с кросс-модальными эмбеддингами

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

Для мультимодальных систем RAG, объединяющих текст, изображения и другие модальности, изучите Кросс-модальные эмбеддинги: объединение модальностей ИИ


Шаг 2: Выберите векторную базу данных для RAG

Векторная база данных хранит эмбеддинги для быстрого поиска сходства.

Сравните векторные базы данных здесь:

Векторные хранилища для RAG - Сравнение

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

  • Тип индекса (HNSW, IVF и т.д.)
  • Поддержку фильтрации
  • Модель развертывания (облачная или собственная)
  • Задержку запросов
  • Горизонтальную масштабируемость
  • Требования к многопользовательности и контролю доступа

Шаг 3: Реализуйте извлечение (Векторный поиск или Гибридный поиск)

Базовое извлечение в RAG использует сходство эмбеддингов.

Продвинутое извлечение в RAG использует:

  • Гибридный поиск (векторный + ключевые слова)
  • Фильтрацию по метаданным
  • Извлечение из нескольких индексов
  • Переписывание запросов

Для концептуального обоснования:

Поиск vs DeepSearch vs Deep Research

Понимание глубины извлечения необходимо для высококачественных конвейеров RAG.

В полном стеке ассистентов этот шаг извлечения — лишь один слой памяти. Рабочий контекст, долговременное структурированное состояние и политика консолидации по-прежнему требуют явного проектирования — это разделение описано в Системы памяти в ИИ-ассистентах для OpenClaw, Hermes и паттернов SDK провайдеров.


Шаг 4: Добавьте переупорядочивание в ваш конвейер RAG

Переупорядочивание часто дает наибольший прирост качества в реализации RAG.

Переупорядочивание улучшает:

  • Точность
  • Релевантность контекста
  • Верность фактам
  • Соотношение сигнал/шум

Изучите техники переупорядочивания:

В продакшн-системах RAG переупорядочивание часто важнее, чем переход к более крупной модели.


Шаг 5: Интегрируйте веб-поиск (Опционально, но мощно)

RAG с дополнением веб-поиска позволяет динамически извлекать знания.

Веб-поиск полезен для:

  • Данных в реальном времени
  • ИИ-ассистентов, учитывающих новости
  • Конкурентной разведки
  • Ответов на вопросы в открытой предметной области

См. практические реализации:


Шаг 6: Постройте фреймворк оценки RAG

Серьезное руководство по RAG должно включать оценку. Без нее оптимизация системы RAG превращается в гадание.

Что измерять

Слой Что измерять Почему это важно
Инжестирование охват чанков, уровень дублирования, версия эмбеддингов предотвращает скрытое смещение
Извлечение recall@k, precision@k, MRR/NDCG показывает, извлекаете ли вы правильные доказательства
Переупорядочивание дельта в precision@k по сравнению с базовой линией подтверждает окупаемость переупорядочивателя
Генерация верность/заземленность, точность цитирования, качество отказа снижает галлюцинации
Система задержка p50/p95, стоимость на запрос, частота попадания в кэш обеспечивает пригодность к продакшну

Минимальный стенд оценки (практический чек-лист)

  • Создайте тестовый набор запросов (реальные пользовательские запросы, если возможно)
  • Для каждого запроса сохраните:
    • ожидаемый ответ или ожидаемые источники
    • разрешенные источники (золотые документы), если они доступны
  • Запустите офлайн-батч:
    1. извлечь кандидатов
    2. переупорядочить
    3. сгенерировать
    4. оценить (извлечение + генерация)
  • Отслеживайте метрики с течением времени и проталкивайте сборку при регрессиях (даже малых)

Начните просто: 50–200 запросов достаточно, чтобы обнаружить серьезные регрессии.


Расширенные архитектуры RAG

После того как вы поймете базовый RAG, изучите расширенные паттерны:

Расширенные варианты RAG: LongRAG, Self-RAG, GraphRAG

Расширенные архитектуры генерации с дополнением на основе извлечения позволяют:

  • Многошаговому рассуждению
  • Извлечению на основе графов
  • Самокорректирующимся циклам
  • Интеграции структурированных знаний

Для GraphRAG и извлечения по графам знаний, где вы комбинируете обход графа с векторным сходством в одной системе, см. Графовая база данных Neo4j для GraphRAG, установка, Cypher, векторы, операции (установка, Cypher, векторные индексы, гибридный поиск и пакет Python neo4j-graphrag).

Эти архитектуры необходимы для корпоративных систем искусственного интеллекта.


Когда RAG fails (И как это исправить)

Большинство сбоев RAG можно диагностировать, если смотреть на конвейер послойно.

  • Возвращает нерелевантный контекст → улучшите разбиение на чанки, добавьте фильтры метаданных, реализуйте гибридный поиск, настройте K.
  • Извлекает правильные документы, но отвечает неправильно → добавьте переупорядочивание, уменьшите шум контекста, улучшите правила заземления промпта.
  • Галлюцинирует, несмотря на хорошие документы → требуйте цитирования, добавьте поведение отказа, добавьте оценку верности, уменьшите «креативную» температуру.
  • Медленный/дорогой → кэшируйте извлечение + эмбеддинги, уменьшите K для переупорядочивания, ограничьте контекст, батчируйте эмбеддинги, настройте параметры индекса ANN.
  • Утечка данных между арендаторами → реализуйте фильтрацию ACL на этапе извлечения (не только в промпте), разделите индексы или используйте партиции для каждого арендатора.

Частые ошибки реализации RAG

Частые ошибки в руководствах по RAG для начинающих включают:

  • Использование чрезмерно крупных чанков документов
  • Пропуск этапа переупорядочивания
  • Перегрузка окна контекста
  • Отсутствие фильтрации метаданных
  • Отсутствие стенда для оценки

Исправление этих ошибок dramatically improves RAG system performance.


RAG против тонкой настройки

Во многих руководствах RAG и тонкая настройка путаются. Используйте это руководство по принятию решений:

Вам следует предпочесть… Когда…
RAG знания часто меняются; вам нужны цитаты/аудитируемость; у вас есть частные документы; вы хотите быстрые обновления без переобучения
Тонкую настройку вам нужен последовательный тон/поведение; вы хотите, чтобы модель следовала стилю предметной области; ваши знания относительно статичны
Оба вам нужно поведение предметной области и свежие/частные знания (часто встречается в продакшне)

Используйте RAG для:

  • Извлечения внешних знаний
  • Часто обновляемых данных
  • Снижения операционных рисков

Используйте тонкую настройку для:

  • Контроля поведения
  • Последовательности тона/стиля
  • Адаптации к предметной области при статичных данных

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


Лучшие практики RAG для продакшна

Если вы переходите от руководства по RAG к продакшну:

Извлечение + качество

  • Используйте гибридное извлечение
  • Добавьте переупорядочивание
  • Используйте фильтрацию метаданных и удаление дубликатов
  • Непрерывно отслеживайте метрики извлечения (recall@k / precision@k)

Стоимость + задержка (не пропускайте это)

  • Кэширование:
    • Кэш эмбеддингов (одинаковый текст → одинаковый эмбеддинг)
    • Кэш извлечения (популярные запросы)
    • Кэш ответов (для детерминированных рабочих процессов)
  • Настраивайте параметры индекса ANN (HNSW/IVF) и батч-операции
  • Контролируйте использование токенов: меньший контекст, меньше кандидатов, структурированные промпты

Безопасность + конфиденциальность

  • Осуществляйте контроль доступа на этапе извлечения (фильтры ACL / партиции для каждого арендатора)
  • Анонимизируйте или избегайте индексации PII, где это возможно
  • Безопасное логирование (избегайте хранения сырых чувствительных промптов, если это не требуется)

Операционная дисциплина

  • Версионируйте ваши эмбеддинги и стратегию разбиения на чанки
  • Автоматизируйте конвейеры инжестирования
  • Мониторьте метрики галлюцинаций/верности
  • Отслеживайте стоимость на запрос

Генерация с дополнением на основе извлечения — это не просто концепция для руководства, это дисциплина архитектуры продакшн-систем.

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


Финальные мысли

Это руководство по RAG охватывает как базовую реализацию, так и продвинутый системный дизайн.

Генерация с дополнением на основе извлечения — это основа современных приложений искусственного интеллекта.

Владение архитектурой RAG, переупорядочиванием, векторными базами данных, гибридным поиском и оценкой определит, останется ли ваша система ИИ демо-версией или станет готовой к продакшну.

Эта тема будет продолжать расширяться по мере развития систем RAG.

Подписаться

Получайте новые материалы про системы, инфраструктуру и AI engineering.