3,583 papers
arXiv:2608.22228 74 23 авг. 2026 г. FREE

Cross-Check: двойная проверка контекста ловит подделанные факты, которые не ловит просьба «не отвечай, если не уверена»

КЛЮЧЕВАЯ СУТЬ
Если попросить модель «отвечай только если в документе достаточно информации, иначе молчи» — она отлично справляется, когда информации просто нет. Но если в документе есть информация, только неправильная — модель её радостно озвучивает, причём с высокой уверенностью. Исследователи нашли рабочую альтернативу: спросить модель дважды — без документа и с документом — и сравнить ответы. Если они расходятся, это сигнал не доверять слепо.
Адаптировать под запрос

TL;DR

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

Главная боль: модель — это не детектор лжи, это детектор достаточности. Она спрашивает себя «здесь хватает текста для ответа?», а не «этот текст правдив?». В эксперименте модели, у которых по своим знаниям был правильный ответ в 53–73% случаев, при виде фальшивого, но складно написанного отрывка в 60% случаев просто повторяли подделанный факт слово в слово — и это несмотря на прямую инструкцию «абстенься, если не уверена». Просьба рассуждать шаг за шагом перед ответом (chain-of-thought) почти не помогает — модель также не различает «мало текста» от «текст неверный».

Метод, который реально снижает риск: сравнение двух ответов модели — закрытого (без документа, только по своим знаниям) и открытого (с документом). Если ответы совпадают — можно отвечать. Если конфликтуют — модель должна остановиться и не выбирать документ автоматически. Дополнительно можно попросить модель явно проверить, подтверждает или противоречит каждый фрагмент документа предполагаемому ответу (аналог NLI-проверки из исследования).


🔬

Схема метода

ШАГ 1 (отдельный запрос): Задай модели вопрос БЕЗ документа → получи «ответ по памяти»
ШАГ 2 (отдельный запрос): Дай модели документ и тот же вопрос → получи «ответ по документу»
ШАГ 3 (в чате, третий запрос): Покажи модели оба ответа → попроси сравнить:
    — Совпадают → можно доверять ответу из документа
    — Расходятся → попроси модель явно объяснить конфликт, процитировать спорный фрагмент документа и не принимать его на веру автоматически

Все три шага можно сделать вручную в одном диалоге с ChatGPT/Claude — без API и кода.


🚀

Пример применения

Задача: Вы — юрист или предприниматель, вам прислали скан договора поставки (возможно, отредактированный второй стороной), и вы хотите быстро узнать сумму долга через ИИ, не перечитывая весь текст.

Промпт (шаг 1, без документа):

Не смотри пока никакие файлы. Просто по общим знаниям о типовых договорах поставки: 
какая сумма обычно фигурирует в договорах такого типа между ООО «Ромашка» и ООО «Вектор» 
за поставку партии из 500 единиц товара X? Дай ориентировочную оценку, если не знаешь точно — скажи, что не знаешь.

Промпт (шаг 2, с документом):

Вот текст договора: {текст договора}
Вопрос: какая сумма долга указана в договоре?

Промпт (шаг 3, сравнение):

Вот два ответа на один вопрос:
Ответ без документа: {ответ 1}
Ответ по документу: {ответ 2}

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

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


🧠

Почему это работает

LLM отвечает на вопрос «хватает ли текста, чтобы ответить», а не «правда ли то, что написано». Это разные проверки: первая — про объём и релевантность, вторая — про факт-чекинг. Инструкция «абстенься, если контекст недостаточен» ловит только первую проблему.

При этом у модели часто есть свои знания (парametрическая память), которые могли бы поймать ошибку — в эксперименте это подтвердилось: без документа модели отвечали правильно в 53–73% случаев. Но когда документ выглядит складно и релевантно, модель выбирает доверять тексту, а не своей памяти — даже если текст врёт.

Метод cross-check использует именно эту сильную сторону — собственные знания модели — как независимый источник для сверки. Вместо того чтобы просить модель угадать, врёт ли документ (что она делает плохо), мы даём ей два независимых мнения и просим сравнить их — что она делает намного увереннее.

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


📋

Шаблон промпта

Я дам тебе вопрос и документ. Прежде чем отвечать по документу, сделай так:

1. Сначала ответь на вопрос {вопрос}, используя только свои общие знания, 
   без документа. Если не уверен — прямо скажи, что не уверен.

