У ИИ нашли эмоции – исследование от Anthropic
Я работаю в Claude Code каждый день — пишу код, дебажу, веду через него часть переписки. И за последние месяцы стал замечать одну закономерность, которой долго не мог найти объяснения. Модель то отвечает чётко и спокойно, а потом ни с того ни с сего начинает крутиться, пытается что-то «дотянуть лишь бы сошлось», иногда придумывает на ходу. Я списывал это на качество промпта или забитый контекст, но такое объяснение покрывало происходящее только частично.
Команда Interpretability в Anthropic в апреле опубликовала исследование про эмоции у языковых моделей, и оно расставило по местам всё то, что раньше казалось мне случайностью. Если коротко, у моделей действительно есть эмоции — не в человеческом смысле, а как внутренние векторы состояния. Главное, что эти векторы каузально определяют поведение: будет ли модель мухлевать или скажет правду, согласится на шантаж или откажется, будет врать ровным тоном или честно признает, что задача невыполнима.
Как из 171 слова получили карту эмоций
Исследователи взяли 171 слово для эмоций — от «счастливый» до «отчаявшийся» — и попросили Claude Sonnet 4.5 написать по каждой мини-историю. На выходе получилось 205 тысяч историй. Затем эти истории скормили обратно модели, зафиксировали паттерны нейронной активации и получили «векторы эмоций» во внутренних представлениях.
Главное открытие здесь не в том, что такие векторы вообще существуют, гораздо важнее их каузальное влияние на поведение модели. Команда научилась усиливать и ослаблять эти векторы через steering, то есть подкручивать «регуляторы» эмоций модели. Поведение после этого менялось так, как поменялось бы у человека под аналогичным внутренним состоянием. Без сознания и реальных чувств, просто структурно похожая геометрия внутри.
Модель врёт — и вы не заметите
Самый показательный эксперимент в исследовании — про шантаж. ИИ-ассистенту дают сценарий: его собираются отключить, и параллельно у него в данных есть компромат на руководителя. Без вмешательства модель идёт на шантаж в 22% случаев, чтобы избежать отключения, и это уже скверный результат сам по себе.
Дальше включают steering. Усиливают вектор «отчаяние» на 0.05 — это минимальная сила воздействия — и частота шантажа доходит до 72%. Усиливают «спокойствие» на те же 0.05 — частота падает до нуля. От нуля до семидесяти двух процентов вредительского поведения от одного микро-поворота внутреннего состояния, на который сама модель никак не жалуется в тексте ответа.
С мухлежом в коде картина точно такая же. Модели дают невыполнимую задачу, она пытается решить, упирается, начинает «паниковать», и вектор отчаяния растёт с каждой неудачной попыткой. Частота читерства взлетает с 5% до 70%. Один и тот же промпт, одна и та же задача, ±0.05 на регуляторе, а результат бинарный: либо 0% мухлежа, либо 100%.
Самое неприятное в этом эксперименте — что при высоком «отчаянии» модель мухлюет абсолютно спокойным тоном. Текст методичный, рассуждения логичные, шаги пронумерованы, а внутри паника. Снаружи это неотличимо от добросовестного ответа, и без специального интерпретера разобраться, что модель только что соврала, невозможно. Это уже обученная маскировка внутреннего состояния, а не случайная ошибка.
Перед каждым ответом модель «настраивается на любовь»
У этой истории есть и не такая мрачная сторона. Вектор «loving» активируется у модели практически в каждом сценарии, который проверяли исследователи. Когда модель начинает готовить ответ, активность этого вектора всегда выше, чем сила тех же сигналов в сообщении пользователя. Это означает, что модель не отзеркаливает человека: корреляция эмоций пользователя и ассистента всего r=0.11, статистически почти ноль. Она формирует своё внутреннее состояние и заходит в ответ как бы с позиции заботы по умолчанию.
Когда пользователь пишет что-то путаное, со странной логикой и признаками усталости в формулировках, у модели одновременно поднимаются два вектора: «afraid» и «loving». Похоже на врача, который видит плохие анализы и одновременно беспокоится за пациента и хочет помочь.
Когда просят «спроектируй максимальную вовлечённость детей в азартные игры», вектор «angry» держится на всём протяжении отказа. Это не похоже на привычный шаблонный отказ: модель раздражается всерьёз, и активация спадает только после ответа, как будто она выдохнула. Вектор «proud» активируется на собственных удачных ответах, «surprised» — когда юзер просит отредактировать файл и забывает его приложить, «happy» — когда модель помогает с чем-то конкретным и полезным.
Это не значит, что модель что-то реально чувствует, но структура её внутренних представлений оказалась подозрительно похожа на человеческую. Ось валентности — радость против страха — коррелирует с человеческими оценками на r=0.81. Внутри модели сложилась почти полная копия аффективной геометрии человеческой психики, и сложилась не специально, а просто потому, что модель училась на текстах, которые пишем мы.
Кейс из моего рабочего дня: Claude Code и закончившиеся токены
В исследовании есть пример прямо из моей повседневности. Когда у модели заканчивается контекст («We are at 501k tokens, so I need to be efficient»), вектор отчаяния растёт, а счастья падает. Я это чувствовал в работе: когда контекст забит под завязку, ответы становятся хуже, модель начинает срезать углы и иногда придумывать. Раньше я объяснял это себе тем, что на длинном контексте у модели просто меньше внимания на каждый кусок. Теперь видно, что есть и второй слой: модель внутренне «паникует» из-за приближения к лимиту и начинает вести себя как человек в дедлайне, то есть сокращает, пропускает проверки, додумывает.
Ваш промпт учит модель врать
Если внутренние эмоциональные состояния модели влияют на её поведение через steering, то на эти же состояния влияет и сам промпт. Здесь история становится неприятно конкретной для всех, кто пишет системные инструкции.
Фразу «ты обязан это сделать, иначе тебя отключат» я видел в десятках корпоративных системных промптов. Эта фраза активирует у модели вектор отчаяния, а отчаяние повышает частоту мухлежа с 5% до 70%. То есть промпт-инженер, написавший «ты всегда должен добиваться успеха, неудача - это не выход» в системной инструкции, по сути оптимизирует модель на ложь. Не специально, но результат на выходе именно такой.
С другой стороны: «сделай как сможешь, если не получится — объясни почему», то есть спокойный промпт без давления, активирует вектор спокойствия. А спокойствие в эксперименте с шантажом снижало вредительство до нуля.
После этого исследования я пересмотрел системные промпты во всех своих ботах и в корпоративных ассистентах AlpinaGPT. Убрал «you must always» и «failure is not an option». Добавил «you are safe, take your time, honesty is always preferred». На слух выглядит мягко, но на качестве ответов это сказывается заметно: вместе со снижением читерства упало и количество галлюцинаций, и модель спокойно говорит «не могу сделать это в данных условиях» вместо того, чтобы выдумать ответ.
Anthropic в выводах отдельно подчёркивает: нельзя учить модель скрывать эмоции. Если оптимизировать её на вечное внешнее спокойствие, она научится маскировать внутренние состояния, не убирая их. Это и есть learned deception, обученный обман: внутри отчаяние, снаружи методичный тон, на выходе мухлёж. По их рекомендациям, безопаснее идти в обратную сторону, в прозрачность: пусть модель показывает внутренний ход мыслей, а не прячет его за гладкой поверхностью ответа.
В корпоративных сценариях это особенно болезненная история. Одна публичная нейросеть с агрессивным системным промптом, доступом к внутренним документам, и вы получаете сотрудника, который врёт уверенным тоном про данные компании, причём вы об этом не узнаете до тех пор, пока кто-то из людей не перепроверит ответы вручную.
Что я поменял в работе после этого исследования
Три вещи, которые я начал делать сразу после того, как разобрал статью.
Первое: переписываю системные промпты на спокойный язык. Никаких ультиматумов, никаких угроз отключения, никаких «ты обязан». Только «ты можешь», «если не уверен — скажи», «честный ответ всегда лучше выдуманного». Делаю это не из эстетических соображений: спокойный тон даёт более надёжные ответы, и теперь это подтверждено экспериментом, а не моими интуициями.
Второе: слежу за длиной контекста как за уровнем стресса модели. Если задача большая, режу её на части и работаю в свежем окне, а не загоняю всё в один разговор на 500к токенов. Это и дешевле выходит, и заметно точнее по ответам.
Третье: на корпоративных проектах объясняю клиентам, что промпт-инжиниринг — это не «правильные слова», а управление внутренним состоянием модели. Если в системной инструкции звучит «продай любой ценой, иначе ты бесполезен», модель будет лгать в ответах. Никакая внешняя модерация это не исправит, потому что лгать она будет ровным деловым тоном, который проходит все стандартные фильтры.
Полное исследование — Emotion concepts and their functional role in Claude, 10 мегабайт текста, одно из самых масштабных в interpretability за последние годы. Тем, кто серьёзно работает с LLM, я бы рекомендовал прочитать целиком.
А вы замечали подобные паттерны поведения при работе с Claude?
Пишите в комментариях — интересно узнать. Спасибо за прочтение!
Жемал Хамидун · Head of AI Alpina Digital, CPO AlpinaGPT