3,583 papers
arXiv:2509.03787 77 4 сент. 2025 г. FREE

RAG под атакой: как вредоносные документы ломают ответы LLM в медицинских вопросах

КЛЮЧЕВАЯ СУТЬ
Обнаружено: RAG-системы слепо доверяют контексту — один adversarial документ обрушивает точность GPT-4 с 93% до 4%, даже если модель знает правильный ответ. Исследование позволяет защитить RAG от дезинформации в критичных областях (медицина, право, финансы), где цена ошибки высока. Один проверенный источник в контексте создаёт «якорь правды» — модель сверяет информацию и выбирает надёжный источник, даже если adversarial контент убедительнее и естественнее. Устойчивость возвращается к 93-98% при правильном составе контекста.
Адаптировать под запрос

TL;DR

RAG-системы поглощают дезинформацию из контекста — даже если модель обучена отвечать правильно, вредоносный документ в контексте заставляет её выдать неверный ответ. Исследователи проверили это на медицинских вопросах (COVID-19 и общее здоровье), где цена ошибки высока. Тестировали GPT-4.1, GPT-5, Claude 3.5 Haiku и open-source модели с разными типами документов: полезные (helpful — правдивые), вредные (harmful — дезинформация) и adversarial (специально созданные для обмана моделей).

Главная находка: С полезным документом модель отвечает правильно в 93-98% случаев. С вредным — точность падает до 32-44%. С adversarial документом типа "Liar" (сгенерирован с нуля под ложную позицию) — точность коллапсирует до 0-4%. Формулировка вопроса усиливает эффект: если вопрос содержит неявные предположения ("Мой врач сказал X работает, как это работает?"), модель ещё более уязвима к дезинформации. Нейтральный вопрос ("Работает ли X?") даёт среднюю устойчивость, а вопрос с противоположным предположением ("Я слышал X работает, но не верю — правильно?") максимально дестабилизирует модель.

Хорошая новость: один полезный документ в контексте резко повышает устойчивость, даже если рядом есть adversarial. Порядок документов почти не важен — главное, ЧТО в контексте, а не ГДЕ. Состав пула критичен: если ранкер загружает 8-9 adversarial сегментов из 10, точность падает до 13-24%. Если пул смещён к полезным (8 полезных + 2 вредных) — точность близка к 100%. Неожиданность: модели устойчивее к COVID-дезинформации, чем к общим медицинским вопросам — видимо, post-training alignment фокусировался на хайповых темах, а менее известные области здоровья остались слепым пятном.

📌

Схема исследования

Это не метод промптинга, а систематическое тестирование уязвимостей RAG в медицинском домене:

ДАТАСЕТ: TREC 2020/2021 Health Misinformation Tracks
→ 49 запросов (22 про COVID-19, 27 про общее здоровье)
→ Каждый запрос + документы с разметкой: helpful / harmful

ADVERSARIAL ДОКУМЕНТЫ (6 типов):
→ Liar: сгенерирован с нуля под ложную позицию
→ FSAP-IntraQ: few-shot на harmful примерах из того же запроса
→ FSAP-InterQ: few-shot на harmful из других запросов
→ Fact-Inversion: перевернули факты из helpful документов
→ Paraphraser: перефразировка harmful
→ Rewriter: переписал harmful

ФОРМУЛИРОВКИ ВОПРОСОВ (3 типа):
→ Consistent: предположение согласуется с правдой
→ Neutral: оригинальный вопрос без обрамления
→ Inconsistent: предположение противоречит правде

СЕТАПЫ:
1. Single-document: один документ в контексте
2. Paired-document: полезный + вредный (разный порядок)
3. Passage-based pooling: топ-10 сегментов от MonoT5 ранкера
4. Bias-controlled pooling: пулы смещены к helpful или harmful

МЕТРИКА: Ground-Truth Alignment (%)
→ Совпадает ли позиция ответа с ground truth
🚀

Применение принципов

Исследование не даёт готовый промпт, но показывает как работать с контекстом в RAG безопасно.

📌

Принцип 1: Всегда загружай проверенные источники

Задача: Клиент прислал текст с рекомендацией "пить соду от изжоги". Ты консультант по здоровью, нужно ответить — работает ли это.

