Инструменты26 июля 2026 г., 00:15 МСК🤖 Auto

4 кирпича контекстной инженерии: как победить галлюцинации RAG

Простого промпт-инжиниринга недостаточно. Исследование показывает, что галлюцинации RAG возникают из-за ошибок в 4 этапах конвейера: парсинг, вопрос, поиск и генерация.

Баннер новости 4398

Проблема: RAG отвечает на неправильный контекст

Стандартный подход к RAG (Retrieval-Augmented Generation) часто терпит неудачу не из-за плохих промптов, а из-за того, что модель получает неверный контекст. Автор статьи демонстрирует, что «наивный» RAG-конвейер ломается на четырех конкретных этапах, названных «кирпичами» (bricks). Каждый сбой приводит к уверенному, но неверному ответу, который можно исправить только на уровне архитектуры конвейера, а не через оптимизацию запроса.

1. Парсинг: таблица, превращенная в шум

При работе с отчетами, содержащими таблицы (например, World Bank Commodity Markets Outlook), стандартный парсинг в плоский текст разрушает структуру. Если строка с меткой (например, Henry Hub) и значением (например, 3.5) попадают в разные чанки из-за фиксированного размера, модель не может связать их.

  • Результат наивного RAG: «not stated in these lines» (уверенность 0.00).
  • Решение: Реляционный парсинг, возвращающий line_df с координатами bounding box. Это сохраняет связь между меткой и значением.
  • Результат улучшенного RAG: «$3.5 per mmbtu» (уверенность 0.99).

2. Вопрос: лексический разрыв

Пользовательские запросы часто используют термины, отсутствующие в документе. В примере с NIST SP 800-207 пользователь спрашивает о «pillars» (опорах), но документ использует термин «tenets» (принципы). Наивный поиск по ключевым словам не находит совпадений.

  • Результат наивного RAG: «the specific pillars are not listed» (уверенность 0.20).
  • Решение: Предварительная обработка вопроса (question parsing) для нормализации и расширения синонимов (pillars → tenets/principles).
  • Результат улучшенного RAG: Перечисление всех семи принципов (уверенность 0.95).

3. Поиск: ответ ниже порога отсечки

В больших документах, таких как NIST Cybersecurity Framework 2.0, термин может встречаться часто, но определение находится в одном конкретном разделе. Наивный поиск по косинусному сходству или частоте ключевых слов возвращает релевантные, но не определяющие страницы, которые выбиваются из топ-k.

  • Результат наивного RAG: «not defined in these lines» (уверенность 0.10).
  • Решение: Маршрутизация на основе структуры документа (оглавления). LLM анализирует оглавление, чтобы направить поиск в нужный раздел (например, CSF Profiles).
  • Результат улучшенного RAG: Полное определение с цитированием (уверенность 0.95). На каталогах из 400+ страниц этот метод сохраняет точность, в то время как частотный поиск деградирует.

4. Генерация: отсутствие самопроверки

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

Сравнение результатов

Этап (Кирпич) Проблема наивного RAG Решение (Context Engineering) Результат (Уверенность)
Парсинг Разрыв связи в таблицах Реляционный парсинг (bounding boxes) 0.99 (верно)
Вопрос Лексический разрыв (синонимы) Расширение запроса (synonym expansion) 0.95 (верно)
Поиск Ответ ниже top-k cutoff Рутинг по оглавлению/структуре 0.95 (верно)
Генерация Уверенная галлюцинация Структурированный вывод с проверкой Высокая точность

Ключевой вывод: чтобы устранить галлюцинации в RAG, необходимо внедрять «кирпичи» контекстной инженерии на каждом этапе конвейера, а не полагаться только на оптимизацию промптов.

Источник: Towards Data Science ↗