Этот хаб собран для команд, которые хотят внедрить Retrieval-Augmented Generation (RAG) — связку поиска знаний и генерации ответов моделью — в продакшен. Мы систематизируем архитектурные решения, метрики качества и стоимости, эксплуатационные процессы и риски. Базовые определения приведены на странице RAG; слой хранилищ и индексов см. в обзоре векторных БД, а представления текста — на странице эмбеддингов.
Зачем RAG продукту
- Проверяемость и доверие. Ответы с привязкой к источникам (ID/ссылки) прозрачнее и легче аудируются.
- Экономия контекста. Конденсация извлечённых фрагментов уменьшает длину подсказки и снижает «цену эпизода».
- Актуальность. Выносим знания за пределы модели — легче обновлять витрины данных, чем переобучать веса.
- Контроль рисков. Лицензии на данные, списки допустимых источников и политика PII управляются на уровне ретривера и витрин.
Базовые блоки RAG-контура
| Блок | Роль | Ключевые вопросы |
| Инжест | Приведение сырья к документам и метаданным | Очистка, лицензии, частота обновлений |
| Чанкинг | Разбиение на фрагменты с «якорями» | Размер/перекрытие, семантические границы |
| Представления | Преобразование в векторы и индексы | Версии эмбеддера, дрейф качества |
| Ретривер | Поиск кандидатов по запросу | Гибрид: лексика + векторы + фильтры |
| Реранкер | Пересортировка кандидатов | Скорость/качество, латентность |
| Конденсация | Сжатие контекста перед генерацией | Формат «док-карточек», дедупликация |
| Генерация | Сборка ответа с цитатами | Контракты вывода, лимиты длины |
| Логи/цитатность | ID источников и атрибуция | Политика ссылок, прозрачность |
Переизбыточная подача контента модели — главная причина роста стоимости и деградации устойчивости. Конденсация и строгие контракты вывода снижают ретраи и «длинный хвост».
Архитектурные паттерны RAG
| Паттерн | Когда уместен | Сигналы зрелости | Риски |
| «Наивный» одноэтапный | Небольшие коллекции, короткие ответы | Простота, низкий TTFT | Пропуски фактов, чувствителен к шуму |
| Гибридный поиск | Разношерстные данные/метаданные | Метрики recall/precision стабильны | Сложнее настройка фильтров |
| Многоступенчатый (retrieve→rerank→condense) | Длинные ответы/отчёты | Цитатность, экономия контекста | Рост латентности без кэшей |
| Иерархический | Иерархия документов/глав | Точность на «глубине» | Сложный инжест и обновления |
| «Граф знаний»/связности | Связанные сущности/факты | Лог связей в ответах | Стоимость поддержки графа |
| Агентский RAG (planner) | Композитные задачи/инструменты | Проверка шагов/ссылок | Взрыв шагов и цены эпизода |
Практика: начинайте с гибридного поиска, добавляйте реранкер и конденсацию, включайте иерархию и граф только при явной пользе.
Метрики качества и стоимости
| Метрика | Что показывает | Где управлять |
| Recall/Precision | Полнота/точность выдачи | Инжест, фильтры, гибридный поиск |
| NDCG/MRR | Релевантность ранжирования | Реранкер и метаданные |
| Цитатность | Долю ответов с валидными ссылками | Контракты вывода и политика ссылок |
| Контекст/ответ (токены) | Стоимость ввода/вывода | Конденсация, лимиты длины |
| TTFT / P95 | «Живость» и «длинный хвост» | Кэши, warm-пулы, профили очередей |
| Доля неформата | Нарушения схем вывода | Пред-валидация, ретраи по правилам |
| Цена эпизода | Полную себестоимость ответа | Все слои + отчёты «до/после» |
Минимальный дешборд: Recall/Precision, Цитатность, Токены контекста, TTFT, P95, Неформат, Цена эпизода.
Экономика контекста и «цена эпизода»
«Цена эпизода» = ввод (контекст) + префилл + генерация + инструменты (ретривер/классификаторы) + ретраи + пост-обработка. RAG влияет прежде всего на ввод и ретраи:
- Сократите токены за счёт конденсации и удаления дублей.
- Делайте жёсткие контракты вывода (JSON/таблицы, цитаты обязательны).
- Версионируйте эмбеддер и индекс, чтобы отслеживать дрейф качества.
Процессы инжеста и обновлений
- Data-manifest. Источники, лицензии, периодичность, запреты.
- ETL-чек. Очистка, нормализация, качество метаданных.
- Шедулинг обновлений. Полные пересборки vs инкрементальные.
- Тесты регрессий. Набор запросов и эталонных ответов с ссылками.
Практика конденсации
- Комбинируйте «сниппеты» в карточки с минимально достаточным контекстом.
- Удаляйте повторы и узкие цитаты, сохраняйте ID источников.
- Порог по токенам и эвристика «одна мысль — один фрагмент».
Наблюдаемость и релизы
- Трейсинг с trace_id: запрос, версионирование эмбеддера/индекса, длины контекста, TTFT, P95.
- Карточка релиза: что поменяли, «до/после», пороги отката.
- Канарейка: 5–10% трафика на новую сборку индекса/эмбеддера.
Безопасность и данные
- PII и секреты. Маскирование, списки исключений для инжеста, чистка логов.
- Лицензии. Фильтры источников, запреты на «серые» домены.
- Prompt-инъекции. Разделяйте инструкции и данные, держите стоп-словари, проверяйте ссылки и диапазоны.
Чек-листы внедрения (30/60/90)
0–30 дней
- Сформулировать сценарий, эталонные запросы и критерий «готово».
- Запустить гибридный поиск, базовую конденсацию, контракты вывода с цитатами.
- Поднять дешборды: Recall/Precision, Цитатность, Токены контекста, TTFT, P95, Неформат.
31–60 дней
- Добавить реранкер и кэши, ввести пороги ретраев/лимиты длины.
- Версионировать эмбеддер/индекс, завести карточки релизов и канарейки.
- Наладить инкрементальные обновления и тесты регрессий.
61–90 дней
- Рассмотреть иерархический/многоступенчатый паттерн.
- Включить отчёты по «цене эпизода» и мониторинг дрейфа качества.
- Регулярно ревизовать источники и политику ссылок.
Типовые ошибки и как их чинить
| Ошибка | Симптом | Решение |
| «Только векторы» | Пропуски терминов/дат | Гибридный поиск и метаданные |
| Перекорм контекстом | Дорогие запросы, регрессии | Конденсация, дедуп, лимиты |
| Нет цитат | Жалобы на «враньё» | Обязательная цитатность и валидация |
| Без версионирования | Случайные деградации | Метки версий эмбеддера/индекса |
| Ретраи «до победы» | Рост счёта и P95 | Ретраи только по коду/неформату |
| Смешение очередей | «Длинный хвост» | Развести профили и кэши |
FAQ
Можно ли обойтись без реранкера? На малых коллекциях — иногда да. На практике реранкер стабилизирует релевантность и снижает потребный объём контекста.
Сколько фрагментов подавать модели? Ровно столько, сколько нужно для ответа: начните с 3–5 сниппетов после конденсации и замерьте «цитатность/неформат/цену эпизода».
Как выявить дрейф качества? Держать эталонный набор запросов, версионировать эмбеддер/индекс и сравнивать метрики «до/после».
Что хранить в логах? Trace_id, запрос, ID и версии эмбеддера/индекса, выбранные источники, токены контекста/ответа, TTFT, P95, неформат.
RAG решает галлюцинации полностью? Нет. Он снижает риск, повышая проверяемость; дисциплина ссылок и контрактов всё равно обязательна.
Словарь коротких определений
- Эмбеддинг — векторное представление объекта для семантического поиска.
- Гибридный поиск — сочетание лексического и векторного поиска с фильтрами.
- Реранкер — скорер, пересортировывающий кандидатов после ретривера.
- Конденсация — сжатие и нормализация фрагментов перед генерацией.
- Цитатность — доля ответов с валидными ссылками/ID источников.
- Неформат — нарушение контракта вывода (битый JSON/таблицы).
- Дрейф эмбеддера — падение качества представлений со временем.