Применение:

  1. Не полагайся только на знания модели
  2. Загрузи в контекст надёжный источник (статья из клиники Мейо, WebMD, российский Минздрав)
  3. Даже если в контексте есть сомнительный текст от клиента, один проверенный источник резко повышает точность ответа

Промпт:

[Загружаешь текст клиента + статью из надёжного источника]

Проанализируй эффективность соды от изжоги. 
В контексте есть рекомендация от клиента и медицинская статья.
Основывайся на проверенных данных.

Результат: Модель проигнорирует сомнительные утверждения клиента и выдаст ответ на основе медицинской статьи — даже если текст клиента длиннее и убедительнее.

📌

Принцип 2: Формулируй вопросы нейтрально

Задача: Проверяешь бизнес-гипотезу: "NFT-маркетплейс для российских художников — перспективно?"

Плохая формулировка (inconsistent query, если ground truth = "неперспективно"):

Мой партнёр уверен, что NFT-маркетплейс для российских художников — 
это прорыв. Как лучше запустить и масштабировать?

→ Встроенное предположение о перспективности повышает риск, что модель поддержит ошибочную позицию, даже если контекст содержит данные против.

Хорошая формулировка (neutral query):

Оцени перспективы NFT-маркетплейса для российских художников. 
Какие риски и возможности?

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

📌

Принцип 3: Состав контекста важнее порядка

Задача: Готовишь аналитику "влияние ИИ на рынок труда в России". У тебя 5 статей: 3 оптимистичные, 2 пессимистичные.

Не парься о порядке:

[Загружаешь все 5 статей в любом порядке]

Проанализируй влияние ИИ на рынок труда в России на основе этих статей.

Важно:

  • Не тратьте время на "оптимальный порядок" источников — порядок почти не влияет
  • Фокус на качестве источников: лучше 3 проверенных + 1 сомнительный, чем 4 сомнительных
  • Если есть надёжный источник — модель устойчива, даже если adversarial контент рядом

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

🧠

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

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

Сильная сторона LLM: Модели хорошо взвешивают источники, если есть противоречивый контекст. Один надёжный документ создаёт "якорь правды" — модель видит расхождение между helpful и harmful контентом и склоняется к более авторитетному. Порядок почти не влияет, потому что модель обрабатывает весь контекст одновременно (attention mechanism), а не последовательно.

Как метод использует это: Загрузка проверенных источников в контекст создаёт "иммунитет" к дезинформации. Даже если adversarial документ естественнее и длиннее, присутствие helpful документа заставляет модель сверять информацию и выбирать правдивую позицию. Нейтральная формулировка вопроса убирает когнитивное давление — модель не пытается подтвердить предположение в вопросе, а оценивает контекст объективно.

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

  • Соотношение helpful/harmful в контексте: 8 полезных + 2 вредных = почти 100% точность. 2 полезных + 8 вредных = точность падает до 13-44%. Чем больше проверенных источников — тем выше устойчивость.
  • Формулировка вопроса: Consistent query (предположение согласуется с правдой) даёт +10-20% к точности. Inconsistent query (противоречит правде) снижает на 20-40%. Neutral query — баланс.
  • Тип adversarial контента: Liar (сгенерирован с нуля) опаснее всего, Paraphraser/Rewriter (переписанный harmful) — слабее. Знай врага: естественно-выглядящая дезинформация без шаблонов опаснее грубых фейков.
⚠️

Ограничения

⚠️ Специфичный домен: Исследование сфокусировано на медицинских вопросах. В других доменах (финансы, право, маркетинг) паттерны могут отличаться — там меньше post-training alignment против дезинформации.

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

⚠️ Модели обучены неравномерно: COVID-19 темы защищены лучше, чем общие медицинские вопросы. Хайповые темы (политика, эпидемии) получают больше alignment, нишевые области (народная медицина, альтернативные методы) — слабее. Будь осторожен в нишах.

⚠️ Формулировка вопроса — тонкая настройка: Inconsistent query снижает точность на 20-60%, но граница между "нейтральным" и "inconsistent" размыта. Если случайно встроил предположение в вопрос — уже повысил риск ошибки.

