Что такое RAG и когда он нужен бизнесу
RAG — это ответы модели по вашим документам, а не по интернету, с видимым источником под каждым утверждением. Разбираем, из чего он состоит, где теряется качество на нарезке и обновлении, как считать, что он работает, и когда он не нужен.
8 мин чтения
Что такое RAG простыми словами
RAG — это связка «сначала найди, потом ответь». На вопрос система сначала достаёт релевантные куски из ваших документов, а потом просит модель ответить, опираясь только на них. Ответ приходит с указанием источника, и его можно проверить.
Ценность именно в проверяемости. Модель без RAG отвечает по памяти обучения и звучит одинаково уверенно и когда права, и когда нет. Модель с RAG показывает, откуда взяла утверждение, и это превращает её из собеседника в инструмент.
RAG или дообучение модели
Это разные задачи, а не конкуренты. Дообучение меняет поведение модели: стиль, формат, устойчивые правила домена. RAG даёт знание, которое меняется: регламенты, цены, договоры, вчерашние протоколы.
Практическое правило: если ответ должен меняться в тот же день, когда изменился документ, это RAG. Если меняется не знание, а манера отвечать, это дообучение. Требование «модель должна знать наши документы» почти всегда означает первое.
Из чего состоит рабочая система
Пять частей, и качество определяется не последней из них, а первыми двумя.
- Источники. PDF, вики, почта, тикеты, база, таблицы. У каждого типа своя беда: у PDF — таблицы и колонки, у вики — устаревшие страницы, у почты — цитирование предыдущих писем.
- Нарезка. Документ режется на куски, которые будут искаться. От размера и границ куска зависит больше, чем от выбора модели.
- Индекс. Векторный поиск по смыслу плюс обычный полнотекстовый по словам: коды, артикулы и номера договоров ищутся словами, а не смыслом.
- Ранжирование. Первичная выборка широкая, затем реранкер отбирает несколько лучших кусков. Без этого шага модель получает шум и уверенно отвечает по нему.
- Генерация с цитатами и с правом сказать «не знаю». Пустая выборка должна приводить к отказу, а не к красивому вымыслу.
Нарезка: где чаще всего теряется качество
Кусок в 200 слов теряет контекст: пункт регламента без раздела, к которому он относится, значит другое. Кусок в 2000 слов размывает смысл, и поиск перестаёт различать соседние темы. Рабочий подход — резать по структуре документа, а не по числу символов: раздел, пункт, таблица, и хранить рядом заголовки родителей.
Таблицы и списки выносятся отдельно и сохраняются целиком: разрезанная посередине таблица превращает цифры в мусор. У каждого куска должны быть метаданные — документ, версия, дата, владелец, права доступа. На них потом держится и фильтрация, и объяснение, откуда ответ.
Обновление без простоя
База знаний живёт: документы правятся ежедневно. Переиндексация всего корпуса на каждое изменение неоправданно дорога, а ответы по вчерашней версии обесценивают систему. Практическое решение — инкрементальное обновление по изменившимся документам и версионирование индекса: новая версия собирается рядом, переключение происходит атомарно, старая остаётся для отката.
Отдельно нужен путь для удаления. Документ отозвали — его куски должны исчезнуть из выдачи в тот же день, иначе система будет цитировать отменённый регламент с полной уверенностью.
Права доступа
Самая дорогая ошибка в корпоративном RAG — не галлюцинация, а ответ, который сотрудник не должен был увидеть. Права проверяются на этапе поиска, а не на этапе показа: фильтр по правам применяется к выборке до того, как куски попали в модель. Иначе достаточно переформулировать вопрос, чтобы получить закрытые данные пересказом.
Как понять, что система работает
Ощущение «отвечает хорошо» не масштабируется. Нужен набор из нескольких десятков реальных вопросов с известными правильными источниками и три метрики: доля вопросов, где нужный кусок вообще попал в выборку; доля ответов, где цитата подтверждает утверждение; доля честных отказов там, где ответа в документах нет.
Первая метрика лечится поиском и нарезкой, вторая — ранжированием и промптом, третья — правилами на пустую выборку. Без этого разделения улучшения превращаются в перебор наугад.
Когда RAG не нужен
Если документов мало и они помещаются в контекст модели целиком, поиск не нужен: положите их в запрос. Если вопросы всегда одинаковые, дешевле подготовленные ответы. Если документы противоречат друг другу и никто не знает, какая версия действующая, RAG не решит проблему, а сделает её видимой и быстрой — начинать надо с наведения порядка в источниках.