AI EngineeringRAG · Поиск по документам · Инженерия LLM

RAG-система: что это, когда она нужна и где ломается

RAG — способ заставить языковую модель отвечать по вашим документам, а не по памяти интернета. Идея простая, а провал предсказуемый: почти все проблемы таких систем возникают не в модели, а в том, как документы нарезаны, найдены и переданы ей.

Что такое RAG простыми словами

RAG (retrieval-augmented generation, генерация с извлечением) — это связка поиска и языковой модели. Прежде чем ответить, система находит в вашей базе фрагменты, относящиеся к вопросу, и кладёт их модели в контекст. Модель отвечает, опираясь на найденное, а не на общие представления о мире.

Бытовая аналогия: сотруднику задали вопрос по внутреннему регламенту. Он не пытается вспомнить, а открывает нужные страницы и отвечает по ним — со ссылкой на пункт. RAG устроен так же, и именно поэтому его ответы можно проверять.

Когда RAG нужен, а когда нет

RAG оправдан, когда знание живёт в документах и меняется: регламенты, договоры, техническая документация, база поддержки, история проектов. Обновили документ — система отвечает по-новому уже сегодня, без переобучения.

RAG не нужен и только добавит сложности, если:

Как устроена RAG-система

Минимальный работающий контур состоит из шести частей, и каждая из них — источник отказа.

  1. Сбор документов: выгрузка из хранилищ, почты, вики, файловых шар. Здесь же решается, что делать со сканами и таблицами.
  2. Нарезка на фрагменты: документ режется на куски, которые модель получит целиком. Слишком мелкие теряют смысл, слишком крупные размывают поиск.
  3. Векторизация: каждый фрагмент превращается в набор чисел, отражающий смысл, и попадает в векторную базу.
  4. Поиск: вопрос превращается в такой же вектор, база возвращает ближайшие фрагменты. Хорошие системы дополняют это обычным полнотекстовым поиском по терминам.
  5. Сборка контекста: отобранные фрагменты фильтруются, переупорядочиваются и складываются в промпт вместе с инструкцией.
  6. Генерация с цитированием: модель отвечает и указывает, на каких фрагментах основан ответ.

Где RAG ломается на реальных документах

Нарезка

Самая частая причина плохих ответов. Регламент, разрезанный посреди пункта, даёт фрагмент без условия применения — модель отвечает уверенно и неверно. Нарезка должна следовать структуре документа: разделы, пункты, таблицы, а не фиксированное число символов.

Таблицы, сканы и приложения

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

Версии и дубликаты

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

Смысл против терминов

Векторный поиск хорошо понимает переформулировки и плохо — точные обозначения: артикулы, номера ГОСТов, названия версий. Лечится гибридным поиском: векторный плюс полнотекстовый, с объединением результатов.

Права доступа

Если фильтрация по правам не встроена в сам поиск, система рано или поздно процитирует сотруднику документ, которого он видеть не должен. Права — часть индекса, а не постобработка ответа.

Как понять, что система работает

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

Разделение поиска и генерации в измерениях принципиально: если ошибка в поиске, менять промпт бессмысленно, и наоборот. Без такого разделения улучшение системы превращается в гадание.

RAG, дообучение или граф знаний

Три подхода решают разные задачи, и их регулярно путают.

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

С чего начать

  1. Возьмите один процесс с повторяющимися вопросами и измеримой ценой ответа — поддержку, подбор по документации, проверку договоров.
  2. Соберите 30–50 реальных вопросов с эталонными ответами. Это самая ценная работа этапа, и её нельзя делегировать подрядчику целиком.
  3. Соберите прототип на ограниченном наборе документов и измерьте на своих вопросах.
  4. Только после этого расширяйте корпус. Плохая система на большом корпусе отлаживается в разы дороже.

Частые вопросы

Чем RAG отличается от обычного поиска по документам?

Обычный поиск возвращает список документов и оставляет чтение человеку. RAG находит фрагменты и формулирует ответ, указывая, откуда он взят. Поиск при этом остаётся внутри — если он работает плохо, ответ будет плохим независимо от модели.

Можно ли построить RAG-систему в закрытом контуре?

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

Сколько документов нужно, чтобы это имело смысл?

Смысл появляется не от количества, а от повторяемости вопросов. Если к одному и тому же регламенту обращаются каждый день и цена ошибки заметна, хватит и сотни документов. Если обращения единичны, дешевле оставить обычный поиск.

Почему система иногда отвечает уверенно и неправильно?

Потому что языковая модель формулирует ответ по тому, что ей передали. Если поиск принёс не тот фрагмент или фрагмент обрезан посреди условия, модель достроит недостающее сама. Лечится это качеством нарезки и поиска, требованием цитировать источник и умением отказываться от ответа.

Чем мы помогаем по этой теме

Читать дальше

Обсудим вашу задачу

Если у вас похожая задача — расскажите, что нужно решить. Скажем прямо, если она решается проще, чем кажется.

Написать нам