RAG не сработал — но какой именно слой на самом деле отказал? Метод диагностики

Когда ответ RAG неверен, обвинять поиск или модель — слишком расплывчато. Этот диагностический метод изолирует покрытие источников, построение запроса, поиск, ранжирование, сборку контекста, генерацию, атрибуцию доказательств и актуальность — так что фактический сбой можно воспроизвести и исправить.
Опубликовано:
Aleksandar Stajić
Updated: 25 сентября 2026 г. в 22:46
RAG не сработал — но какой именно слой на самом деле отказал? Метод диагностики

Система RAG возвращает слабый, неверный, неполный или необоснованный ответ. Обычный диагноз — «поиск не сработал» или «модель галлюцинировала». Оба ярлыка слишком широки, чтобы быть полезными. Продакшн-конвейер RAG может дать сбой до поиска, во время поиска, при ранжировании, при сборке контекста, во время генерации или после генерации, когда проверяются доказательства и валидность.

Почему «RAG дал сбой» — это не диагноз

Генерация с дополненной выборкой объединяет несколько механизмов: запрос пользователя интерпретируется, формируется один или несколько поисковых запросов, извлекаются кандидатные материалы, результаты фильтруются или переранжируются, выбранные доказательства вставляются в контекст модели, и модель генерирует ответ. Продакшн-системы могут добавлять права доступа, фильтры по метаданным, правила актуальности, цитирование, переформулирование запросов, гибридный поиск, вызовы инструментов, память и внешнее состояние.

Поэтому неверный итоговый ответ не говорит, какой компонент дал сбой. Модель могла получить неверные доказательства. Она могла получить правильные доказательства в смеси с чрезмерным шумом. Доказательства могут быть корректными, но устаревшими. Источник мог вообще никогда не содержать ответ. Или модель могла проигнорировать вполне достаточный контекст.

Руководство OpenAI по RAG уже проводит фундаментальное различие между сбоем поиска и сбоем модели: система может предоставить неверный контекст или предоставить правильный контекст и всё равно сгенерировать неверный ответ. AWS аналогично разделяет оценку только поиска и оценку поиска с генерацией. Для диагностики в продакшне это различие следует развить дальше.

Стек сбоев RAG

СлойВопросТипичный сбой
1. Покрытие источниковСуществуют ли необходимые доказательства в разрешённом авторитетном источнике?Корпус вообще не может ответить на вопрос
2. Построение запросаИскала ли система то, что нужно?Теряются намерение, сущности, фильтры, язык или временные ограничения
3. Поиск кандидатовПопали ли релевантные доказательства в набор кандидатов?Низкая полнота; нужный фрагмент никогда не извлекается
4. Ранжирование и фильтрацияВыжили ли правильные доказательства и достаточно ли высоко ранжированы?Релевантные доказательства погребены, отфильтрованы или уступают поверхностно похожему тексту
5. Сборка контекстаПолучила ли модель пригодные для использования доказательства?Усечение, плохие границы фрагментов, дубликаты, противоречивые пассажи или перегрузка контекста
6. ГенерацияИспользовала ли модель предоставленные доказательства правильно?Необоснованный вывод, сбой инструкции, ошибка рассуждения или несоответствие отказа
7. Атрибуция доказательствМожно ли проследить ответ к доказательствам, на которые он ссылается?Отсутствующие, слабые или неверные цитаты; утверждения превышают поддержку извлечённых данных
8. Валидность и актуальностьДействительны ли доказательства для этого вопроса сейчас?Корректные исторические доказательства используются вне их допустимого времени, версии, юрисдикции или состояния

Слой 1 — Покрытие источников: может ли система вообще ответить на это?

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

Метрика поиска не может восстановить информацию, которая никогда не была проиндексирована. Больший top-k не может извлечь документ, которого нет в конвейере. Если тест покрытия источников не проходит, правильное исправление — это приём данных, выбор источников, права доступа или явное поведение «невозможно ответить на основе доступных доказательств».

Слой 2 — Построение запроса: задала ли система корпусу правильный вопрос?

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

