TL;DR
Когда пишешь «без канцелярита» или «не используй слово X» — модель часто нарушает ограничение. Не потому что не поняла, а потому что внутри работают два конкурирующих механизма, и неправильный регулярно побеждает. Модель в средних слоях честно строит новое понятие «не-X». Но в финальных слоях включается механизм срезки — он вспоминает статистику из обучающих данных и тянет к частым продолжениям, игнорируя отрицание.
Парадокс в том, что понимание есть, но результат неправильный. Если измерить вероятности внутри модели, она реагирует на «не» верно. По точности финальных ответов — угадывает как монетка (~50%). Разрыв объясняется поздними слоями, которые «голосуют» за статистически частые паттерны из обучения — и перекрывают правильный сигнал.
Исследование вскрывает механику: в ранних слоях «не» прикрепляется к понятию Y. В средних слоях строится новый «негативный вектор» — буквально «не газ» кодируется как «твёрдое или жидкое» (конструктивный механизм). Параллельно ослабляется сигнал самого Y (подавляющий механизм). Но оба перекрываются поздними «ярлычными» слоями, обученными на ко-встречаемости: текстов где рядом с «не» и «газ» стоит «жидкость» в обучающих данных просто меньше, чем текстов где «газ» идёт с «газом».
Схема механизма
РАННИЕ СЛОИ: «не» прикрепляется к Y
→ модель знает что отрицается
СРЕДНИЕ СЛОИ: строится вектор «не-Y» (конструктивный механизм)
+ ослабляется сигнал Y (подавляющий механизм)
ПОЗДНИЕ СЛОИ: срезка включает статистические паттерны из обучения
→ игнорирует «не-Y», продвигает то что часто встречалось рядом
ФИНАЛ: выдаётся не то что правильно, а то что статистически вероятно
Всё происходит внутри одного прохода модели. Пользователь не видит борьбы — только сломанный запрет.
Пример применения
Задача: Пишешь промпт для описания умной колонки на Wildberries. Хочешь живой текст — просишь «без канцелярита, не используй слова "качество" и "инновационный"».
Что происходит без учёта механики:
Промпт: «Напиши описание умной колонки.
Без канцелярита. Не используй
слова "качество" и "инновационный".»
Результат: «Устройство инновационного качества,
обеспечивающее...»
Модель зафиксировала ограничения в средних слоях. Но поздние слои «вспомнили»: в большинстве текстов про колонки есть «качество» и «инновационный» — и протащили их.
Как переформулировать, зная механику:
Напиши описание умной колонки Яндекс Станция
для карточки на Wildberries.
Стиль: как будто объясняешь другу в Telegram
почему купил — живо, конкретно, слегка с иронией.
Слова которые хочу видеть: звук, утро, голос,
удобно, слышит.
Если хочется написать «качество» —
замени на конкретный факт:
«6 микрофонов», «слышит с другого конца комнаты»,
«не переспрашивает когда играет музыка».
Если хочется написать «инновационный» —
замени на то что реально умеет делать колонка.
Результат: Вместо запрета на плохое — даёшь модели позитивные якоря: конкретные слова, жанр, метод замены. Поздние слои цепляются за новые паттерны вместо штампов. Текст получается живее, и «качество» не просочится.
Почему это работает
Слабость LLM: Отрицание — не натуральная операция для трансформера. Он обучен предсказывать следующий токен по паттернам совместной встречаемости. Слова «не» + «птица» в его обучающих данных чаще стоят рядом с... другими птицами («не только птица, но и...»), а не с рыбами. Поэтому запрет работает как слабая подсказка, которую перебивает статистическое притяжение.
Почему позитивные инструкции сильнее: Когда пишешь «пиши как в Telegram» — это прямой паттерн, который модель легко активирует из обучения миллионов таких текстов. Когда пишешь «не пиши официально» — модель строит двойную операцию «официально» → «не официально», и поздние слои её перекрывают. Прямой паттерн всегда выигрывает у запрета.
Рычаги управления в промпте: - Замени запрет на альтернативу — вместо «не X» пиши «вместо X используй Y» - Дай якорные слова — конкретные слова, которые хочешь видеть, создают новые статистические якоря - Опиши жанр, тон, аудиторию — это сильнее чем список запретов - Если «не» неизбежно — продублируй ограничение другой формулировкой + добавь метод замены - Дай пример правильного — один пример перевешивает три запрета
Шаблон промпта
Напиши {тип контента} для {аудитория или платформа}.
Стиль: {как это звучит — жанр, тон, с чем можно сравнить}
Слова и идеи которые хочу видеть: {якорные слова}
Если хочется написать {нежелательное слово или фраза} —
замени на {конкретная альтернатива или тип замены}.
{задача или исходный материал}
Что подставлять:
- {тип контента} — описание, письмо, пост, инструкция, оффер
- {аудитория или платформа} — Telegram-канал про стартапы, карточка на Ozon, письмо HR, питч инвестору
- {как это звучит} — дружеский чат, интервью с основателем, разбор кейса, сторис
- {якорные слова} — 3–5 конкретных слов которые задают вектор
- {нежелательное} + {альтернатива} — переводишь запрет в инструкцию замены
🚀 Быстрый старт — вставь в чат:
Вот шаблон промпта где запреты заменены
позитивными инструкциями. Адаптируй под
мою задачу: {твоя задача}.
Задавай вопросы чтобы заполнить поля.
[вставить шаблон выше]
LLM спросит какой стиль нужен, что должно быть в тексте и какие слова точно нежелательны — потому что без этого не может сформулировать правильные якоря взамен запретов.
Ограничения
⚠️ Не гарантия: Замена запретов на позитивное — помогает, но не устраняет проблему полностью. Сильные статистические паттерны из обучения всё равно могут «просачиваться».
⚠️ Специфические запреты: Если важно исключить конкретную фразу (юридическую формулировку, фирменный стиль конкурента) — нужна проверка выводов и несколько итераций, одним промптом не обойтись.
⚠️ Задачи на факты: Исследование про вопросно-ответные задачи типа «животное которое не X — это...». Для генерации длинных текстов закономерности похожие, но не идентичные.
⚠️ Это фундаментальная проблема: Исследователи показали что проблема вшита на этапе предобучения. Простым промптингом полностью не решается — только смягчается.
Как исследовали
Команда из USC взяла 648 пар промптов вида «животное, которое не является амфибией — это...» и «животное, которое является амфибией — это...». Для каждого вопроса известен правильный ответ с отрицанием и без. Проверяли шесть открытых моделей — Llama 3.1, Mistral, Qwen 2.5 и 3, Gemma-2, OLMo-2.
Самая неожиданная находка: точность на вопросах с «не» около 50% — то есть модели угадывают как монетка. Но при этом вероятности внутри модели корректно меняются при добавлении «не» — значит, понимание есть, только до ответа не доходит.
Дальше был красивый эксперимент: исследователи физически «отключили» поздние слои моделей методом Attention Sinking — принудительно направили внимание голов на первый токен вместо контента. Точность на «не» прыгнула с 50% до 68% — без изменения промпта, просто убрав помехи из поздних слоёв. Это прямое доказательство что поздние слои мешают, а не помогают.
Ещё проверили историю обучения OLMo2 по чекпоинтам. Нашли: в самом начале обучения точность на отрицания резко падает, затем немного восстанавливается. Именно в первые шаги обучения формируются «срезочные» паттерны — ко-встречаемость слов оказывается сильнее логики отрицания. Это объясняет почему проблема системная, а не случайная.
Адаптации и экстраполяции
💡 Адаптация: обратная связь и критика
Классическая боль: «напиши конструктивную критику, НЕ грубую, НЕ уклончивую». Модель выдаёт либо мягкую кашу, либо что-то резкое. Применяем принцип:
Дай обратную связь по тексту {автор}.
Стиль: как хороший редактор при личном разговоре —
уважительно, по делу, с конкретными предложениями.
По каждому замечанию: сначала что работает
в этом фрагменте, потом — конкретное предложение
как улучшить (не «это плохо», а «попробуй так:...»).
Текст: {текст}
🔧 Техника: тройное дублирование ограничения
Если запрет критичен и без «не» не обойтись — напиши его тремя разными формулировками:
Ограничение 1: без технического жаргона
Ограничение 2: пиши как для человека далёкого от IT
Ограничение 3: если хочется написать технический термин —
замени объяснением простыми словами
Три формулировки одного ограничения создают более сильный паттерн в контексте, чем одно «не пиши жаргон». Каждая активирует немного другие ассоциации — вместе они дают более стабильный результат.
🔧 Техника: один конкретный пример вместо запрета
Исследование показывает что модель хорошо реагирует на прямые паттерны. Один пример правильного текста в промпте часто работает лучше трёх запретов:
Пример нужного стиля:
«Колонка слышит даже когда орёт телек. Сказал "Алиса, стоп" —
остановила. Утром спрашиваю погоду — отвечает пока чищу зубы.»
Напиши в таком же духе про: {продукт}
Ресурсы
How Language Models Process Negation Zhejian Zhou, Tianyi Zhou, Robin Jia, Jonathan May University of Southern California — Information Sciences Institute + Thomas Lord Department of Computer Science Proceedings of the 43rd International Conference on Machine Learning (ICML 2026), Seoul
