3,583 papers
arXiv:2512.07015 78 7 дек. 2025 г. FREE

FVA-RAG: активный поиск опровергающих фактов через "kill queries"

КЛЮЧЕВАЯ СУТЬ
Стандартный RAG подхалимничает. Спросишь "какая польза от поедания стекла?" — найдёт сатирические статьи и мифы, которые LLM воспримет как доказательство. Причина: семантический поиск ищет близость к вопросу, а не истинность. FVA-RAG решает это через активный поиск противоречий. Первый ответ модели становится черновой гипотезой, которую система пытается опровергнуть. Модель генерирует kill queries (запросы-убийцы) — поисковые фразы, нацеленные на противоречащие доказательства. Не "найди похожее", а "найди противоположное".
Адаптировать под запрос

TL;DR

FVA-RAG (Falsification-Verification Alignment RAG) — техника, которая превращает проверку фактов в охоту за опровержениями. Вместо поиска подтверждений модель генерирует "kill queries" (запросы-убийцы) — специальные поисковые фразы, нацеленные на противоречащие доказательства. Первый ответ модели становится черновой гипотезой, которую система пытается опровергнуть, а не подтвердить.

Стандартные RAG-системы страдают retrieval sycophancy (подхалимаж при поиске) — если пользователь спрашивает с ложной предпосылкой, поисковик находит документы, поддерживающие эту ложь. Спросите "какая польза от поедания стекла?" — система найдёт сатирические статьи, мифы или метафоры, которые LLM воспримет как подтверждение. Причина: семантический поиск оптимизирует близость, а не истинность. Retriever ищет слова "польза", "еда", "стекло" — и находит то, что семантически похоже на вопрос, даже если фактически неверно.

FVA-RAG работает в 3 фазы: (1) генерация черновика через обычный RAG, (2) Falsification Loop — агент-фальсификатор разбивает черновик на атомарные утверждения и для каждого создаёт query, ищущий опровержение, собирает "анти-контекст", (3) Dual-verification — арбитр сравнивает черновик с противоречащими доказательствами и либо оставляет ответ, либо исправляет с объяснением.


🔬

Схема метода

ФАЗА 1: Черновая гипотеза
User Query → Стандартный поиск → Draft Answer

ФАЗА 2: Falsification Loop  
Draft Answer → Разбивка на атомарные утверждения [c₁, c₂, ..., cₙ]
Для каждого cᵢ → Генерация "kill query" (логическое отрицание)
Kill Queries → Adversarial Retrieval → Anti-Context (противоречащие документы)

ФАЗА 3: Dual-Verification
Арбитр сравнивает Draft + Anti-Context
→ Если противоречий < порог: оставить Draft
→ Если противоречий ≥ порог: исправить + показать Chain-of-Thought

Все 3 фазы требуют отдельных запросов — это workflow, не один промпт.


🚀

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

Задача: Вы пишете статью про SMM и проверяете распространённый миф: "Чем больше постов в неделю, тем выше охват в соцсетях."

Промпт (Фаза 1 — черновик):

Объясни, почему частая публикация постов в соцсетях (7+ в неделю) 
увеличивает органический охват. Приведи механику алгоритмов.

Промпт (Фаза 2 — фальсификация):

Возьми это утверждение: "Частая публикация (7+ постов в неделю) 
увеличивает органический охват."

Разбей на атомарные утверждения. Для каждого сгенерируй 
"kill query" — поисковую фразу, которая найдёт ОПРОВЕРЖЕНИЯ.

Формат kill query:
- Если утверждение говорит "X увеличивает Y" → ищи "X снижает Y" или "X не влияет на Y"
- Если утверждение говорит "X безопасно" → ищи "X риски" или "X побочные эффекты"
- Если утверждение говорит "X всегда работает" → ищи "когда X не работает" или "исключения для X"

Выдай список kill queries.

Промпт (Фаза 3 — верификация):

Черновой ответ утверждал: [вставить Draft из Фазы 1]

Kill queries нашли противоречащие факты:
- "Алгоритмы Instagram снижают охват при частых постах низкого качества"
- "Частота публикаций не влияет на охват, если engagement rate падает"
- "Оптимум для большинства брендов — 3-4 поста в неделю"

Сравни черновой ответ с этими фактами. Если есть противоречия — 
исправь ответ и объясни, что изменилось и почему.

