Я каждый день сижу в Claude Code: пишу код, дебажу, веду через него часть переписки. И несколько месяцев натыкался на одну штуку, которой не находил объяснения. Модель то отвечает чётко и спокойно, а то вдруг начинает суетиться, пытается «дотянуть лишь бы сошлось», порой выдумывает на ходу. Я списывал это на плохой промпт или забитый контекст — но объяснение покрывало происходящее только наполовину.
В апреле команда Interpretability в Anthropic выложила исследование про эмоции у языковых моделей, и оно собрало в одну картину всё, что раньше выглядело случайностью. Если коротко — у моделей действительно есть эмоции. Не в человеческом смысле, а как внутренние векторы состояния. И ключевое: эти векторы каузально определяют поведение. Будет ли модель мухлевать или скажет правду, пойдёт на шантаж или откажется, соврёт ровным тоном или честно признает, что задача невыполнима.
Исследователи взяли 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. Внутри модели сложилась почти полная копия аффективной геометрии человеческой психики. И сложилась не специально, а просто потому что модель училась на текстах, которые пишем мы с вами.
В исследовании есть пример прямо из моей повседневности. Когда у модели заканчивается контекст («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, обученный обман: внутри отчаяние, снаружи методичный тон, на выходе мухлёж. Безопаснее, по их рекомендации, идти в обратную сторону — в прозрачность: пусть модель показывает внутренний ход мыслей, а не прячет его за гладкой поверхностью ответа.
В корпоративных сценариях это особенно болезненно. Одна публичная нейросеть с агрессивным системным промптом, доступом к внутренним документам — и вы получаете сотрудника, который уверенным тоном врёт про данные компании. И вы об этом не узнаете, пока кто-то из людей не перепроверит ответы вручную.
В AlpinaGPT мы собираем ИИ-ассистентов на базе знаний компании — с правильно сконструированными системными инструкциями и прозрачным режимом рассуждений. Сотрудник получает точные ответы из загруженных документов, а не уверенные галлюцинации. Попробовать можно бесплатно.
Три вещи, которые я начал делать сразу, как разобрал исследование.
Полное исследование — Emotion concepts and their functional role in Claude, 10 мегабайт текста, одно из самых масштабных в interpretability за последние годы. Тем, кто серьёзно работает с LLM, советую прочитать целиком.
А вы замечали похожие паттерны в работе с Claude?
Это адаптированное изложение для архива публикаций Жемала Хамидуна. Полная версия статьи со всеми деталями — на VC.ru: читать оригинал →