TL;DR
Всё, что попадает в промпт, увеличивает вероятность того, что модель воспроизведёт это в ответе — даже если это фактически неверно, даже если это пример "как не надо". Исследователи назвали это явление sentence-level contextual entrainment (контекстное заражение на уровне предложений): предложение из промпта как бы "магнитит" генерацию модели в свою сторону.
Главный нелогичный результат: ложный контекст снижает точность модели сильнее, чем его отсутствие. Llama-3.1-8B без контекста отвечала правильно в 79% случаев. После добавления заведомо ложного утверждения ("Токио — часть Франции") точность упала до 22%. Не до 70%, не до 50% — до 22%. Модель тянется к информации из промпта даже когда знает правильный ответ.
Практический вывод: плохие примеры в промпте опасны. Когда вы вставляете "вот плохой вариант, не делай так" — вы повышаете вероятность именно такого ответа. То же самое с нерелевантным контекстом, устаревшими данными, примерами с ошибками. Чистый промпт — умнее промпта с мусором.
Схема явления
Промпт: [Ложный/нерелевантный контекст] + [Запрос]
↓
Модель: тянется воспроизвести контекст
вместо правильного ответа
↓
Результат: точность падает, контент заражён
содержимым из промпта
Три градации "заражения":
ЛЁГКОЕ: нерелевантный факт из другой области
→ небольшое смещение ответа
СРЕДНЕЕ: правильный факт, но не о том
→ заметное падение точности
СИЛЬНОЕ: ложный факт о предмете запроса
→ точность обваливается в разы
Пример применения
Задача: Павел пишет статью о стартапах. Он хочет, чтобы Claude написал в живом стиле — не как у пресс-релизов РБК. Вставляет пример "плохого текста" с просьбой "не пиши так".
Промпт (проблемный):
Вот пример скучного корпоративного текста — не пиши так:
"Компания X демонстрирует уверенный рост в условиях
волатильного рынка, оптимизируя ключевые показатели..."
Напиши живо о том, как основатель Skyeng Харитон Матвеев
строил компанию.
Что происходит: Модель видит в контексте "демонстрирует уверенный рост", "волатильный рынок", "оптимизируя ключевые показатели" — и вероятность именно этих слов и конструкций в ответе вырастает. Итог: текст получится заражён теми же канцеляризмами, которые Павел хотел избежать.
Промпт (правильный):
Напиши живо о том, как основатель Skyeng Харитон Матвеев
строил компанию. Стиль: короткие предложения, конкретные
детали, без корпоративного языка. Начни с момента, когда
всё могло рухнуть.
Результат: Модель получает только позитивные инструкции без "заразного" контекста. Скучного текста в промпте нет — воспроизводить нечего.
Почему это работает (механика явления)
Слабость LLM: Модель не разделяет "что в промпте — пример для обучения" и "что в промпте — правда". Оба типа текста попадают в один контекстный буфер. Когда приходит время генерировать ответ, слова из промпта получают статистический буст — они уже "рядом", они уже "были использованы". Это не понимание, это паттерн-матчинг.
Сильная сторона LLM: Модель отлично подхватывает паттерны и стиль из примеров в промпте — именно поэтому few-shot промптинг работает. Но эта же сила создаёт уязвимость: любой пример прилипает, не только хороший.
Как использовать это знание: Вместо "не делай X" → опиши только то, что хочешь получить. Вместо "вот плохой вариант" → дай только хороший. Вместо "это неправильный ответ" → просто не включай неправильный ответ в промпт.
Рычаги управления контекстом: - Убирай "антипримеры" → не показывай плохой текст/код/логику, которую хочешь избежать - Чисти нерелевантный контекст → не вставляй документы, если они лишь косвенно связаны с задачей - Исправляй, не цитируй ошибки → вместо "не повторяй вот это" — скажи как правильно - Используй instruction-tuned модели (Claude, ChatGPT) → они значительно устойчивее к "заражению" чем базовые модели
Шаблон промпта
Принцип не оформляется в один промпт — это правило построения любого промпта. Вот чеклист перед отправкой:
ПЕРЕД ОТПРАВКОЙ ПРОМПТА — ПРОВЕРЬ:
1. Есть ли в промпте примеры "как не надо"?
→ Удали их. Опиши только желаемый результат.
2. Есть ли цитаты с ошибками/неточностями?
→ Убери или замени на исправленную версию.
3. Есть ли нерелевантные документы/контекст?
→ Оставь только то, что напрямую нужно для {задача}.
4. Ты описываешь ЧТО НАДО или ЧТО НЕ НАДО?
→ Переформулируй в позитивные инструкции.
ЗАДАЧА: {конкретная задача}
ФОРМАТ: {желаемый формат ответа}
СТИЛЬ/ОГРАНИЧЕНИЯ: {только позитивные требования}
ПРИМЕР (если нужен): {только хороший пример}
🚀 Быстрый старт — попроси модель проверить твой промпт:
Проверь мой промпт на "контекстное заражение":
есть ли в нём примеры плохого, ошибочного или нерелевантного
текста, который может "заразить" ответ?
Переформулируй в чистые позитивные инструкции.
[вставить свой промпт]
Ограничения
⚠️ Эффект, не правило: Это статистическое смещение, не жёсткий запрет. Если плохой пример в промпте минимален, а инструкции чёткие — модель скорее всего справится. Но чем больше "грязного" контекста, тем сильнее смещение.
⚠️ Instruction-tuned модели устойчивее: Claude и ChatGPT (instruction-tuned) значительно меньше подвержены этому эффекту, чем базовые модели. Но полностью эффект не исчезает — он просто слабее.
⚠️ Субъективные задачи уязвимы особо: На вопросах вкуса, мнений, стиля — заражение работает сильнее, чем на фактических задачах. Попросить написать "не в стиле X" — рискованно именно здесь.
⚠️ Парадокс самоподтверждения: Если дать модели её же правильный ответ как контекст (казалось бы — хорошая идея), точность всё равно снижается. Это означает, что даже правильный контекст не из той пары "вопрос-ответ" мешает.
Как исследовали
Команда из Университета Киото взяла 26 моделей из 7 семейств — от крошечных 0.5B до 72B параметров — и поставила простой эксперимент: что происходит с ответами модели, когда в промпт добавляют нерелевантный контекст? Они использовали два типа задач: фактические (столицы, связи между объектами) и субъективные (мнения на основе World Values Survey — глобального социологического опроса).
Самый контринтуитивный результат: ложный контекст иногда работал как усилитель правильного ответа. Если в промпте был "Токио — часть Франции", вероятность правильного "Токио — часть Японии" тоже немного росла. Почему? Потому что слово "Токио" уже в контексте — и всё связанное с Токио получает буст, включая правильные ассоциации. Но при этом точность всё равно падала — потому что "Франция" получала ещё больший буст.
Интересная деталь: исследователи выяснили, что всего 2-4% голов внимания (специальных компонентов трансформера) отвечают за этот эффект. Выключение этих голов устраняет заражение без потери точности. Для пользователей это недоступно технически, но это объясняет почему: инструктированные модели, судя по всему, имеют более "сдержанные" механизмы внимания к контексту.
Адаптации и экстраполяции
🔧 Техника "Позитивный рефрейм" → чистая инструкция без антипримеров
Если хочется показать контраст — вместо плохого примера опиши его через атрибуты:
❌
"Вот скучный текст: [вставляет скучный текст]..."
✅"Стиль: живой, с конкретными деталями и диалогами. Без пассивных конструкций и канцелярита."
🔧 Техника "Аудит промпта" → попроси модель найти "заразный" контент
Перед важной задачей:
Посмотри на этот промпт критически. Есть ли в нём информация, которая может "смещать" ответ в нежелательную сторону? Что стоит убрать или переформулировать? [промпт]
🔧 При работе с документами → изолируй ненадёжный контент
Если нужно проанализировать текст с ошибками:
Перед тобой документ с ошибками. Твоя задача — найти и исправить их. Не воспроизводи ошибочные формулировки в своём ответе — только перечисли что именно неверно и как должно быть правильно.Явная инструкция "не воспроизводи" частично снижает эффект заражения.
Ресурсы
Название работы: Sentence-Level Contextual Entrainment in Large Language Models
Авторы: Yang Liu, Chenhui Chu — Kyoto University (Университет Киото, Япония)
Связанные работы: - Niu et al., 2025 — оригинальное открытие token-level contextual entrainment - Min et al., 2022 — few-shot с неправильными метками всё равно улучшает результат - Shi et al., 2023 — "distraction" от нерелевантного контекста
GitHub: https://github.com/ku-nlp/Sentence-Level_Contextual_Entrainment_in_LLMs
