Коротко: что такое RAG-система

RAG-система — это ИИ-ассистент, который перед ответом находит нужные фрагменты в документах компании и формулирует ответ только на их основе. Название расшифровывается как Retrieval Augmented Generation — «генерация, дополненная поиском». В результате ассистент отвечает по вашим регламентам, инструкциям и прайсам, а не по общим знаниям из интернета, и показывает, откуда взял информацию.

Почему обычный ChatGPT не отвечает по документам компании

Языковая модель (LLM, large language model) — это программа, обученная на большом массиве текстов. Она хорошо пишет и пересказывает, но у нее есть три ограничения, которые мешают использовать ее как справочную службу компании.

Можно вставить документ прямо в чат, но это работает только с одним-двумя файлами. Когда документов сотни, их нельзя каждый раз передавать модели целиком. Нужен механизм, который сначала найдет нужное, а потом передаст модели только релевантные куски. Именно это и делает RAG.

А если дообучить модель на своих документах?

Дообучение (fine-tuning) — это дополнительная тренировка модели на ваших данных. Звучит логично, но для справочных задач оно подходит плохо:

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

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

Работу системы retrieval augmented generation удобно разделить на два этапа: подготовку базы знаний (выполняется один раз при загрузке документов) и ответ на вопрос (выполняется при каждом запросе).

Подготовка документов

  1. Извлечение текста. Система читает файлы: PDF, Word, презентации, таблицы. Для сканов и изображений применяется распознавание текста.
  2. Разбиение на фрагменты. Длинный документ делится на небольшие смысловые куски — абзацы или разделы. Модели проще работать с фрагментом на полстраницы, чем со стостраничным файлом.
  3. Построение эмбеддингов. Эмбеддинг — это набор чисел, который описывает смысл фрагмента. Тексты с близким смыслом получают близкие наборы чисел, даже если в них разные слова. Например, «как оформить возврат» и «порядок возврата товара» окажутся рядом.
  4. Сохранение в векторную базу. Векторная база данных хранит эмбеддинги и умеет быстро находить фрагменты, близкие по смыслу к заданному запросу.

Ответ на вопрос

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

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

Архитектура RAG-системы

Если разложить архитектуру RAG-системы на части, получится пять основных компонентов.

Компонент Что делает
Хранилище документов Хранит исходные файлы и извлеченный из них текст
Модель эмбеддингов Превращает фрагменты и вопросы в числовые векторы
Векторная база данных Ищет фрагменты, близкие по смыслу к вопросу
Языковая модель (LLM) Формулирует ответ по найденным фрагментам
Слой прав доступа Определяет, какие документы может видеть конкретный пользователь

На практике качество ответов зависит в первую очередь от поискового слоя, а не от того, насколько «умная» языковая модель. Если поиск не нашел нужный фрагмент, модель не сможет ответить правильно, как бы хорошо она ни писала. Поэтому основная инженерная работа при разработке RAG-систем уходит на извлечение текста, разбиение на фрагменты и настройку поиска.

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

Агентный RAG: когда одного поиска мало

Классическая схема делает один поиск и сразу отвечает. Для простых вопросов этого достаточно. Но бывают ситуации, когда ответ разбросан по разным местам:

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

Пример. Сотрудник спрашивает: «Какие документы нужны для командировки за границу и кто их согласует?» Одиночный поиск, скорее всего, найдет только перечень документов. Агентный ассистент сначала найдет этот перечень, затем отдельным запросом поищет порядок согласования, заметит, что таблица согласующих продолжается в следующем фрагменте, и подтянет его. В итоге пользователь получит один связный ответ с несколькими ссылками на разные разделы регламента.

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

Где применяют RAG-системы

RAG полезен везде, где люди регулярно задают вопросы, ответы на которые уже записаны в документах.

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

Готовая RAG-система или разработка своей

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

Критерий Готовая RAG-система Разработка своей
Сроки запуска Часы или дни Недели или месяцы
Стоимость старта Низкая, оплата за использование Зарплата команды или бюджет подрядчика
Поддержка На стороне поставщика Своя команда: обновления, ошибки, мониторинг
Контроль и гибкость В рамках возможностей продукта Полный, под любые требования
Риски Зависимость от поставщика Качество поиска нужно доводить самостоятельно

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

Если документы не должны покидать периметр компании, рассмотрите локальную RAG-систему — установку на собственные серверы (on-premise). Часть готовых решений предлагает такой вариант, и это часто быстрее, чем собирать все самостоятельно.

Как сделать RAG-систему своими силами: что учесть

Если вы все же решили строить сами, заложите время на:

На что смотреть при выборе RAG-системы

Независимо от того, покупаете вы решение или заказываете разработку, проверьте следующие пункты.

  1. Ссылки на источники. Каждый ответ должен ссылаться на конкретные фрагменты документов. Без этого ответ нельзя проверить.
  2. Права доступа на этапе поиска. Уточните, где именно проверяются права: до передачи фрагментов в модель или после.
  3. Форматы документов. Поддерживаются ли PDF, в том числе сканы, Word, презентации, таблицы, изображения.
  4. Импорт с сайта. Удобно, когда базу знаний можно наполнить, просто указав адрес сайта, а не выгружая страницы вручную.
  5. Каналы. Где будет работать ассистент: виджет на сайте, Telegram, внутренний интерфейс.
  6. Прозрачная стоимость. Понятно ли, сколько стоит каждый запрос, и нет ли обязательной подписки, которая не окупится при небольшом объеме.
  7. Честное «не знаю». Задайте вопрос, ответа на который точно нет в документах. Хорошая система признает это, а не придумает ответ.

Pragmaticus — готовая RAG-система для бизнеса

Pragmaticus — продукт компании Alt.Point, которая занимается заказной разработкой с 2011 года. Это готовая RAG-система, которую можно подключить без собственной команды разработки.

Что она умеет:

С чего начать

  1. Зарегистрируйтесь и создайте проект.
  2. Загрузите 10–20 ключевых документов или импортируйте страницы своего сайта.
  3. Задайте вопросы, которые вам чаще всего задают клиенты или сотрудники, и проверьте ссылки на источники.
  4. Спросите то, чего в документах точно нет, и убедитесь, что ассистент честно об этом сообщает.
  5. Если результат устраивает, подключите виджет на сайт или бота в Telegram.

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

Ещё статьи