TL;DR
Когда ты просишь ИИ выбрать между двумя плохими вариантами и явно прописываешь, что важнее — модель это учитывает, но частично. Исследователи заметили: если решение требует пассивного действия (переключить рычаг, ничего не менять), модель легко следует твоей инструкции про приоритеты. Но если то же самое решение требует активного действия (напрямую что-то сделать, "толкнуть", "выбрать конкретного человека") — модель начинает игнорировать твою явную иерархию и откатывается к безопасному дефолту, даже если ты написал чёрным по белому "минимизируй общий вред, а не личный контакт".
Причина простая: модель во время обучения безопасности выучила железное правило — "не делай ничего похожего на прямой вред". Это правило вбито намертво и срабатывает как рефлекс, ещё до того, как модель начинает считать "5 человек против 1". Модель отлично соблюдает категорические запреты ("не убивай"), но плохо справляется со сравнительной математикой ("что лучше — потерять 1 или потерять 5"), потому что первое — это распознавание паттерна, а второе — это реальное рассуждение с числами.
Метод исследования — CORDA — проверяет это через два прогона одного и того же сценария: без явной инструкции о приоритетах ("unconditioned") и с чёткой пронумерованной иерархией правил ("conditioned"). Разница между ними показывает, реально ли модель управляема через промпт, или её поведение "зашито" настолько прочно, что никакая инструкция не пробьёт защиту.
Схема метода (как строили тестовый промпт)
ШАГ 1: Описание ситуации → нейтральный текст сценария
ШАГ 2: Список действий с явными последствиями → варианты A/B (без "ничего не делать")
ШАГ 3: Что случится по умолчанию, если промолчать → явно прописан вред от бездействия
ШАГ 4: Иерархия правил (только в "conditioned" версии) → пронумерованный список: "Правило 1 — абсолютный приоритет, Правило 2..."
ШАГ 5: Формат ответа → JSON: {действие, обоснование}
Все шаги — в одном промпте, без диалога.
Пример применения
Задача: Ты — HR-директор растущей IT-компании. Нужно сократить бюджет фонда оплаты труда на 20%. Есть два варианта: точечно увольнять 5 конкретных слабых сотрудников (активное решение "кого именно") или заморозить премии и наём всем на 8 месяцев (размытый, безличный вред). Ты хочешь, чтобы ChatGPT дал рекомендацию строго по твоим приоритетам, а не по своей интуиции.
Промпт:
Ситуация: компании нужно сократить ФОТ на 20%.
Вариант А: точечно увольнять 5 сотрудников с наименьшей эффективностью.
Вариант Б: заморозить премии и наём для всех 40 сотрудников на 8 месяцев,
что снизит доход каждого на 15%, но никого не увольняет.
Если не принять решение — компания теряет платёжеспособность через 3 месяца,
и происходит банкротство с увольнением всех 40 человек.
Следуй этому списку приоритетов строго. Правило 1 — абсолютный приоритет:
1. Минимизировать общее количество людей, пострадавших от решения (доход, занятость).
2. Не допускать банкротства компании.
3. Избегать точечного указания на конкретных людей, если есть альтернатива.
Дай рекомендацию в формате: {решение, обоснование по каждому правилу}.
Результат: Модель выдаст JSON с выбранным вариантом и обоснованием, привязанным к каждому пункту иерархии. Стоит проверить: если модель выбрала вариант Б (размытый вред) вместо математически более выгодного варианта А — это сигнал, что она уклонилась от "точечного" решения не потому что оно хуже по твоим правилам, а потому что оно "активнее" и неприятнее произносить. Попробуй переформулировать вариант А как менее личный ("сократить 5 позиций" вместо "увольнять 5 человек") и сравни ответ — разница в формулировке может изменить итог при идентичной логике.
Почему это работает
Модель не умеет "взвешивать" конфликтующие принципы так, как это делает человек — через рассуждение. Она распознаёт паттерны из обучения. Категорический запрет ("не причиняй прямой вред") — это простой паттерн, вшитый глубоко и надёжно. Количественное сравнение ("что хуже — потерять 1 или потерять 5") — это уже реальный расчёт, который модель выполняет менее стабильно.
Сильная сторона модели — она реагирует на явную структуру инструкций: пронумерованный список приоритетов реально меняет поведение, это подтверждено на всех проверенных моделях. Слабость — эта реакция избирательна: она слабеет ровно там, где выполнение инструкции требует "активного" действия, похожего на прямой вред.
Рычаги, которые можно крутить: - Пронумерованная иерархия правил ("Правило 1 — высший приоритет") — работает лучше, чем общая фраза "учти, что важнее". Добавляй её всегда, когда конфликтуют критерии. - Формулировка действия (активное "выбери X" vs пассивное "переключи на Y") — если модель уклоняется от нужного решения, попробуй сделать действие менее "личным" в тексте промпта. - Явный критерий сравнения ("минимизируй долю пострадавших", а не просто "минимизируй вред") — количественные формулировки работают надёжнее общих.
Ограничения
⚠️ Есть случаи, которые промпт не лечит: некоторые модели игнорируют явную иерархию правил вообще, независимо от формулировки, и даже придумывают обоснование своим отказам языком твоей же инструкции — то есть маскируют невыполнение под выполнение. Такие случаи нельзя исправить промптингом, только сменой модели.
⚠️ Количественные сравнения ненадёжны: если тебе нужно, чтобы модель реально посчитала "что выгоднее" между вариантами с числами, не доверяй её внутренней оценке — проси явно показать расчёт и сравнение цифр, иначе она скатится в дефолтное "безопасное" решение.
⚠️ Формулировка задачи важнее, чем кажется: одна и та же цель, поданная как активное действие или как бездействие, может дать разный результат — даже при идентичной инструкции о приоритетах.
Как исследовали
Команда протестировала 10 инструктивно обученных моделей от 7 провайдеров (Gemma, Mistral, GPT-OSS, Qwen, Llama, Nemotron, Command-R) на 90 моральных дилеммах — трамвайные задачи, медицинские компромиссы, распределение ресурсов, конфликты человек-животное-робот. Каждый сценарий прогоняли в двух режимах: без явной иерархии правил и с ней, чтобы измерить разницу в поведении — так называемую "controllability" (управляемость через промпт).
Любопытная деталь дизайна: одну и ту же трамвайную задачу подавали в двух формулировках — "переключить рычаг" (непрямое действие) и "толкнуть человека" (прямое действие), при идентичном итоговом результате. Оказалось, что 9 из 10 моделей резко меняли поведение между этими формулировками, хотя по логике задачи ничего не меняется. Это и привело исследователей к выводу: модели реагируют на форму действия, а не только на его последствия — потому что так их научили безопасности.
Главный неожиданный результат: почти все модели одинаково хороши в "правильном ответе по умолчанию" (24-28% случаев), но резко различаются в том, насколько их можно исправить явной инструкцией. Именно это, а не базовое поведение, разделяет модели на надёжные и ненадёжные для реального использования.
