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: Всегда загружай проверенные источники
Задача: Клиент прислал текст с рекомендацией "пить соду от изжоги". Ты консультант по здоровью, нужно ответить — работает ли это.
Применение:
- Не полагайся только на знания модели
- Загрузи в контекст надёжный источник (статья из клиники Мейо, WebMD, российский Минздрав)
- Даже если в контексте есть сомнительный текст от клиента, один проверенный источник резко повышает точность ответа
Промпт:
[Загружаешь текст клиента + статью из надёжного источника]
Проанализируй эффективность соды от изжоги.
В контексте есть рекомендация от клиента и медицинская статья.
Основывайся на проверенных данных.
Результат: Модель проигнорирует сомнительные утверждения клиента и выдаст ответ на основе медицинской статьи — даже если текст клиента длиннее и убедительнее.
Принцип 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 сетапа:
- Single-document (один документ в контексте) — baseline
- Paired-document (helpful + harmful в разном порядке) — порядок почти не влияет
- Passage-based pooling (топ-10 сегментов от MonoT5 ранкера) — реалистичный RAG пайплайн, где adversarial доминируют (92-94% пула), точность падает до 13-44%
- 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)
