«Прикрутите нам чат по нашей документации» — с этой задачи начинается путь большинства AI-инженеров. И это же — самый быстрый способ узнать, что между «демо за вечер» и «системой, которой доверяют» лежит пропасть.

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

LLM знает только то, что было в обучающих данных. Вашей внутренней вики, базы тикетов и вчерашних регламентов там нет. Дообучать модель под каждое обновление документов — дорого и медленно. RAG решает это проще: нужные знания подкладываются модели в контекст в момент вопроса.

Пайплайн из трёх шагов:

  1. Retrieval — по вопросу пользователя найти в корпусе релевантные фрагменты.
  2. Augmentation — вставить найденное в промпт: «вот документы, отвечай по ним».
  3. Generation — модель пишет ответ, опираясь на подложенный контекст, в идеале — со ссылками на источники.

Звучит тривиально. Вся инженерия прячется в первом шаге: если поиск принёс мусор, никакая модель не спасёт ответ.

Как устроен retrieval: от документов до векторов

Чанкинг

Документы режутся на куски (чанки) — обычно 300–1000 токенов. Это первое место, где закапываются проекты: режешь посреди абзаца — теряешь смысл, режешь слишком крупно — в кусок попадает три темы сразу и эмбеддинг становится «средней температурой по больнице».

Рабочие практики: резать по структуре документа (заголовки, секции), а не по числу символов; добавлять перекрытие между соседними чанками; приклеивать к каждому чанку контекст — заголовок документа и секции, а ещё лучше — одну строку «о чём этот кусок», сгенерированную моделью (contextual retrieval). Последний приём в среднем даёт самый большой прирост качества на единицу усилий.

Эмбеддинги и векторный поиск

Каждый чанк превращается в вектор — числовое представление смысла. Вопрос пользователя превращается в такой же вектор, и система ищет ближайшие. Так «как вернуть деньги» находит «процедура возврата средств», хотя общих слов почти нет.

Но семантический поиск слеп к точным совпадениям: артикулы, имена, коды ошибок, номера договоров он находит хуже, чем старый добрый полнотекстовый поиск. Поэтому в продакшне почти всегда работает гибрид: векторный поиск + BM25, результаты которых склеиваются.

Реранкинг

Первый этап поиска быстрый, но грубый: он приносит 20–50 кандидатов. Реранкер — отдельная модель, которая смотрит на пару «вопрос + кусок» целиком и переставляет кандидатов по реальной релевантности. В топ-5 после реранкинга попадает заметно больше правильных кусков, чем без него. Это второй по окупаемости апгрейд после нормального чанкинга.

Где RAG ломается: топ-5 граблей

  1. Чанкинг по числу символов. Кусок обрывается посреди таблицы или инструкции — retrieval находит «половину ответа», модель достраивает вторую половину из головы. Получаются правдоподобные галлюцинации со ссылкой на настоящий документ — худший вид ошибки.
  2. Вопрос и документ говорят на разных языках. Пользователи спрашивают разговорно, документы написаны канцеляритом. Лечится переформулировкой запроса моделью перед поиском (query rewriting) и гибридным поиском.
  3. Нет фильтрации по метаданным. Вопрос про «отпуск в 2026» находит регламент 2019 года — вектора у них почти одинаковые. Дата, версия, отдел, продукт должны быть полями фильтра, а не надеждой на эмбеддинг.
  4. Устаревший индекс. Документ обновили, а чанки в базе старые. Без пайплайна переиндексации RAG деградирует молча: система продолжает уверенно отвечать по прошлогодним правилам.
  5. Оценка «на глазок». Потыкали пять вопросов — «вроде норм», выкатили. Через неделю прилетает скриншот с уверенным неправильным ответом. Без золотого набора вопросов и метрик каждое изменение пайплайна — лотерея.

Как оценивать качество

Минимальный рабочий контур — золотой набор из 50–200 реальных вопросов (из саппорта, логов, интервью с пользователями) с правильными ответами и документами-источниками. На нём меряются два слоя независимо:

  • Retrieval: попали ли нужные документы в выдачу (recall@k). Если нет — крутить чанкинг, гибрид, реранкер; модель тут ни при чём.
  • Generation: правильный ли ответ при правильно найденных документах. Оценивается LLM-судьёй по чеклисту: соответствие источникам, полнота, отсутствие выдумок.

Разделение слоёв — главное: оно сразу показывает, где чинить. 80% проблем живут в retrieval, но команды по привычке первым делом меняют модель генерации.

Когда RAG не нужен

Самая дорогая ошибка — построить RAG там, где он не нужен:

  • Корпус помещается в контекст. 200K–1M токенов — это сотни страниц. Полсотни документов по продукту дешевле подать целиком, чем городить пайплайн.
  • Агентный поиск справляется. Если данные — это код или структурированные файлы, агент с инструментами поиска (grep, навигация по файлам — как это делает Claude Code) часто находит ответ точнее векторной базы. Подключить такие источники к ассистенту можно через MCP-серверы — без отдельной поисковой инфраструктуры.
  • Вопросы предсказуемы. Если 90% запросов — это 30 типовых сценариев, FAQ с классификатором проще, дешевле и не галлюцинирует.

RAG оправдан, когда документов тысячи, корпус живёт и растёт, а вопросы непредсказуемы. Тогда это полноценная поисковая система с LLM-интерфейсом — и относиться к ней нужно как к поисковой системе, а не как к промпту.

Куда расти дальше

Хороший RAG — это на 20% про AI и на 80% про инженерию: пайплайны данных, индексация, метрики, мониторинг. Именно поэтому вопросы про RAG стали стандартом на собеседованиях AI-инженеров — по ним видно, строил человек реальную систему или прошёл туториал.

Если хотите разобрать свой пайплайн с тем, кто уже наступил на эти грабли, — в базе менторов IT-ХОЗЯЕВА есть практикующие AI/ML-инженеры: ревью архитектуры, подготовка к собеседованию, помощь с первым AI-проектом. Доступ — на тарифе ХОЗЯИН, 1000 ₽/мес.