Диагностика Mock-интервью
Главная · RAG: поиск + генерация

Что такое RAG и зачем он нужен

RAG (Retrieval-Augmented Generation, генерация с дополнением поиском) — способ дать LLM знания, которых нет в её весах: найти релевантные куски документов и подложить их в промпт. Это самый распространённый паттерн промышленных LLM-систем и обязательная тема любого собеседования AI-инженера.

Интуиция

У «голой» LLM три хронические проблемы. Во-первых, знания заморожены на дате обучения (knowledge cutoff) — про вчерашний релиз она не знает. Во-вторых, она не видела ваших приватных данных: внутренних регламентов, базы клиентов, документации продукта. В-третьих, на вопросы вне своих знаний она отвечает правдоподобной выдумкой — галлюцинирует (hallucination), причём уверенным тоном.

RAG решает всё это одной идеей: не заставляй модель помнить — дай ей прочитать. Перед генерацией система находит в базе знаний куски, релевантные вопросу, и вставляет их в промпт: «вот выдержки из документов, отвечай по ним». Это экзамен со шпаргалкой, которую тебе подбирают под конкретный билет.

Как это работает

Пайплайн состоит из двух фаз:

Близость векторов меряют косинусной близостью: похожие по смыслу тексты лежат рядом в пространстве эмбеддингов, поэтому «сколько дней отпуска» находит документ про отпуска, даже если в нём нет слова «сколько».

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

Параметр top-k — компромисс: мало фрагментов — рискуем не захватить нужный, много — тащим в промпт шум, платим за лишние токены и разбавляем внимание модели. Типичные значения — от 3 до 10, но правильный ответ всегда эмпирический: k подбирают по метрикам качества поиска на своих данных, а не берут из чужого туториала.

💡 Ключевая мысль RAG отделяет знания от модели: факты живут в обновляемом индексе, модель отвечает за язык и рассуждение. Обновить знания = переиндексировать документы, а не переобучать модель.

RAG против альтернатив

RAG vs fine-tuning — типичный вопрос собеседования. Дообучение (fine-tuning) хорошо передаёт навык и стиль: формат ответов, тон, доменный жаргон. Но как хранилище фактов оно неудобно: знания «вшиваются» в веса, обновление = новое обучение, конкретный факт нельзя ни процитировать, ни гарантированно извлечь. RAG хранит знания снаружи: обновляются переиндексацией за минуты, ответы цитируемы. Правильный ответ на собеседовании: это не конкуренты — RAG для фактов, fine-tuning для поведения, часто вместе.

RAG vs длинный контекст. «Окна выросли до миллионов токенов — зачем RAG?» Затем, что корпус в миллионы документов не влезет ни в какое окно; платить за сотни тысяч токенов контекста на каждый запрос дорого и медленно; а качество внимания на огромном контексте деградирует. Поиск дешевле: подаём модели только релевантное. Длинный контекст скорее дополняет RAG — можно позволить себе больше найденных фрагментов.

Когда RAG не нужен: вопросы на общее рассуждение и креатив («напиши стихотворение», «объясни рекурсию»), задачи, где все данные уже в запросе (суммаризация присланного текста), и стабильные общеизвестные знания, которые модель и так знает надёжно.

⚠️ Подводный камень RAG не отменяет галлюцинации, а снижает их. Если поиск принёс нерелевантные фрагменты — модель либо честно скажет «не знаю», либо сфантазирует «по мотивам» мусорного контекста. Качество RAG-системы упирается в качество поиска, поэтому его измеряют отдельно от качества генерации.
🎤 На собеседовании
  • «RAG или fine-tuning?» — знания vs навык: свежие/приватные факты — RAG; стиль, формат, доменное поведение — fine-tuning; часто комбинация.
  • «Нарисуйте пайплайн RAG» — две фазы: индексация (документы → чанки → эмбеддинги → векторная БД) и запрос (эмбеддинг вопроса → топ-k → промпт → генерация).
  • «Зачем RAG при окне в миллион токенов?» — масштаб корпуса, цена и латентность запроса, деградация внимания; поиск отбирает только нужное.
  • «Как RAG влияет на галлюцинации?» — снижает и делает проверяемыми через цитаты, но не устраняет: мусор на входе — фантазия на выходе.