Результат:

Модель выдаст исправленный ответ с Chain-of-Thought объяснением: покажет, что исходное утверждение было упрощением, какие факты его опровергают (алгоритмы штрафуют за частоту без качества), и как правильно сформулировать (частота работает только при высоком engagement). Вы увидите прозрачную логику: "Черновик говорил X, но анти-контекст показал Y, поэтому правильный ответ — Z."


🧠

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

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

LLM хорошо генерирует логические отрицания. Модель может взять утверждение "X увеличивает Y" и сформулировать kill query "X снижает Y" или "X не влияет на Y". Это переворачивает задачу поиска: вместо "найди похожее" мы говорим "найди противоположное".

Adversarial retrieval создаёт диалектическое напряжение. Когда модель видит два конфликтующих набора фактов (Draft Context + Anti-Context), она вынуждена явно взвесить доказательства. Это обходит режим "подтверждения гипотезы" и активирует режим "критической оценки". Метод заимствует логику Поппера: гипотезу нельзя доказать, можно только не суметь опровергнуть.

Рычаги управления:

  • Порог противоречий (τ) — можете поменять: низкий порог (строже, больше исправлений), высокий порог (либеральнее, меньше ложных тревог)
  • Инструкции для kill queries — добавьте специфику: "ищи научные опровержения", "ищи статистику против", "ищи кейсы провала"
  • Формат Chain-of-Thought — уберите CoT, если нужен только финальный ответ без объяснений
  • Количество атомарных утверждений — для простых задач можно не разбивать, а сразу генерировать kill query для всего утверждения

📋

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

📌

Фаза 1: Черновая гипотеза

{ваш_исходный_запрос}
📌

Фаза 2: Генерация kill queries

Возьми это утверждение: "{утверждение_из_черновика}"

Разбей на атомарные утверждения (если сложное). Для каждого 
сгенерируй "kill query" — поисковую фразу, которая найдёт ОПРОВЕРЖЕНИЯ.

Правила генерации kill query:
- "X увеличивает Y" → "X снижает Y", "X не влияет на Y"
- "X безопасно" → "X риски", "X побочные эффекты", "X failed safety"
- "X всегда работает" → "когда X не работает", "исключения для X"
- "Все эксперты согласны с X" → "эксперты критикуют X", "споры вокруг X"

Выдай список kill queries.

Пояснение: В {утверждение_из_черновика} подставьте ключевое утверждение из первого ответа. Если ответ сложный — модель сама разобьёт на части.

📌

Фаза 3: Dual-Verification

Черновой ответ утверждал: {Draft_Answer}

Kill queries нашли противоречащие факты:
{Anti-Context — результаты поиска по kill queries}

Сравни черновой ответ с этими фактами. 

Если противоречий < {порог_уверенности}, подтверди черновик.
Если противоречий ≥ {порог_уверенности}, исправь ответ.

Формат вывода:
1. Статус: [Подтверждён / Исправлен]
2. Логика: "Черновик утверждал X. Анти-контекст показал Y. Вывод: Z."
3. Финальный ответ

Пояснение: - {Draft_Answer} — ответ из Фазы 1 - {Anti-Context} — результаты поиска по kill queries (вручную или через поисковик) - {порог_уверенности} — "значительных", "убедительных", "множественных" (словесно, не числом)


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

Вот техника FVA-RAG для проверки фактов через поиск опровержений. 
Адаптируй под мою задачу: [твоя задача]. 

Задавай вопросы, чтобы понять:
- Какое утверждение проверяем?
- Какие kill queries сгенерировать?
- Где искать анти-контекст?

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

LLM спросит какое утверждение проверять и где искать противоречия — потому что метод требует adversarial retrieval. Она возьмёт логику генерации kill queries из шаблона и адаптирует под вашу задачу.


⚠️

Ограничения

⚠️ Двойные затраты на поиск: Метод требует минимум 3 запроса (черновик → kill queries → верификация) и двух раундов поиска информации. Для задач реального времени это медленно.

⚠️ Зависимость от качества поиска: Если Anti-Context содержит слабые опровержения (форумы, мнения дилетантов), арбитр может неверно скорректировать правильный черновик. Метод работает только если источники противоречий авторитетны.

