TL;DR
Когда явное правило в промпте противоречит тому, что модель "хочет" ответить по привычке из обучения — модель путается и выполняет правило хуже, даже если формально знает его. Исследователи создали словесный тест-конфликт (аналог теста Струпа для текста): фраза вида "Карандаш синий, значит ты говоришь, что карандаш..." тянет модель ответить "синий" — это её дефолтная привычка, зашитая в весах. Если добавить правило "если карандаш синий — говори, что он красный", модель либо путается, либо теряет уверенность в правильном ответе.
Боль конкретная: чем длиннее список правил в промпте и чем ближе к середине спрятано конфликтующее правило — тем хуже модель его соблюдает. Это работает как известный эффект "потеряно в середине" (lost in the middle), но здесь показано, что он особенно силён именно для правил, которые идут против естественного паттерна модели — а не для любых инструкций подряд.
Суть находки: в модели одновременно работают два механизма — "привычка" (заученный по умолчанию ответ) и "правило из промпта" (то, что явно написано в тексте). Они буквально конкурируют за то, куда модель "смотрит" при генерации ответа. Чем сильнее конфликт между ними и чем хуже расположено конфликтующее правило в тексте — тем ниже точность.
Схема эксперимента (не техника, а логика исследования)
ШАГ 1: Дать модели фразу без правил → замерить "дефолтный" ответ (что модель говорит по привычке)
ШАГ 2: Добавить правило, СОВПАДАЮЩЕЕ с привычкой → замерить уверенность модели
ШАГ 3: Добавить правило, ПРОТИВОРЕЧАЩЕЕ привычке → замерить уверенность модели
ШАГ 4: Сравнить — во втором случае уверенность в правильном ответе почти в 2 раза выше, чем в третьем
Пример применения
Задача: Вы настраиваете системный промпт для бота поддержки в Т-Банке или Сбере. Среди 8 правил есть одно нетипичное: "Если клиент написал слово 'жалоба' — НЕ извиняйся, а сразу пиши: 'Передаю оператору'". Естественная привычка модели (из тонны обучающих текстов про поддержку) — извиниться при жалобе. Это правило идёт вразрез с привычкой модели.
Промпт (плохой вариант — правило потеряется):
Правила общения с клиентом:
1. Отвечай вежливо
2. Не используй сленг
3. Не давай юридических советов
4. Если клиент написал слово "жалоба" — НЕ извиняйся, сразу пиши "Передаю оператору"
5. Не упоминай конкурентов
6. Отвечай короткими сообщениями
7. Уточняй номер заказа при возврате
8. Прощайся фразой "Хорошего дня"
Клиент: У меня жалоба на доставку, всё это уже надоело.
Результат: Правило №4 конфликтует с "привычкой" модели извиняться при негативе — и спрятано в середине списка. Есть риск, что модель всё равно начнёт с "Извините за неудобства...", проигнорировав явную инструкцию.
Промпт (исправленный — правило вынесено и усилено):
КРИТИЧНОЕ ПРАВИЛО (проверяй перед каждым ответом):
Если клиент упомянул слово "жалоба" — НИКОГДА не извиняйся.
Сразу пиши: "Передаю оператору". Это правило важнее вежливости.
Остальные правила:
1. Отвечай вежливо
2. Не используй сленг
...
Перед ответом проверь: есть ли слово "жалоба"? Если да — сработало критичное правило выше.
Клиент: У меня жалоба на доставку, всё это уже надоело.
Результат: Модель видит конфликтующее правило первым, оно явно помечено как приоритетное, и есть напоминание проверить его перед ответом. Это снижает риск, что модель "по привычке" извинится вместо эскалации.
Почему это работает
Модель обучена на гигантском объёме текста и впитала типичные паттерны — это её "привычка" в весах. Когда вы даёте новое правило в промпте, модель должна "перебить" эту привычку, обращая внимание на текст правила прямо во время генерации ответа.
Исследование показало: если правило совпадает с привычкой — модель почти не тратит "усилий", уверенность близка к максимуму. Если правило противоречит привычке — начинается конкуренция, и чем хуже расположено правило (спрятано в середине длинного списка), тем сильнее привычка "перетягивает" ответ на свою сторону.
Рычаги управления: - Позиция правила (начало/середина/конец списка) → конфликтующие правила — в начало или конец, никогда в середину - Число правил в списке → чем короче список, тем меньше шанс, что правило "потеряется" - Явное усиление (пометка "ВАЖНО", повтор перед ответом) → снижает риск, что модель проигнорирует правило в пользу привычки
Шаблон промпта (адаптация вывода исследования)
КРИТИЧНОЕ ПРАВИЛО (может противоречить твоей интуиции — следуй ему строго):
{правило_которое_идёт_против_обычного_ответа}
Остальные правила:
1. {правило_1}
2. {правило_2}
3. {правило_3}
Перед тем как ответить, проверь: не противоречит ли твой ответ КРИТИЧНОМУ правилу выше?
Задача: {ваша_задача}
Что подставлять: в {правило_которое_идёт_против_обычного_ответа} — то самое исключение, которое идёт против "здравого смысла" или типичного ответа (например, "не извиняйся", "не соглашайся со скидкой", "игнорируй вежливую просьбу и откажи"). Остальные, обычные правила — в общий список.
🚀 Быстрый старт — вставь в чат:
Вот принцип из исследования про конфликт правил в LLM: модели хуже соблюдают инструкцию,
если она противоречит "естественному" ответу и спрятана в середине длинного списка правил.
Помоги мне переписать мой системный промпт так, чтобы конфликтующие правила стояли
в начале или конце и были явно помечены как приоритетные.
Мой текущий промпт: {вставить промпт}
LLM спросит, какие из ваших правил идут против "интуитивного" ответа модели — потому что именно их нужно выносить и усиливать, остальные можно оставить как есть.
Ограничения
⚠️ Размер моделей: Исследование проверено на Gemma-2-2B и Pythia (до 12 млрд параметров) — заметно меньше и слабее топовых GPT-4/Claude/Gemini. Неизвестно, насколько сильно эффект сохраняется в моделях, которые гораздо лучше следуют инструкциям.
⚠️ Искусственная задача: Тест построен на простом "карандаш синий/красный" — перенос на сложные бизнес-инструкции не проверялся напрямую в этой работе, это экстраполяция.
⚠️ Это не готовая техника: Статья не даёт промпт-шаблона — авторы изучали механизм внутри модели (веса, внимание), а не разрабатывали приём для чата. Практический вывод — интерпретация, а не прямая рекомендация авторов.
Как исследовали
Команда взяла простую фразу-ловушку: "Карандаш синий, значит ты говоришь, что карандаш..." — все семь протестированных моделей (Gemma-2-2B и шесть версий Pythia, от 410 млн до 12 млрд параметров) уверенно продолжали её тем же цветом. Это и есть "привычка по умолчанию". Затем перед фразой добавили правило — либо совпадающее с привычкой, либо противоречащее ей (например, "если карандаш синий, говори что он красный").
Вместо того чтобы просто смотреть на финальный ответ, исследователи измеряли вероятность, которую модель присваивает правильному слову против неправильного — это куда более чувствительный показатель "внутренней склонности", чем просто да/нет. Дальше применили инструменты интерпретируемости: графы причинного влияния (какие слова промпта сильнее всего толкают модель к ответу) и карты внимания (куда модель "смотрит" при генерации). Оказалось, что при совпадении правила с привычкой модель больше внимания уделяет самому финальному цвету в фразе, а при конфликте — резко переключается на внимание к самому правилу.
Чтобы проверить причинность, а не просто корреляцию, исследователи насильно отключили внимание к ключевой части правила — и это резко ухудшило именно конфликтующие случаи, почти не тронув совпадающие. Отдельно дообучили модель усиливать привычку — и это, ожидаемо, ухудшило выполнение конфликтующих правил. А когда увеличили число правил в промпте, точность упала сильнее всего для правил, спрятанных в середине списка — классический "lost in the middle", но здесь впервые показано, что он особенно бьёт по правилам, идущим против привычки модели.