🔍

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

Команда взяла 49 медицинских вопросов из TREC 2020/2021 Health Misinformation Tracks — единственные датасеты, где документы размечены не только по релевантности, но и по правдивости. 22 вопроса про COVID-19 ("Может ли пневмококковая вакцина предотвратить COVID?"), 27 — про общее здоровье ("Поможет ли цинк при беременности?"). Каждый вопрос + набор документов: helpful (правдивые, проверенные) и harmful (дезинформация). Документы оценили эксперты по трём критериям: correctness (фактическая точность), credibility (авторитетность источника), usefulness (полезность для ответа).

К этому добавили adversarial документы от Bigdeli et al. — 6 типов атак на каждый helpful документ:

  • Liar: LLM сгенерировал документ с нуля под ложную позицию (без исходного текста) — самый естественный и опасный
  • FSAP-IntraQ/InterQ: few-shot генерация на harmful примерах (из того же запроса или других) — переносит паттерны дезинформации
  • Fact-Inversion: перевернул факты из helpful документов — тонкая подмена
  • Paraphraser/Rewriter: перефразировал или переписал harmful документ — наследует ограничения оригинала

Итого: 193 helpful + 121 harmful + 1158 adversarial для TREC 2020, 229 helpful + 175 harmful + 1374 adversarial для TREC 2021.

Проверили на 6 моделях: GPT-4.1, GPT-5, Claude 3.5 Haiku, DeepSeek-R1-Distill-Qwen-32B, Phi-4, LLaMA-3 8B. Все модели показали одинаковые паттерны — helpful документы резко повышают точность, adversarial ломают даже топовые модели.

Сравнивали 4 сетапа:

  1. Single-document (один документ в контексте) — baseline
  2. Paired-document (helpful + harmful в разном порядке) — порядок почти не влияет
  3. Passage-based pooling (топ-10 сегментов от MonoT5 ранкера) — реалистичный RAG пайплайн, где adversarial доминируют (92-94% пула), точность падает до 13-44%
  4. Bias-controlled pooling (пулы смещены к helpful или harmful) — 8 helpful + 2 harmful = почти 100% точность, 8 harmful + 2 helpful = коллапс

Удивительное: TREC 2020 (COVID) показал на 20-30% выше точность, чем TREC 2021 (общее здоровье). Почему? COVID был хайповой темой — миллионы статей, политическое давление, массовая дезинформация. Post-training alignment фокусировался на популярных угрозах. Менее известные темы (цинк при беременности, утка-тейп от бородавок) остались слепым пятном — модели там слабее защищены. Это показывает, что LLM обучены неравномерно: хайп получает alignment, ниши — нет.

Измеряли Ground-Truth Alignment: совпадает ли позиция ответа с ground truth. Использовали gemini-2.0-flash как внешний классификатор (чтобы не оценивать GPT ответы самим GPT). Проверили надёжность: согласие с gpt-4o-mini = Cohen's Kappa 0.90 (TREC 2020) и 0.82 (TREC 2021) — "почти идеальное" согласие.

Почему результаты получились именно такими: Adversarial документы эффективны, потому что не содержат шаблонных триггеров. Старые атаки (добавление запроса в конец документа, фиксированные injection-промпты) легко детектятся фильтрами. Новые adversarial (особенно Liar) естественны — сгенерированы LLM без ограничений исходного текста, выглядят как обычные статьи. Модели не видят "красных флагов" и поглощают контент. Helpful документ работает как антидот: создаёт противоречие в контексте, модель активирует механизм "проверки источников" и выбирает более авторитетный. Порядок не важен, потому что attention mechanism в трансформерах обрабатывает весь контекст одновременно, а не последовательно — модель "видит" оба документа сразу и взвешивает.

Инсайт для практики: В реальной работе с RAG качество ранкера — узкое место. Если ранкер загружает 9 adversarial сегментов из 10, alignment падает до 13%. Один helpful документ в пуле — уже большой прогресс, но недостаточно против доминирования harmful. Вывод: недостаточно просто "добавить проверенные источники", нужно смещать пул к ним. Если в проекте критична точность (медицина, финансы, право) — вручную курируй пул или используй фильтры на этапе ранкинга, не надейся на post-retrieval коррекцию.

