TATECHATLAS
◎ Русский
Искусственный интеллект

Что меняет RAG — и каких проблем он не решает

Как поиск связывает языковую модель с документами и почему ссылка не гарантирует правильность.

В этом материале

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

Пример: ответ по внутреннему регламенту

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

Если найден только старый регламент или правила для другой страны, система должна сообщить, что данных недостаточно. Уверенный ответ со ссылкой на неподходящий документ всё равно ошибочен. В этом примере область действия документа не менее важна, чем сходство текста с вопросом.

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

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

Начните с минимального полезного процесса

Возьмите небольшой набор надёжных документов. Извлеките читаемый текст, сохраните заголовки и разбейте его на фрагменты так, чтобы правило не потеряло исключения. У каждого фрагмента оставьте название документа, версию, раздел и ограничения доступа. Найдите несколько подходящих фрагментов и попросите модель ответить на их основе.

Для небольшой коллекции сначала может хватить обычного поиска по словам. Векторный поиск помогает при другой формулировке вопроса; гибридный объединяет текстовые и векторные результаты. Для начала не обязательны сложная инфраструктура и заранее объявленный идеальный размер фрагмента.

Проверять поиск отдельно

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

Разделите три причины ошибочного ответа

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

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

Контролируйте доступ и стоимость

Отбирайте документы с учётом прав пользователя до того, как их текст попадёт в модель. Запрет в промпте не заменяет контроль доступа. Инструкции, случайно или намеренно написанные внутри найденного документа, считайте содержимым документа, а не разрешением менять правила системы.

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

Что проверить

  • Находится ли нужный фрагмент?
  • Подтверждает ли он конкретное утверждение?
  • Учтены ли версии документов и права доступа?

RAG не гарантирует фактическую правильность. Сам источник тоже может содержать ошибку или устареть.

Источники

  1. Retrieval-Augmented Generation, Lewis et al. ↗
  2. Microsoft Learn: RAG overview ↗
  3. Microsoft Learn: document chunking ↗
  4. Microsoft Learn: vector search ↗
Наверх ↑