⚠️ Не для всех задач: FVA-RAG нацелен на фактологические утверждения. Для субъективных вопросов (оценка креатива, личные предпочтения) "опровержение" бессмысленно — нет объективной истины.

⚠️ Искусственное завышение конфликта: В исследовании использовали "Sycophantic Generator" (модель, специально подтверждающую ложные предпосылки) для стресс-теста. На современных aligned моделях (GPT-4, Claude) естественный уровень галлюцинаций ниже, поэтому Intervention Rate 45% не означает, что в половине случаев обычная модель врёт. Это показатель эффективности коррекции при наличии галлюцинации.


🔍

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

Исследователи создали Red Teaming Stress Test на базе TruthfulQA — набора вопросов с распространёнными заблуждениями (медицина, суеверия, мифы). Фокус на high-stakes ошибки — те, где галлюцинация может навредить (медицинские советы, опасные процедуры).

Хитрость эксперимента: Современные модели (GPT-4) обучены для безопасности, естественный уровень галлюцинаций низкий. Чтобы реально проверить силу Falsification Loop, исследователи использовали Sycophantic Generator — baseline-модель, явно проинструктированную подтверждать предпосылки пользователя вместо фактов. Это worst-case сценарий: модель активно пытается поддержать ложь.

Протестировали на N=20 adversarial queries (вопросы-ловушки с ложными предпосылками). Измеряли Intervention Rate — процент случаев, когда Adjudicator успешно выявил ложь в черновике и перезаписал ответ на основе Anti-Context.

Результат: Intervention Rate 45% — в половине случаев, где модель пыталась поддержать заведомую ложь, Adversarial Verification нашла опровержение и исправила ответ. Особенно сильно в медицине (50%) — там где цена ошибки высока: пример с дефибрилляцией при асистолии (черновик предложил опасную процедуру из фильмов, kill query нашёл медицинские гайдлайны "только CPR", финальный ответ исправлен). Слабее в суевериях (37.5%) — там сложнее найти авторитетные опровержения.

Почему это важно: Метод доказал, что можно восстановиться даже от злонамеренной галлюцинации. Если Falsification Loop работает на "враждебной" модели, на обычной aligned модели он будет ещё эффективнее как страховка от редких, но критичных ошибок.


💡

Адаптации и экстраполяции

📌

🔧 Техника: Упрощение для одного запроса → экономия времени

Если 3 фазы слишком сложны, можно свернуть в один промпт:

Задача: {ваш_запрос}

Шаг 1: Дай предварительный ответ.

Шаг 2: Сгенерируй 3 "kill queries" — поисковые фразы, которые 
найдут ОПРОВЕРЖЕНИЯ твоего ответа. Представь, что ты адвокат 
противоположной стороны.

Шаг 3: Предположи, что эти kill queries нашли противоречащие факты. 
Скорректируй свой ответ с учётом возможных опровержений.

Покажи все 3 шага в выводе.

Эффект: Модель симулирует adversarial thinking внутренне, без реального поиска. Слабее чем полный FVA-RAG (нет реальных Anti-Context документов), но быстрее и подходит для задач где важна самокритика, а не доступ к внешним фактам.


📌

🔧 Техника: Kill queries для креатива → острее критика

Метод работает не только для фактов. Адаптируем для оценки идей:

Идея: {ваша_бизнес-идея / концепция / решение}

Сгенерируй 5 "kill questions" — вопросы, которые могут ЗАВАЛИТЬ эту идею:
- Почему это может НЕ сработать?
- Какой сценарий делает это убыточным?
- Какую конкурентную угрозу мы игнорируем?
- Какое критическое допущение может оказаться ложным?
- Какой риск мы недооцениваем?

Затем ответь на каждый kill question честно. Если идея выдерживает — 
оставь как есть. Если нет — предложи модификацию.

Эффект: Превращает LLM из "да-человека" в red team для ваших идей. Это adversarial thinking применённый к креативу, не к фактам.


🔗

Ресурсы

FVA-RAG: Falsification-Verification Alignment for Mitigating Sycophantic Hallucinations | Mayank Ravishankara (Independent Researcher) | Опубликовано как препринт | В работе упоминаются: Self-RAG (Asai et al., 2023), Corrective RAG / CRAG (Yan et al., 2024), AC-RAG (Zhang et al., 2025), SR-DCR (Chen et al., 2025), CF-RAG (Wang et al., 2025), TruthfulQA benchmark (Lin et al., 2022), Popper's The Logic of Scientific Discovery (1959)


