Архитектура RAG-пайплайна: обзор
Карта всего курса: какие компоненты есть в RAG и в каком порядке они работают.
RAG-пайплайн делится на две фазы: индексация (готовим базу заранее) и извлечение + генерация (отвечаем на запрос в реальном времени).
Фаза 1. Индексация (offline)
Делается заранее и периодически обновляется. Цель — превратить ваши документы в быстро искомый индекс.
- Загрузка и парсинг — читаем PDF, HTML, Markdown, базы; вытаскиваем чистый текст.
- Чанкинг — режем текст на фрагменты подходящего размера (chunks).
- Эмбеддинги — каждый чанк превращаем в вектор смысла моделью эмбеддингов.
- Запись в векторную БД — сохраняем векторы и метаданные, строим индекс для быстрого поиска.
Фаза 2. Извлечение и генерация (online)
Происходит на каждый запрос пользователя.
- Эмбеддинг запроса — той же моделью превращаем вопрос в вектор.
- Поиск top-k — находим в БД ближайшие по смыслу чанки.
- Сборка промпта — склеиваем найденный контекст с вопросом.
- Генерация — LLM пишет ответ по контексту, при желании — со ссылками.
Поток данных целиком
ИНДЕКСАЦИЯ (заранее):
документы -> парсинг -> чанки -> эмбеддинги -> векторная БД
ЗАПРОС (в рантайме):
вопрос -> эмбеддинг -> поиск top-k в БД -> контекст
-> промпт(вопрос + контекст) -> LLM -> ответ + источникиПочему фаз именно две
Разделение на offline и online — не случайность, а основа экономики RAG. Индексация тяжёлая: распарсить тысячи документов, нарезать, прогнать каждый чанк через модель эмбеддингов — это минуты и часы работы. Делать такое на каждый вопрос пользователя немыслимо. Поэтому всю дорогую подготовку выносят вперёд и выполняют один раз (плюс инкрементально при изменении данных). В рантайме остаётся лёгкое: один эмбеддинг запроса и быстрый поиск по готовому индексу — это миллисекунды. Так пользователь получает мгновенный ответ, а тяжёлая работа уже сделана заранее.
Ключевое наблюдение
Обратите внимание: и документы, и запрос проходят через одну и ту же модель эмбеддингов. Только так их векторы оказываются в одном пространстве и их можно сравнивать. Это фундамент, к которому мы вернёмся в разделе про эмбеддинги.
Где обычно ломается
| Этап | Типичная ошибка |
| Чанкинг | слишком крупные/мелкие фрагменты — теряется смысл |
| Эмбеддинги | разные модели для базы и запроса — векторы несравнимы |
| Поиск | маленький k — нужный факт не попал в контекст |
| Промпт | модель не обязали опираться на контекст — снова галлюцинирует |
Итог
- RAG = индексация (offline) + извлечение и генерация (online).
- Индексация: парсинг, чанкинг, эмбеддинги, запись в БД.
- Рантайм: эмбеддинг запроса, поиск top-k, промпт, генерация.
- Запрос и документы должны эмбеддиться одной моделью.