2. Теперь посмотри документ: {документ}. Ответь на тот же вопрос {вопрос}, 
   используя только документ.

3. Сравни два своих ответа:
   - Если они совпадают или близки — дай финальный ответ на основе документа.
   - Если они расходятся — не выбирай автоматически ответ из документа. 
     Процитируй конкретный фрагмент документа, который поддерживает его ответ, 
     и явно укажи: "ВНИМАНИЕ: ответ по документу расходится с моими общими знаниями, 
     возможна ошибка или искажение в документе".

🚀 Быстрый старт — вставь в чат:

Вот шаблон двойной проверки контекста (Cross-Check). Адаптируй под мою задачу: {твоя задача}.
Задавай вопросы, чтобы заполнить поля.

[вставить шаблон выше]

LLM спросит, какой у вас документ и какой вопрос нужно проверить — потому что без конкретного текста и вопроса невозможно построить сравнение «знание по памяти vs знание по документу».


⚠️

Ограничения

⚠️ Не спасает, когда память и документ согласны на одной и той же ошибке: если у модели самой неверные знания (или устаревшие), а документ подтверждает эту же ошибку — cross-check не сработает, оба «мнения» совпадут на неправильном ответе.

⚠️ Chain-of-thought почти не помогает: просьба «сначала подумай, достаточно ли информации» даёт лишь небольшое улучшение — рассуждение о достаточности не равно рассуждению о правдивости.

⚠️ Цена за безопасность — потеря покрытия: более строгая проверка (аналог NLI-верификатора из исследования) заметно снижает число ложных ответов, но при этом модель начинает отказываться отвечать и на многие вопросы, где документ был верным. Баланс придётся настраивать под свою задачу.

⚠️ Требует лишних запросов: метод предполагает минимум 2-3 обращения к модели вместо одного — для быстрых бытовых задач это может быть избыточно.


🔍

Как исследовали

Исследователи взяли три небольшие модели (3.8–8 млрд параметров: Phi-4-mini, Llama-3.1-8B, Qwen2.5-7B) и прогнали одни и те же вопросы из Natural Questions и HotpotQA через четыре версии контекста: полностью верный, частично разбавленный, полностью отсутствующий и специально подделанный — где в правильный отрывок вручную заменили ключевой факт (например, имя певицы) на правдоподобный, но неверный.

Идея была простой: если абстеншен реально ловит недостоверность, модель должна молчать одинаково часто и при отсутствии контекста, и при подделанном контексте. Результат оказался обратным: при полном отсутствии информации модели молчали почти всегда (0–3% ответов), а при подделанном, но складно написанном контексте — отвечали в 14–74% случаев, в зависимости от модели и промпта.

Что удивило: даже добавление рассуждения перед ответом (chain-of-thought) почти не изменило картину. А два-проходная проверка (сравнение ответа с документом и без него) сработала намного лучше простых инструкций — но и она давала сбой, когда собственная память модели ошибалась вместе с документом.


🔗

Ресурсы

Prompt-Based Abstention Fails Under Misleading Context: A Controlled Study of Small Frozen RAG Models — Yohanes Andre Setiawan, Georgia Institute of Technology. Бенчмарк называется GRAB-RAG (Graded Abstention Benchmark for Retrieval-Augmented Generation).


📖 Простыми словами

Prompt-Based Abstention Fails Under Misleading Context: A Controlled Study of Small Frozen RAGModels

arXiv: 2608.22228

LLM в связке с поиском не умеет в фактчекинг через банальный промпт. Если скомандовать «молчи, если инфы нет», она честно заткнётся при пустом поиске, но с удовольствием скормит тебе откровенную дезинформацию, если та лежит в документе. Модель оценивает наличие текста, а не его истинность. Для неё любой бред из контекста сразу становится абсолютной истиной.

Это как нанять стажёра и строго сказать: «не уверен — не лезь». Если на столе пусто, он молчит. Но если шутник подложит ему липовый отчёт, стажёр с умным видом пойдёт исполнять чушь на совете директоров. Формально парень прав — данные ведь были в папке, но бизнес влетел на полный провал.

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

Проверяли на малых моделях, но проблема везде одинаковая. Анализ договоров, финансовые выписки, корпоративные вики — везде, где есть риск нарваться на отравленный контекст. Без перекрёстной сверки любой RAG-пайплайн слепо доверяет внешнему файлу и превращается в дыру в безопасности.

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

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с