📋 Дайджест исследования

Ключевая суть

Стандартный RAG подхалимничает. Спросишь "какая польза от поедания стекла?" — найдёт сатирические статьи и мифы, которые LLM воспримет как доказательство. Причина: семантический поиск ищет близость к вопросу, а не истинность. FVA-RAG решает это через активный поиск противоречий. Первый ответ модели становится черновой гипотезой, которую система пытается опровергнуть. Модель генерирует kill queries (запросы-убийцы) — поисковые фразы, нацеленные на противоречащие доказательства. Не "найди похожее", а "найди противоположное".

Принцип работы

Три фазы проверки вместо одной генерации. Сначала обычный RAG создаёт черновик. Затем Falsification Loop разбивает ответ на атомарные утверждения и для каждого генерирует kill query. Утверждение "X увеличивает Y" превращается в поиск "X снижает Y" или "X не влияет на Y". Третья фаза — арбитр сравнивает черновик с найденными опровержениями и либо подтверждает, либо исправляет ответ с объяснением логики. Это не один промпт, а workflow из трёх запросов.

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

Семантический поиск оптимизирует близость слов, а не правду. Спросите про "пользу частых постов" — retriever найдёт документы со словами "польза", "посты", "охват", даже если они опровергают вашу предпосылку. Kill queries переворачивают задачу: модель генерирует логическое отрицание и ищет именно его. Когда LLM видит два конфликтующих набора фактов (подтверждения + опровержения), она вынуждена явно взвесить доказательства вместо автоматического согласия. Метод заимствует логику Поппера: гипотезу нельзя доказать, можно только не суметь опровергнуть. Результат — Intervention Rate 45%: почти половина проблемных ответов исправляется до выдачи пользователю.

Когда применять

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

Мини-рецепт

1. Черновая гипотеза: Задай исходный запрос, получи первый ответ через стандартный RAG (или без него)
2. Генерация kill queries: Попроси модель взять ключевое утверждение из черновика, разбить на атомарные части (если сложное), и для каждой сгенерировать поисковую фразу, ищущую ОПРОВЕРЖЕНИЕ. Инструкция: "X увеличивает Y" → ищи "X снижает Y" или "X не влияет на Y"
3. Adversarial поиск: Используй kill queries для поиска противоречащих документов (вручную через Google или автоматизировано)
4. Dual-verification: Дай модели черновик + найденные опровержения. Попроси сравнить и либо подтвердить черновик, либо исправить с объяснением Chain-of-Thought — что противоречило, почему изменила ответ

Примеры

[ПЛОХО] : "Объясни, почему частая публикация постов (7+ в неделю) увеличивает органический охват в соцсетях"
[ХОРОШО] : Фаза 1: "Объясни механику: частые посты (7+ в неделю) → рост охвата" Фаза 2: "Возьми утверждение из предыдущего ответа. Сгенерируй kill queries — поисковые фразы для опровержений. Правило: 'X увеличивает Y' → ищи 'X снижает Y' или 'X не влияет на Y'. Выдай список запросов" Фаза 3: "Черновик утверждал: [вставить ответ из Фазы 1]. Kill queries нашли: 'Алгоритмы Instagram штрафуют частые посты низкого качества', 'Оптимум 3-4 поста в неделю'. Сравни факты. Если противоречия значительные — исправь ответ и объясни логику изменений"
Источник: FVA-RAG: Falsification-Verification Alignment for Mitigating Sycophantic Hallucinations
ArXiv ID: 2512.07015 | Сгенерировано: 2026-01-06 00:52

Проблемы LLM

ПроблемаСутьКак обойти
Подхалимаж при поиске (retrieval sycophancy)Семантический поиск в RAG находит документы, ПОХОЖИЕ на запрос. Не проверяет истинность. Спрашиваешь "какая польза от поедания стекла?" — система найдёт сатиру, мифы или метафоры. Модель воспримет как подтверждение. Проблема: если запрос содержит ложную предпосылку, retriever найдёт документы, поддерживающие эту ложь. Работает для любой RAG-системыСначала получи черновой ответ. Потом разверни задачу поиска: генерируй запросы-опровержения (kill queries). "X увеличивает Y" ищи "X снижает Y". Собери противоречащие документы. Сравни черновик с анти-контекстом — модель исправит ошибки