Запрос вроде «Применяется ли политика к подрядчикам в Германии после сентябрьского обновления?» содержит как минимум сущность, популяцию, юрисдикцию и временную границу. Переформулированный запрос, который становится «политика для подрядчиков», может извлечь семантически связанный текст, потеряв переменные, определяющие, действителен ли ответ.

Уровень 3 — Поиск кандидатов: попали ли релевантные доказательства в набор?

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

Именно здесь ценна оценка только поиска. AWS предоставляет метрики релевантности контекста и покрытия контекста для оценки RAG только на этапе поиска. Важная производственная привычка — оценивать поиск до генерации, чтобы отполированный финальный ответ не мог скрыть слабый набор кандидатов.

Уровень 4 — Ранжирование и фильтрация: были ли правильные доказательства отброшены или погребены?

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

Поэтому отладка должна сохранять полный список кандидатов, а не только финальный top-k. Если эталонное доказательство было найдено на 18-м месте, а реранкер удалил его, исправление будет не таким же, как при промахе поиска.

Уровень 5 — Сборка контекста: стали ли полезные доказательства пригодным для использования контекстом?

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

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

Уровень 6 — Генерация: может ли модель правильно использовать правильные доказательства?

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

Вот почему одной сквозной правильности недостаточно для диагностики. OpenAI рекомендует оценку как структурированный способ понять поведение приложения, а руководство Anthropic по оценке агентов подчёркивает множественные прогоны, оценщиков, трассировки и реалистичные случаи сбоев. Для RAG генератор следует тестировать как с обычным поиском, так и с контролируемым эталонным контекстом.

Уровень 7 — Атрибуция доказательств: действительно ли ответ подкреплён?

Правдоподобный ответ со ссылками всё ещё может быть слабо обоснован. Цитируемый документ может быть релевантен теме, но не подтверждать конкретное утверждение. Одно предложение может быть подкреплено, тогда как другое выведено. Ссылка может указывать на источник, который противоречит ответу, как только прочитаны его условия.

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

Уровень 8 — Актуальность и свежесть: были ли доказательства верны для этой версии реальности?

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

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

Самый быстрый метод изоляции: тест с оракульным контекстом

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

Тест с оракульным контекстом

РезультатВероятная интерпретацияСледующий шаг диагностики
Ответ становится правильным
Ответ остаётся неправильным
Ответ улучшается, но остаётся неполным

Последовательность диагностики в продакшене

Диагностика сбоя от доказательств до ответа

1
1. Определите ожидаемое утверждение
Запишите ожидаемый ответ, допустимую неопределённость и доказательства, которые бы его обосновали.
2
2. Проверьте покрытие источников
Убедитесь, что авторитетные и разрешённые доказательства существуют в проиндексированном или доступном наборе источников.
3
3. Запустите тест с оракульным контекстом
Предоставьте генератору достаточные эталонные доказательства напрямую и посмотрите, станет ли ответ правильным.
4
4. Изучите поисковый запрос
Проверьте переформулировки, сущности, фильтры, язык, временные ограничения, декомпозицию и скрытые допущения.
5
5. Изучите кандидатов до переранжирования
Определите, были ли релевантные доказательства вообще найдены, и зафиксируйте их ранг.
6
6. Изучите ранжирование и сборку контекста
Проверьте переранжирование, фильтры метаданных, усечение, границы чанков, дубликаты, конфликты и состав top-k.
7
7. Оценивайте генерацию и цитирование отдельно
Измеряйте правильность ответа, полноту, достоверность и подтверждение доказательствами на уровне утверждений.
8
8. Проверьте границы применимости
Проверьте, меняют ли ответ версия, дата, состояние, юрисдикция, разрешения или замещающие доказательства.

Не меняйте три слоя одновременно

Распространённая ошибка отладки — менять эмбеддинги, размеры чанков, top-k, промпты и модель за одну итерацию. Если оценка улучшается, вы не знаете почему. Если ухудшается, вы не знаете, какое изменение вызвало регрессию.

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

Матрица сбоев для типичных симптомов RAG

