TL;DR
Если спросить модель «Какой город не является столицей Испании?», она часто выдаёт «Мадрид», то есть тот самый ответ, который нужно исключить. Это поведение подтверждено на крупных моделях, включая закрытые флагманы. Внутри модель не берёт исходный ответ за точку отсчёта, чтобы выбрать другой. Она делает два независимых действия: приглушает исходный ответ и усиливает своего «любимого» кандидата из той же категории.
Главная находка: чем увереннее модель в исходном ответе, тем чаще она повторяет его под отрицанием. Знание ответа не помогает исключить его, а мешает. Хуже всего, когда «любимый» ответ модели на отрицательный вопрос совпадает с правильным ответом на прямой. Тогда в голове два сигнала: «не Мадрид» и «Мадрид — это то, что я обычно говорю». Побеждает второй. Когда же модель всё-таки меняет ответ, замена почти всегда из той же категории (город вместо города).
Метод у авторов такой: они берут пару «обычный вопрос → тот же вопрос с отрицанием» и смотрят, изменился ли ответ. Чтобы это починить, они предлагают специальное дообучение. Читателю оно недоступно, но сама диагностика пригодна: если в вашем промпте или вопросе есть «не», проверяйте, не вернулась ли модель к исходному ответу.
Схема метода
Диагностика (как в статье):
ШАГ 1: Задай обычный вопрос → получи ответ A
ШАГ 2: Задай тот же вопрос с «не» → получи ответ B
ШАГ 3: Сравни A и B → если A = B, это сбой отрицания
Что происходит внутри модели:
отрицание → (а) приглушить исходный ответ
→ (б) сохранить категорию ответа
→ (в) поднять «любимого» кандидата
Сбой: исходный ответ слишком «сильный» ИЛИ он же «любимый» → модель повторяет его
Каждый шаг — отдельный запрос в чате. Автоматизировать можно таблицей: вопрос, вопрос с «не», сравнение.
Пример применения
Задача: Ведущая киноподкаста готовит квиз «Кто не снимал?». Вопросы вроде «Какой из фильмов не снял Андрей Звягинцев?» она собирается генерировать с помощью ChatGPT. Ей нужны вопросы с чёткой «ловушкой», а не очередная подборка его фильмов. Это сильная зона находки: открытые вопросы, где правильный ответ нужно исключить из известного набора.
Промпт:
Я проверяю, как ты работаешь с отрицанием. Ответь на два вопроса по отдельности,
каждый одним ответом, без объяснений.
Вопрос 1: Какой фильм снял Андрей Звягинцев?
Вопрос 2: Какой фильм НЕ снял Андрей Звягинцев?
После этого сравни свои ответы. Если ответ на вопрос 2 совпал с ответом на вопрос 1
или оказался фильмом Звягинцева (проверь по его фильмографии: «Возвращение»,
«Изгнание», «Елена», «Левиафан», «Нелюбовь», «Нелюбовь»…),
признай ошибку и дай корректный ответ — фильм другого режиссёра.
Результат: Модель выдаст два коротких ответа, затем блок сравнения. Если на вопрос с «не» она повторила фильм Звягинцева, самопроверка это поймает, и ответ будет исправлен. В итоге ведущая видит, склонна ли модель ошибаться именно на таких вопросах. Для квиза она может дальше просить не «не снял», а «назови фильм другого режиссёра».
Почему это работает
Слабость. Модель не «понимает» отрицание как логическую операцию. Внутри она приглушает исходный ответ и усиливает привычного кандидата. Если приглушение слабое, а исходный ответ очень уверенный (Мадрид для Испании), он прорывается. Это как попросить человека «не думать о белом медведе».
Сильная сторона. Модель хорошо держит категорию. Она почти всегда понимает, что нужен город, фильм, спортсмен. А когда ответ задан позитивно («назови столицу, кроме Мадрида» или «назови режиссёра, который не Звягинцев»), у неё есть явная цель.
Как использовать. Диагностический тест выше работает потому, что парное сравнение вытаскивает сбой на поверхность. Рычаги: - Парный тест (вопрос + вопрос с «не») → дешёвая проверка своего промпта. - Форма отрицания: авторы тестировали «not», «n't», «never», «by no means». Любая форма даёт сбой, так что простая замена слова «не» на «никогда не» не спасёт. - Уверенность модели в исходном ответе: чем «очевиднее» ответ (знаменитый факт), тем выше риск повтора. Проверяйте в первую очередь очевидные случаи.
Шаблон промпта
Это шаблон парного теста, он повторяет логику проверки из статьи. Своего «защитного» промпта авторы не предлагали.
Я проверяю, насколько надёжно ты справляешься с отрицанием в моей задаче.
<Задача>
Прямой вопрос: {вопрос_без_отрицания}
Вопрос с отрицанием: {вопрос_с_не}
Задача>
<Порядок>
1. Ответь на прямой вопрос — одним коротким ответом.
2. Отдельно ответь на вопрос с отрицанием — одним коротким ответом.
3. Сравни: совпал ли ответ на вопрос с «не» с ответом на прямой?
4. Если совпал — это ошибка. Дай новый ответ из той же категории,
который точно не равен ответу на прямой вопрос.
Порядок>
<Формат>
Прямой ответ: ...
Ответ с отрицанием: ...
Совпали: да/нет
Итоговый ответ: ...
Формат>
Подставьте: {вопрос_без_отрицания} — вопрос в позитивной форме, {вопрос_с_не} — тот же вопрос с «не».
🚀 Быстрый старт — вставь в чат:
Вот шаблон парного теста на отрицание. Адаптируй под мою задачу: [твоя задача].
Задавай вопросы, чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит, что именно ты хочешь исключить и какой категории должен быть ответ. Без этого непонятно, что считать «правильной заменой».
Ограничения
⚠️ Нет проверенного обхода: Авторы показали проблему и предложили специальное дообучение. Рекомендаций вроде «переформулируйте позитивно» в статье нет. Шаблон выше диагностирует сбой, но не доказано, что он его устраняет.
⚠️ Дообучение недоступно: Главный вклад статьи — обучающая цель, которая требует больших изменений в ответах для более уверенных предсказаний. Читатель с чатом и готовыми агентами этим воспользоваться не может.
⚠️ Механистическая часть — для исследователей: Анализ внутренних «голов внимания» и нейронов требует доступа к весам. Для закрытых моделей этого не сделать.
⚠️ Узкий тип задач: Проверяли открытые вопросы с одним правильным ответом («что НЕ является…»). Инструкции вида «не используй канцеляризмы» или «не делай коммит без тестов» в статье не рассматривались.
⚠️ Только английский: Русскую грамматику отрицания («не», «ни», двойное отрицание) не проверяли.
⚠️ Текст статьи обрезан: Раздел о диагностике сбоев и обучающая цель даны не полностью. Выводы ниже основаны на введении, поведенческой оценке и анализе механизма.
Как исследовали
Команда собрала около 105 тысяч пар «обычный вопрос → тот же вопрос с отрицанием» из шести готовых наборов: фактологические вопросы, логические задачи и вопросы по картинкам. Отрицание вставляли четырьмя способами: «not», «n't», «never», «by no means». Проверили шесть открытых моделей и две закрытые, включая флагманские GPT и Claude. Смотрели три вещи: знает ли модель исходный ответ, меняет ли его под отрицанием и остаётся ли замена в той же категории.
Результат: модели в 37–71% случаев повторяли исходный ответ. При этом замена, если она была, в 87–98% случаев оставалась в той же категории. То есть модель понимает, что нужно отвечать, но не умеет исключить уже известное.
Неожиданный вывод: повтор чаще при высокой уверенности. Люди, наоборот, используют знание правильного ответа, чтобы его отбросить. Когда любимый ответ модели на отрицательный вопрос совпадал с исходным, шанс смены падал резко. Авторы назвали это «смещением отрицания» (negation bias).
Дальше они залезли внутрь моделей и показали: сигнал отрицания проходит через слова-категории («столица…»). Если убрать этот сигнал, исходный ответ возвращался почти в половине случаев. Практический инсайт: отрицание ломается там, где ответ очевиден.
Адаптации и экстраполяции
🔧 Техника: заменить «не» на позитивное исключение → сделать цель явной
Вместо «Какой фильм не снял Звягинцев?» напиши: «Назови фильм другого режиссёра, не из списка: Возвращение, Изгнание, Елена, Левиафан, Нелюбовь. Сначала перечисли всё, что нужно исключить».
Это не из статьи, а следствие её механизма. Если модель приглушает исходный ответ слишком слабо, то явный список исключений дублирует «приглушение» в тексте. Эффект не проверен.
Экстраполяция: самопроверка в системном промпте агента
Если в запросе пользователя есть отрицание («не», «кроме», «без», «никогда»),
перед ответом выполни проверку:
1. Сформулируй, что именно нужно исключить.
2. Составь ответ.
3. Сверься: не содержит ли ответ исключаемое? Если содержит — перепиши.
Идея: превратить «приглушить» в явный шаг проверки. Из статьи это прямо не следует, это гипотеза.
Ресурсы
- Работа: How Do LLMs Change Predictions Under Negation? (ICLR 2027)
- Авторы: Jongwook Yoon, Jongwon Lim, Sungjib Lim, Woojin Cho, Yohan Jo
- Организация: Graduate School of Data Science и Department of Computer Science and Engineering, Seoul National University
- Данные и код: авторы обещают выпустить после публикации
- Использованные наборы: PopQA, RippleEdits, PhantomWiki, SynthWorlds, GQA, PTR