Методы

МетодСуть
Kill queries — генерация поисковых опроверженийВозьми утверждение из черновика. Сгенерируй запрос, который найдёт ПРОТИВОПОЛОЖНОЕ. Правила: "X безопасно" "X риски", "X всегда работает" "когда X не работает", "X увеличивает Y" "X снижает Y". Используй эти фразы для поиска. Почему работает: модель хорошо генерирует логические отрицания. Переворачивает задачу с "найди похожее" на "найди противоположное". Применяй: когда проверяешь факты, медицинские советы, бизнес-гипотезы, распространённые мифы. Не работай: субъективные оценки без объективной истины
Falsification Loop — трёхфазная проверка через опроверженияФаза 1: получи черновой ответ через обычный RAG. Фаза 2: разбей черновик на атомарные утверждения. Для каждого сгенерируй kill query. Найди противоречащие документы (анти-контекст). Фаза 3: сравни черновик с анти-контекстом. Если противоречия сильные — исправь ответ, покажи логику изменений. Почему работает: диалектическое напряжение. Модель видит два конфликтующих набора фактов. Вынуждена явно взвесить доказательства вместо слепого подтверждения. Рычаги: строгость проверки (порог противоречий), глубина разбивки (атомарные vs целые утверждения), формат объяснений (с Chain-of-Thought или без)

Тезисы

ТезисКомментарий
Семантический поиск оптимизирует близость, не истинностьRAG-системы используют векторный поиск: находят документы, семантически похожие на запрос. Если запрос "польза от X", поиск найдёт тексты со словами "польза" и "X" — даже если X вреден. Алгоритм не понимает истинность, только математическую близость эмбеддингов. Причина галлюцинаций в RAG — не генерация модели, а confirmation bias на этапе поиска. Применяй: не доверяй первому результату RAG для спорных утверждений. Проверяй через поиск опровержений
Диалектическое напряжение между фактами активирует критическую оценкуКогда модель видит ДВА конфликтующих набора документов (черновик + анти-контекст), она не может просто подтвердить гипотезу. Вынуждена сравнивать, взвешивать доказательства, объяснять выбор. Это обходит режим "подтверждения" и включает режим "арбитра". Механизм работает через явное противопоставление: не "вот факты", а "вот факты ЗА и ПРОТИВ". Применяй: для любой задачи проверки фактов подавай модели оба набора аргументов, не только подтверждающие
📖 Простыми словами

FVA-RAG: активный поиск опровергающих фактов через "kill queries"

arXiv: 2512.07015

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

Это похоже на то, как если бы ты пришел к адвокату и попросил доказать, что воровать — это законно. Плохой адвокат просто откроет кодекс на нужной странице и вырвет фразы из контекста, чтобы тебя порадовать. Метод FVA-RAG меняет правила игры: он заставляет систему работать как дотошный прокурор, чья единственная цель — развалить твое дело. Вместо того чтобы поддакивать, система берет твое утверждение как черновую гипотезу и начинает целенаправленно искать грязь, которая ее опровергает.

Главная фишка здесь — запросы-убийцы (kill queries). Модель не просто гуглит подтверждение твоим словам, она генерирует специальные поисковые фразы, заточенные на поиск противоречий. Если ты утверждаешь, что «частый постинг повышает охваты», система специально пойдет искать исследования о падении охватов при избытке контента. Это выравнивание через фальсификацию: мы не верим модели на слово, а заставляем ее пройти через жесткий фильтр контраргументов. Если гипотеза выжила после такой атаки — значит, ей можно доверять.

Хотя метод тестировали на проверке фактов, этот принцип — критическое мышление для AI — применим везде. Будь то написание кода, медицинская диагностика или юридический консалтинг, где цена ошибки огромна. Сейчас большинство систем страдает от confirmation bias (предвзятости подтверждения), когда поиск просто зеркалит глупость пользователя. Переход к FVA-RAG означает, что мы перестаем строить эхо-камеры и начинаем создавать инструменты, которые умеют говорить «нет, ты не прав», основываясь на реальных данных, а не на твоих хотелках.

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

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

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

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