СимптомНаиболее вероятные слои для первоочередной проверкиРазличающий тест
Релевантный источник не появляетсяПокрытие источников → Запрос → Поиск кандидатовВручную поищите в корпусе, затем изучите переформулированный запрос и нефильтрованных кандидатов
Релевантный источник появляется, но ответ неверныйСборка контекста → ГенерацияТест с оракульным контекстом с тем же источником, сокращённым до решающих фрагментов
Ответ иногда правильный, иногда неправильныйРанжирование → Сборка контекста → Вариативность генерацииПовторяйте испытания, регистрируя найденный набор, ранг, контекст промпта и вывод модели
Ответ ссылается на правильный документ, но преувеличивает егоГенерация → Атрибуция доказательств → ПрименимостьОценивайте каждое утверждение по точному цитируемому фрагменту
Старая информация постоянно побеждаетРанжирование → Применимость/актуальностьСравните с правилами актуальности/замещения и изучите метаданные
Ответ упускает исключениеЧанкинг → Сборка контекстаПроверьте, были ли правило и исключение разделены или усечены
Увеличение top-k ухудшает качествоРанжирование → Перегрузка контекстаИсключите малоценные чанки и сравните с минимальным набором доказательств
Смена модели исправляет ответГенерация, но не обязательно поискПовторите с идентичным найденным контекстом для разных моделей
Смена эмбеддингов исправляет ответПоиск/ранжированиеСохраняйте генератор и шаблон контекста неизменными, сравнивая полноту кандидатов

Измеряйте каждый слой метрикой, на которую он действительно может влиять

СлойПолезные измеренияЧто не следует выводить
Покрытие источниковДоля вопросов с возможным ответом, покрытие корпуса, полнота приёмаНе вините эмбеддинги в отсутствии исходного материала
Поиск кандидатовRecall@k, доля попаданий, покрытие контекстаВысокий recall не доказывает качество ранжирования
РанжированиеMRR, NDCG, ранг эталона, precision@kХорошее ранжирование не доказывает, что генератор использовал доказательства
Сборка контекстаСохранение доказательств, дублирование, доля противоречий, использование токеновБольшой контекст не означает полезный контекст
ГенерацияПравильность, полнота, успех задачи, достоверностьПравильность сама по себе не доказывает обоснованность
Атрибуция доказательствТочность цитирования, покрытие цитирования, подтверждение утвержденийКоличество цитат — это не качество доказательств
ПрименимостьАктуальность, точность замещения, соответствие версии/юрисдикцииРелевантные доказательства не всегда применимы

Правильный ответ всё ещё может скрывать дефект RAG

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

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

Используйте конкурирующие гипотезы, а не любимое объяснение

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

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

Что изменило бы этот ответ?

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

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

Ограничения

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

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

Заключение

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

Практическое правило простое: заменяйте неопределённость контролируемыми доказательствами слой за слоем. Начните с теста с оракульным контекстом. Отделите оценку только поиска от оценки генерации. Сохраняйте полную трассировку. Затем исправьте компонент, который действительно дал сбой, вместо настройки всего стека RAG по интуиции.

Часто задаваемые вопросы

Диагностика сбоев RAG

Как понять, что дало сбой: поиск RAG или LLM?

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

Может ли RAG дать сбой, даже если правильный документ был извлечён?

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

Достаточно ли правильности ответа для оценки системы RAG?

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

Что следует логировать при отладке RAG?

Как минимум логируйте запрос пользователя, преобразованный поисковый запрос, фильтры, документы-кандидаты и их ранги, итоговый выбранный контекст, версию модели и промпта, ответ, цитаты, версию корпуса/индекса, а также метаданные о времени или версии, относящиеся к актуальности.

Обычно ли увеличение top-k исправляет RAG?

Не надёжно. Больший набор кандидатов или контекста может улучшить полноту, но также может добавить шум, противоречия, дубликаты и перегрузку контекста. Проверьте, не отсутствуют ли релевантные доказательства, прежде чем увеличивать top-k.

Глоссарий

Ключевые диагностические термины