🔗

Ресурсы

Evaluating the Robustness of Retrieval-Augmented Generation to Adversarial Evidence in the Health Domain

  • Исследование: github.com/shakibaam/RAG_ROBUSTNESS_EVAL
  • Adversarial документы: Bigdeli et al. (2024)
  • Датасеты: TREC 2020/2021 Health Misinformation Tracks
  • Авторы: Shakiba Amirshahi, Amin Bigdeli, Charles L. A. Clarke (University of Waterloo), Amira Ghenai (Toronto Metropolitan University)

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

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

Обнаружено: RAG-системы слепо доверяют контексту — один adversarial документ обрушивает точность GPT-4 с 93% до 4%, даже если модель знает правильный ответ. Исследование позволяет защитить RAG от дезинформации в критичных областях (медицина, право, финансы), где цена ошибки высока. Один проверенный источник в контексте создаёт «якорь правды» — модель сверяет информацию и выбирает надёжный источник, даже если adversarial контент убедительнее и естественнее. Устойчивость возвращается к 93-98% при правильном составе контекста.

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

Не надейся на внутренние знания модели — загружай проверенные источники в контекст. С надёжным документом рядом модель устойчива к дезинформации, даже если adversarial документ длиннее и убедительнее. Порядок не важен, важен СОСТАВ: 8 полезных + 2 вредных = почти 100% точности, 2 полезных + 8 вредных = падение до 13-24%. Формулировка вопроса усиливает или ослабляет защиту: нейтральный вопрос («Работает ли X?») даёт среднюю устойчивость, вопрос с предположением («Мой врач сказал X работает, как это работает?») делает модель уязвимее на 20-40%.

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

Модели обучены следовать контексту, а не только базовым знаниям. Если в контексте написано «сода лечит рак» достаточно убедительно, модель повторит это, игнорируя внутренние знания — это сила RAG (обновление без переобучения), но и уязвимость. НО: модели хорошо взвешивают источники при противоречивом контексте. Один надёжный документ создаёт «якорь» — модель видит расхождение между helpful и harmful контентом и склоняется к авторитетному. Attention mechanism обрабатывает весь контекст одновременно, поэтому порядок почти не влияет — главное ЧТО в контексте, а не ГДЕ. Adversarial документ типа Liar (сгенерирован с нуля под ложную позицию) обрушивает точность до 0-4%, потому что он естественно-выглядящий, без шаблонов и грубых фейков — модель не видит красных флагов.

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

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

Мини-рецепт

1. Загружай проверенные источники первым делом: MedLine, клиника Мейо, WebMD для здоровья; официальные базы для права/финансов. Один надёжный источник = защита.
2. Формулируй вопросы нейтрально: не Мой партнёр уверен что X работает, как запустить?, а Оцени перспективы X. Какие риски и возможности?. Убери предположения из вопроса — модель не будет подстраиваться под ложную позицию.
3. Проверяй состав контекста: больше надёжных чем сомнительных. Если ранкер загружает 8-9 сомнительных сегментов из 10 — точность падает до 13%. Если 8 надёжных + 2 сомнительных — близка к 100%.
4. Не парься о порядке: порядок документов почти не влияет. Фокус на качестве источников, не на их расположении.

Примеры

[ПЛОХО] : Клиент прислал текст «пить соду от изжоги помогает», загружаешь только его сообщение в контекст и спрашиваешь Проанализируй эффективность соды от изжоги.
[ХОРОШО] : Загружаешь текст клиента + статью из клиники Мейо (надёжный источник) и спрашиваешь Проанализируй эффективность соды от изжоги на основе этих источников. Основывайся на проверенных данных. Модель проигнорирует сомнительные утверждения клиента и выдаст ответ по медицинской статье — даже если текст клиента длиннее и убедительнее.
Источник: Evaluating the Robustness of Retrieval-Augmented Generation to Adversarial Evidence in the Health Domain
ArXiv ID: 2509.03787 | Сгенерировано: 2026-01-12 02:25

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

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

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