Какие основные компоненты базового Retrieval-Augmented Generation (RAG)?
Ответ от нейросети
sobes.tech AI
Что хотят услышать интервьюеры:
Базовый RAG состоит из двух частей: поиска релевантного контекста и генерации ответа на его основе. Обычно это ingestion данных, разбиение на чанки, эмбеддинги, векторное хранилище, retrieval и LLM-генерация. Важно понимать, что качество RAG определяется не только моделью, но и качеством индексации и поиска.
Определение:
Retrieval-Augmented Generation — это подход, где языковая модель отвечает не только по своим параметрам, но и опирается на внешние документы, найденные по запросу.
Базовый пайплайн включает подготовку документов, их векторизацию и индексирование, поиск релевантных фрагментов по запросу и передачу найденного контекста в генератор ответа.
Пример использования:
Например, в корпоративном помощнике сотрудник спрашивает: «Как оформить отпуск?». Система ищет релевантные фрагменты в базе регламентов, находит статью про отпуск и передаёт её вместе с вопросом в LLM, которая формирует ответ на основе найденного текста.
Документы -> разбиение на чанки -> эмбеддинги -> векторная БД
Пользовательский запрос -> эмбеддинг запроса -> поиск top-k чанков
Найденный контекст + запрос -> LLM -> итоговый ответ
Пояснение кода:
Код не требуется. Для базового RAG важно разложить процесс по шагам:
- Источники знаний собираются в одном месте: файлы, базы, wiki, FAQ.
- Текст делится на небольшие фрагменты, чтобы поиск был точнее.
- Каждый фрагмент переводится в векторное представление через модель эмбеддингов.
- Векторы сохраняются в векторном индексе или векторной БД.
- При вопросе пользователя запрос тоже переводится в вектор.
- По векторному сходству находятся top-k наиболее релевантных фрагментов.
- Эти фрагменты добавляются в prompt LLM, и модель генерирует ответ с опорой на контекст.
Ключевые моменты:
- Два ядра RAG: retrieval и generation.
- Качество чанкинга сильно влияет на точность поиска.
- Эмбеддинги и векторное хранилище нужны для семантического поиска.
- LLM не «знает» документы сама по себе — она получает их как внешний контекст.
- Часто узкие места RAG — плохой retrieval, шумный контекст и ограничение по размеру prompt.
- Базовый RAG проще и дешевле fine-tuning, но требует хорошей подготовки данных и поиска.