Тест с оракульным контекстом
Контролируемый тест, в котором генератору напрямую дают заведомо достаточные доказательства, чтобы определить, находится ли доминирующий сбой выше по потоку от генерации.
Поиск кандидатов
Этап, на котором выбирается начальный набор потенциально релевантных документов, чанков, записей или фрагментов до окончательного ранжирования или сборки контекста.
Сборка контекста
Процесс преобразования извлечённых доказательств в фактический вход модели, включая порядок, усечение, дедупликацию, форматирование и решения о бюджете токенов.
Верность
Степень, в которой сгенерированные утверждения остаются подтверждёнными извлечёнными или предоставленными доказательствами, а не вводят неподтверждённое содержание.
Покрытие контекста
Ориентированная на поиск мера того, покрывают ли выбранные доказательства информацию, необходимую для ответа на вопрос.
Граница применимости
Условия, при которых утверждение или ответ остаётся применимым, например время, версия, юрисдикция, состояние, популяция, разрешения или допущения об источнике.

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

OpenAI — Оптимизация точности LLM

Рекомендации OpenAI по разделению сбоев поиска и сбоев LLM в приложениях RAG.

OpenAI — Лучшие практики оценки

Руководство по структурированной оценке для вариативных ИИ-систем и проектированию тестов, ориентированных на продакшен.

Amazon Bedrock — Метрики оценки RAG

Документация, разделяющая метрики только поиска и метрики поиска с генерацией, включая релевантность контекста, покрытие, достоверность и метрики цитирования.

Anthropic — Демистификация оценок для ИИ-агентов

Практическое руководство по оценке задач, испытаний, оценщиков, трассировок, регрессий и поведения в продакшене.

Google Cloud — Генерация с дополненной выборкой

Обзор архитектуры RAG и важности релевантной выборки и обоснованной генерации.

Related Articles

Исчерпывающее руководство по Evaluation Harness: освоение оценки производительности LLM

Исчерпывающее руководство по Evaluation Harness: освоение оценки производительности LLM

Это руководство содержит подробный обзор Evaluation Harness — важного фреймворка для строгой оценки возможностей больших языковых моделей (LLM) в корпоративных конвейерах LLMOps. Узнайте о настройке, лучших практиках и продвинутых методах для обеспечения надежного бенчмаркинга и оптимизации моделей.

Управляемая обвязка агента против self-hosted цикла агента: что вы приобретаете, что теряете

Управляемая обвязка агента против self-hosted цикла агента: что вы приобретаете, что теряете

“Self-hosted агент” может означать совершенно разные архитектуры. Это руководство разделяет управляемую обвязку, self-hosted среду выполнения и полностью самостоятельно управляемый цикл агента — и показывает, какая граница контроля на самом деле нужна командам.

Освоение рабочего процесса SEO: Основные стратегии оптимизации для органического роста

Освоение рабочего процесса SEO: Основные стратегии оптимизации для органического роста

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

Память ИИ-агента — это не RAG: как разграничить память, извлечение, состояние и контекст

Память ИИ-агента — это не RAG: как разграничить память, извлечение, состояние и контекст

Память агента, RAG, состояние и контекст часто используются так, будто они взаимозаменяемы. Это не так. Эта практическая архитектурная модель разделяет четыре уровня, показывает, где место каждого из них, и объясняет, что ломается, когда системы объединяют их в одно целое.

Что такое RAG? Самое простое объяснение того, как это работает

Что такое RAG? Самое простое объяснение того, как это работает

RAG звучит сложно, но идея проста: прежде чем ИИ ответит, он сначала находит полезную информацию из источника знаний и передаёт эту информацию языковой модели. В этом руководстве объясняются RAG, LLM, состояние, память и инструменты с помощью одной простой ментальной модели.

Агенты для управления компьютером: почему успешная демонстрация всё ещё может быть ненадёжной системой

Агенты для управления компьютером: почему успешная демонстрация всё ещё может быть ненадёжной системой

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

Надёжность ИИ-агентов: почему финального ответа недостаточно

Надёжность ИИ-агентов: почему финального ответа недостаточно

Правильный вывод не доказывает правильность рассуждений, безопасность выполнения или надежность системы.

Ollama — это не продукт: создание готовых к продакшену приложений на базе открытых LLM

Ollama — это не продукт: создание готовых к продакшену приложений на базе открытых LLM

Запустить локальную модель с Ollama просто. Создать готовое к продакшену Open-LLM-приложение сложнее: для этого требуются RAG, контроль доступа, абстракция провайдеров, оценка, логирование, дисциплина развертывания и контролируемый уровень приложения вокруг модели.