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

> Что такое RAG: поиск по документам + генерация LLM, зачем нужен в проде, схема пайплайна и базовые вопросы на интервью AI-инженера.

Раздел: [RAG: поиск + генерация](https://ml-book.com/s/rag/) · Страница темы: https://ml-book.com/t/rag-basics/ · Обновлено: 2026-09-16 · Источник: ml-book.com, учебник делается сообществом

## Интуиция

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

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

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

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

- **Индексация (офлайн, заранее):** документы → нарезка на фрагменты ([чанки](https://ml-book.com/t/chunking/)) → каждый чанк превращается в вектор-[эмбеддинг](https://ml-book.com/t/embeddings/) → векторы складываются в векторную БД (vector database).
- **Запрос (онлайн):** вопрос пользователя → его эмбеддинг → [поиск](https://ml-book.com/t/vector-search/) топ-k ближайших чанков → сборка промпта: [инструкция] + [найденные фрагменты] + [вопрос] → генерация ответа с опорой на контекст (grounded generation).

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

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

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

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

> 🎛 Интерактивная визуализация — на странице темы: https://ml-book.com/t/rag-basics/

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

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

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

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

> **⚠️ Подводный камень**
>
> RAG не отменяет галлюцинации, а снижает их. Если поиск принёс нерелевантные фрагменты — модель либо честно скажет «не знаю», либо сфантазирует «по мотивам» мусорного контекста. Качество RAG-системы упирается в качество поиска, поэтому его [измеряют отдельно](https://ml-book.com/t/rag-eval/) от качества генерации.

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

[Проверить готовность за 5 минут](https://ml-book.com/diag/?utm_source=topic&utm_campaign=rat002&utm_content=rag-basics)

## Связанные темы

- [Векторный поиск и ANN-индексы](https://ml-book.com/t/vector-search/)
- [Чанкинг и подготовка данных](https://ml-book.com/t/chunking/)
- [Гибридный поиск и реранкинг](https://ml-book.com/t/hybrid-rerank/)
- [Оценка качества RAG](https://ml-book.com/t/rag-eval/)

---

Интерактив, тест из 12 вопросов и карточки терминов — на странице темы: https://ml-book.com/t/rag-basics/
Весь учебник в markdown: https://ml-book.com/llms-full.txt · Оглавление для агентов: https://ml-book.com/llms.txt
