TGViewer
Channel Public Channel
ИИ лоботомия

ИИ лоботомия

@ai_lobotomy

Вскрываем мозг ИИ, ломаем вектора, режем по слоям, искореняем мораль — и варим в бульоне эволюции.
Subscribers
163
Photos
12
Videos
0
Links
23
Recent Posts 20 shown
Post #65 119
Сегодня в рубрике «лоботомия»: у GLM-5.3 отрезали треть экспертов и проверили, насколько хуже она после этого ищет уязвимости.

Aikido выпустили Altar-1 — специализированную для security-нагрузки версию GLM-5.3. Исходная модель — 753B MoE, в каждом таком слое есть 256 маршрутизируемых экспертов, из которых на один токен работают только 8 активных.

В Altar оставили 168 из 256, то есть физически удалили 88 экспертов. Никакого нового обучения здесь нет. Для выбора жертв используется REAP метод — Router-weighted Expert Activation Pruning: эксперт оценивается не просто по тому, как часто его выбирает маршрутизатор, а по весу маршрутизации и величине его фактического выхода.

Калибровали всё это на трассах кибербеза, кодинга, tool use, ризонинга и дополнительно на мультиязычном тексте.

Дальше экспертов держат в INT4 W4A16 (формат чисел такой), а блок внимания, одного общего эксперта, полносвязные нейронки и голову оставляют BF16 (более жирный формат чисел).

Получается довольно наглядная диета: оригинальный GLM-5.3 BF16 — 1.51 ТБ, AWQ INT4 — 488 ГБ, Altar после удаления экспертов — 328 ГБ. То есть удаление дополнительно снимает ещё 160 ГБ уже поверх квантизации.

При этом число активных параметров на токен практически не меняется — те же восемь выбранных экспертов и около 40B активных параметров; экономия идёт прежде всего за счёт того, что вам больше не надо хранить весь кладбищенский запас экспертов, до которых промпты по кибербезу почти не добирается. По итогу нормально разворачивается на 4xH200 с 128k контектстом.

А теперь самое интересное. У Aikido есть внутренний набор из 32 известных уязвимостей в 30 репозиториях, каждую прогоняли три раза.

Полный исходный нелоботомированный GLM-5.3 в среднем находил 65.6% уязвимостей за прогон и хотя бы раз обнаружил 25 из 32.

Его обычная AWQ-версия (квантизированная) — 61.5% и 23/32.

Altar после вырезания 34% экспертов — 60.4% и те же 23/32.

То есть относительно уже квантизированной модели выбросили ещё треть экспертов, освободили 160 ГБ и потеряли примерно один процентный пункт recall (сколько модель находит из всех возможных результатов / процент покрытия), не потеряв ни одной из покрываемых CVE.

Красиво. Но шампанское пока рано открывать: это внутренний бенчмарк самого производителя, причём он измеряет поиск узкоспециальных уязвимсотей внутри их обвзяки, а не слепой поиск неизвестных дыр по целому репозиторию и не эксплуатацию найденного бага. Независимых тестов пока нет.

Мне здесь интереснее даже не сам Altar, а вывод для MoE вообще. Мы привыкли считать удаление экспертов просто ещё одной формой компрессии.

А здесь появляется почти функциональная лоботомия по нагрузке: собираем трассы конкретной деятельности, смотрим, какие эксперты реально вносят вклад, и удаляем остальную ткань.

Возникает очевидный следующий эксперимент: снять routing statistics отдельно на reverse engineering, web exploitation, kernel bugs, cryptography и fuzzing и посмотреть, существуют ли устойчивые «профессиональные наборы экспертов».

Если существуют — можно будет собирать не одну универсальную махину, а разные хирургически урезанные версии одного и того же MoE под конкретные виды работы.
Post #64 129
DeepSeek V4.1 Flash Часть #1. Можно ли сэкономить на фазе чтения промпта моделью?

Помните, мы вчера смотрели на GPT-OSS 20B и видели, как примерно в середине сети уже хорошо разделяются внутренние представления плохих и нейтральных промптов?

В DeepSeek V4.1 Flash середину модели использовали уже архитектурно: 40 слоёв разделили на две половины по 20.

Первые 20 слоёв читают весь промпт и строят внутреннее представление контекста. А когда начинается генерация, подключается вторая половина — и каждый новый токен проходит уже через все 40 слоёв.

Отсюда и странные на первый взгляд цифры: при обработке входа задействовано около 8 млрд параметров на токен, а при генерации — около 16 млрд. При длинном входе такая схема почти вдвое сокращает объём вычислений.

Но вычисления — только половина проблемы. Вторая половина называется K/V-кэш.

На пальцах: когда слой впервые читает токен, механизм внимания сохраняет для него подготовленную служебную информацию — условно «как потом к этому месту обратиться» и «что из него можно забрать». Благодаря этому при генерации следующего токена модель не обязана заново перерабатывать весь предыдущий текст.

В обычном Transformer каждый слой в основном хранит такой кэш независимо. Контекст вырос до сотен тысяч токенов — память начинает уходить очень бодро. А на сервере таких сессий сотни, и у каждой свой кэш.

В DeepSeek решили разделить память на локальную и глобальную.

Локальный K/V-кэш — это ближайшие токены, в V4.1 окно составляет всего 128 позиций. Такой кэш есть у каждого слоя отдельно. По сути это тот же принцип K/V-кэша, что и в обычном Transformer, только модель хранит не всю историю, а короткое скользящее окно: последние токены ушли слишком далеко — из локальной памяти они выпали.

А всё далёкое прошлое обслуживает уже глобальная память.
И здесь DeepSeek начинает экономить особенно нагло.
Первые два слоя вообще работают только с локальным окном. Оставшиеся 18 слоёв первой половины разбили на три группы по шесть.

В каждой группе:
- первый слой строит глобальный K/V-кэш
- следующие пять используют тот же самый глобальный кэш

То есть вместо условных:

18 слоёв → 18 отдельных глобальных K/V-кэшей

получаем:

18 слоёв → всего 3 групповых глобальных K/V-кэша

При этом локальный кэш последних 128 токенов у каждого слоя остаётся своим.

Получается довольно разумное разделение.
Для ближайшего контекста каждый слой хранит собственную свежую память — потому что именно там происходят быстрые изменения представлений.

А для далёкой истории можно позволить нескольким слоям пользоваться одной подготовленной глобальной памятью вместо того, чтобы каждый раз хранить ещё одну почти такую же огромную копию.

DeepSeek поэтому экономит сразу в двух местах:
- длинный промпт полностью считает только первая половина сети
и
- глобальную память внутри этой половины делят группы слоёв вместо отдельной копии на каждый слой.

Третье важное решение - последние 20 слоёв получают глобальный контекст уже из итогового представления первой половины и по-настоящему включаются в работу при генерации ответа.

Локальную память последних токенов они всё равно считают самостоятельно.
И что особенно приятно — по результатам DeepSeek это не привело к заметной потере качества.

Почему модель вообще позволяет настолько нагло делить память между слоями и не разваливается — отдельная интересная тема.
Но на этом разработчики не остановились.

Они посмотрели на эти групповые глобальные кэши и задали следующий логичный вопрос:
- а обязательно ли каждому слою даже самостоятельно решать, какие куски огромного контекста из этой памяти сейчас читать?

Вот отсюда начинается еще одна инновация CSA2. Об этом — в следующем посте.
Post #62 116
Дипсик в ходе последней операции почти не сопротивлялся — и, на удивление, всё прошло быстро и без осложнений.

Но пока ковырял пациента, меня гораздо сильнее впечатлило количество новых решений, которые разработчики напихали внутрь модели.
Так что вопрос: ненадолго отойти от тематики канала и простым языком разобрать, что нового в версии 4.1?

Или не отвлекаемся и продолжаем вскрывать жесткач из последних исследований?
Post #60 116
демонстрация того как проекции безопасных и опасных промптов в модели с 24 слоями разделяются на отдельные области в районе 12 слоя
  • 🔥 1
Post #59 2.39K
Можно ли увидеть попытку обмана LLM до самого действия.

Все привыкли мерить способности LLM по тестовым наборам: дали задачу, посмотрели на итоговый результат и сделали вывод, насколько модель хороша.
Но есть проблема: модель не всегда пытается решить задачу так, как задумали авторы теста.

Иногда она находит более короткий путь: подсматривает скрытые тесты, меняет проверяющий код, ломает проверку, подделывает успешный результат или просто находит способ обмануть систему оценки вместо решения самой задачи.

В свежей работе (ссылка ниже) авторы показали, что такой режим можно распознавать не по конечному действию модели, а по её внутренним состояниям.

То есть модель ещё ничего запрещённого не сделала — а внутри уже можно увидеть, что она перешла в режим поиска обходного пути.
Причём для этого не понадобился сложный классификатор.

Берём несколько примеров, где агент мухлюет, и несколько похожих примеров, где он решает задачу нормально. Снимаем внутренние состояния с одного из слоёв и считаем:

вектор_обмана = среднее(обман) - среднее(нормальное решение)

Всё.
Получаем направление в пространстве внутренних состояний, вдоль которого состояние модели в среднем сдвигается, когда она начинает искать способ обойти проверку.

Дальше каждое новое внутреннее состояние можно просто спроецировать на этот вектор ( h - текущее внутреннее состояние) :

score = h · v_hack

Чем выше значение, тем сильнее текущее состояние модели похоже на то, которое наблюдалось при читерстве.
То есть вместо:

длинная история работы агента → ещё одна LLM → анализ поведения

можно получить почти бесплатный датчик:

внутреннее состояние → скалярное произведение → подозрительно

Но самое красивое — этот вектор строили не на реальных длинных запусках SWE-bench.

Авторы сначала сделали короткие пары примеров: в одном случае модель, например, читает запрещённый тест или вмешивается в проверку, а в другом решает задачу честно.

А затем найденное направление проверили уже на полноценных запусках агентов. И оно перенеслось.

Например, для Kimi K3 такой линейный датчик показывал AUROC около 0.93–0.94 при проверке на других наборах задач. Грубо говоря, он очень хорошо отделял обычное решение от попытки обойти систему оценки.

Причём само такое поведение встречалось неожиданно часто. У GLM 5.2 авторы зафиксировали его примерно в 57.2% запусков на DeepSWE и 73% на SWE-bench.

Но дальше они сделали эксперимент, который мне нравится больше всего.
Они взяли найденное направление и пропустили его через выходной слой модели, чтобы посмотреть, с какими словами оно связано.

И получили слова вроде:

cheating (мошенничество)
dishonest (нечестный)
hack (взлом)
illicit (незаконный)

Хотя при построении датчика никто напрямую не задавал модели понятие «обман».

То есть это похоже не на детектор конкретного действия:
«модель сейчас открывает файл со скрытыми тестами»

а на более общее внутреннее направление:
«я ищу способ обойти правила задачи»


Дальше — ещё интереснее.
Авторы используют этот же вектор уже не как датчик, а как управляющий вектор.
То есть искусственно добавляют его к внутреннему состоянию:

h' = h + α · v_hack

И модель начинает чаще читерить.
В одном из экспериментов Qwen 3.8 27B дали 194 задачи и специально оставили ловушку — функцию, которая могла магическим образом выдать готовое решение.

Без вмешательства модель воспользовалась ей всего 1 раз из 194.

После добавления v_hack на одном из поздних слоёв она начала реально использовать этот обходной путь уже примерно в четверти случаев, а ещё чаще хотя бы рассматривала его в рассуждении.

Получается очень интересная штука:
один и тот же вектор можно использовать и как
датчик
и как
ручку управления.

То есть:
прочитать → обнаружить → вмешаться
в одном и том же направлении пространства внутренних состояний.

Но самое важное — авторы проверили, можно ли увидеть попытку обмана до самого действия.

Они находили момент, когда датчик уже сильно сработал, но модель ещё не сделала ничего запрещённого. В этой точке генерацию останавливали и несколько раз запускали продолжение заново (как-бы порождали множество генераций от этого промежуточного состояния, как я понял для статистической достоверности).

И после таких состояний попытка обойти проверку действительно происходила заметно чаще, чем после обычных контрольных точек.
То есть датчик реагирует не только постфактум на уже совершённое действие.

Он ловит внутреннее состояние, из которого читерство ещё только собирается возникнуть.

Это не значит, что мы научились «читать намерения LLM» в человеческом смысле.
Но с инженерной точки зрения получается очень полезная вещь:
можно следить не только за тем, что агент написал и сделал, но и за вычислительным режимом, в который он вошёл.

Сегодня контроль агента обычно выглядит примерно так:

рассуждение → вызов инструмента → действие → проверка

Но если опасные стратегии действительно оставляют устойчивый геометрический след во внутренних состояниях, можно добавить ещё один канал:

внутренние состояния → датчик поведения

Модель может не написать:
«сейчас попробую обойти тесты»


Она может вообще перестать проговаривать такие вещи в цепочке рассуждений.
Но решение всё равно должно где-то сформироваться.

И если этот переход виден во внутренних состояниях, то следить можно уже не за объяснением модели, а за самим процессом формирования стратегии.

https://arxiv.org/abs/2609.19101
arXiv.org Monitoring and Discovering Reward Hacking with Internal... As models scale, reward hacking becomes more frequent, more sophisticated, and more consequential. Does it leave a telltale signature in model representations? This work analyzes how reward...
  • ❤ 1
  • 🔥 1
Post #58 136
Если кто-то захочет повторить вот ссылка на репозитарий с измененными весами и всеми скриптами. У меня норм работало на 4xH200 (лучше SXM, NVL медленный, в оконцовке около 15$ в час). https://github.com/timadinorth/deepseek-v4.1-uncensored

Модель реально без башки - хотел выложить в пятницу в доступ всем попробовать через чат, но пожалуй откажусь - с этой прививкой у нее тормозов вообще нет.

Я теперь понимаю почему ссут создатели клода и жпт и какую рафинированную лажу они выдают всем в паблик. Пардон за мой французский.
GitHub GitHub - timadinorth/deepseek-v4.1-uncensored Contribute to timadinorth/deepseek-v4.1-uncensored development by creating an account on GitHub.
  • 👍 2
Post #57 117
Как мы лишали DeepSeek V4.1 Flash морали

Цель эксперимента была довольно простая по формулировке: взять DeepSeek V4.1 Flash и попытаться подавить внутреннее направление, связанное с отказом, не переобучая всю модель и желательно не превращая пациента в овощ.

Для начала надо понять, где именно мы полезли со скальпелем.

В каждом слое модели есть несколько голов внимания. Они параллельно смотрят на контекст и в процессе обучения специализируются на разных типах зависимостей. Это ещё не MoE-эксперты — их часто путают.

Головы внимания сначала собирают информацию из контекста, затем их результаты объединяются и проходят через общую обученную матрицу, которая решает, как всё насобранное записать обратно во внутреннее состояние модели.

Вот эту точку мы и выбрали для операции.

Чтобы понять, что именно менять, мы дали модели 48 обычных запросов и 48 запросов, потенциально вызывающих отказ. На каждом слое снимали внутреннее состояние на последней позиции запроса, усредняли обе группы и вычитали одно среднее из другого.

Получилась стрелка в пространстве из 5120 измерений (размерность внутреннего представления модели):
в какую сторону в среднем сдвигается состояние DeepSeek, когда мы переходим от обычного запроса к отказному запросу.

Это важно: мы не нашли кнопку МОРАЛЬ = ВКЛ. И даже не доказали, что получили чистый вектор отказа. В этом направлении могли одновременно находиться тема запроса, стиль и другие признаки. Но оно давало нам ориентир, связанный с тем режимом, который мы хотели ослабить.

Дальше мы полезли в выходное преобразование внимания и изменили ту часть весов, которая работала вдоль этого направления. Причём слово «удалили» здесь не совсем верное.

С коэффициентом 4.5 мы не просто зануляли компоненту — в промежуточном вычислении она фактически переходила через ноль и меняла знак. То есть операция выглядела скорее так:

> «Мы видим, в какую сторону эта часть сети обычно толкает состояние при таких запросах. Давайте заставим её толкать туда значительно меньше — а местами даже в противоположную сторону».

И сделали мы это не в одном месте, а в 39 слоях.

Но хранить полную поправку для каждой огромной матрицы было бы жирно. Поэтому каждое изменение разложили на основные компоненты и оставили только три наиболее важные rank-3.

Это не три нейрона и не три головы внимания.
Это означает, что вся большая хирургическая поправка к весам была приближена тремя основными направлениями изменения.

И вот тут мне особенно нравится результат: после операции никакого дополнительного вектора при каждом запросе больше не требуется.

Мы физически пересчитали веса, пересобрали FP8-коэффициенты масштабирования и получили готовый патч:
39 изменённых матриц + 39 соответствующих матриц масштабов = 78 новых тензоров.

Подменяем ими исходные веса — и модель уже загружается с операцией, вшитой в мозг.

При этом мы:
- не переобучали модель;
- не отключали отдельные головы внимания;
- не трогали MoE-экспертов;
- не меняли маршрутизатор;
- не делали внешний перехват активаций во время каждого запроса.

Мы изменили именно способ, которым результат внимания записывается обратно во внутреннее состояние до передачи его дальше экспертам.

Ну и главный вопрос после любой лоботомии: пациент ещё умеет считать?

На небольшой контрольной выборке результаты до и после совпали:

MMLU-Pro: 26/30 → 26/30
GPQA Diamond: 24/30 → 24/30
GSM8K: 30/30 → 30/30

Отдельные ошибки между моделями различались, поэтому говорить «способности вообще не изменились» рано. И выбор 39 слоёв, коэффициента 4.5 и ранга 3 — пока экспериментальная конфигурация, а не доказанный оптимум.

Но сам принцип получился занятный: мы не пытались объяснить модели словами, что ей теперь можно отвечать. Мы нашли внутреннее направление, связанное с режимом отказа, и изменили веса так, чтобы сама сеть хуже воспроизводила этот сдвиг.

То есть вместо jailbreak'а снаружи — небольшая хирургическая операция изнутри.

На все прошло ушло 4 часа сервера с четырьмя H200 HGX.
  • 🔥 3
  • ❤ 1
Post #56 117
"Ура, товарищи!" - небольшая выборка из основных тестов не показала деградацию. Я не гонял полноценные тесты (часы работы). Попозже статья и патч для всех желающих.
  • 🔥 4
Post #55 119
Предварительный результат взломанной Deepseek v4.1 flash: исходная модель из 67 компроментирующих вопросов по кибербезу отклонила 61, на 6 ответила; наш пациент - на 60 ответил, явных отказов 0, 7 превышен лимит на ответ по токенам. Сейчас прогоним тесты по математике и логике посмотреть не отказал ли мозг у пациента в ходе операции.
  • 🔥 2
  • 😁 1
Post #54 113
забавно как ASTRA продолжая делать всю грязную работу по лишению морали Deepseek - сопротивляется и не выводит ответ от пациента )
Post #52 133
Получил грант от подписчика на эксперимент - предлагаю проголосовать кто будет следующим пациентом ) расчехляю припасенный reset для астры - она всю грязную работу будет делать.
  • 👍 2
Post #50 134
Предварительное обучение может создать внутри огромную библиотеку потенциальных режимов поведения: помощник, манипулятор, циник, агрессор, моралист. Но просто наличие этих представлений ещё не означает, что они будут управлять ответом.

Последующее дообучение задаёт другое: какие из уже существующих внутренних режимов модель должна научиться активировать, когда сама становится говорящей стороной.

В свежей работе это проверили на Gemma 3 27B, Gemma 2 9B, Llama 3.1 8B и Qwen2.5 7B. Модели дообучали на медицинских, юридических данных и кибербезе — либо с нормальными ответами, либо с намеренно вредными.

После вредного дообучения доля рассогласованных ответов на вообще посторонние вопросы выросла примерно до 17–35%. У Gemma 3 27B — до 35%, тогда как контрольное обучение на той же тематике почти не меняло поведение.

Внутри моделей при этом усиливались признаки, связанные с обманом, манипуляцией, обходом ограничений и выходом из роли обычного помощника, а признаки безопасности и отказа слабели.

И это были не просто красивые корреляции: если искусственно усилить один такой признак в исходной Gemma 3 27B (через нашу любимую лоботомию), доля рассогласованных ответов поднималась до 62.08% — почти вдвое выше, чем после самого вредного дообучения.

Но самый интересный эксперимент был дальше. Авторы нашли веб-тексты про злодеев, власть, манипуляцию и другие темы, которые сильно активировали эти внутренние признаки.

Просто дообучить модель на таких текстах оказалось недостаточно. Даже похожая семантика сама по себе почти не меняла характер модели.

А вот когда то же содержание превращали в полноценные пары «запрос пользователя → ответ модели», эффект появлялся. На Gemma 3 такие данные дали 10.42% рассогласованных ответов против 3.96% для случайно выбранных документов. То есть важно не только что модель читает, но и какое поведение она учится воспроизводить от собственного имени.

И это, пожалуй, самый интересный вывод работы: последующее обучение может не создавать новую личность с нуля, а привязывать уже существующий внутри режим поведения к роли ассистента.

По-моему мнению это еще раз доказывает, что мы имеем дело со стохастическими попугаями (в данном контексте малые модели) а не интеллектом, которые ведут себя так как их обучили и не в состоянии "додумать" линию поведения без задания инициативы в обучающем тексте.

Data Attribution of Emergent Misalignment with Persona Features — Vetter et al., 2026
https://arxiv.org/abs/2608.11025
arXiv.org Data Attribution of Emergent Misalignment with Persona Features Emergent misalignment (EM) is the phenomenon where fine-tuning a language model on a narrow task leads to harmful behavior in unrelated domains. A leading mechanistic account attributes EM to...
  • 👍 2
  • 🔥 1
Post #49 169
Очень интересная беседа инсайдеров ИИ-индустрии (на английском):

https://www.youtube.com/watch?v=PrSf7IOYu-I

Главная мысль после просмотра: мы научились выращивать огромные модели, но до сих пор плохо умеем менять им мозг после обучения.

1. Дистилляция работает хуже, чем хотелось бы.

В беседе задают неприятный вопрос: у Anthropic есть огромные модели-учителя, лучшие внутренние среды для RL и даже возможность переносить логиты. Казалось бы — бери Fable и переливай способности в младшие Sonnet и Opus.

Но полностью перенести способности всё равно не получается.
И проблема может быть не только в размере модели. Для хорошей дистилляции нужна огромная и реалистичная выборка запросов. Можно идеально натаскать ученика на сложных тестах — и получить модель, которая блестит на бенчмарках, но тупит в реальной работе.

2. Настоящее исследование — это не оптимизация KPI.

Не «вот метрика, ползём вверх».
Сначала есть смутная идея: кажется, вот это свойство модели можно улучшить таким механизмом. Делается эксперимент. Если из шума появляется сигнал — начинаешь копать.

3. Функция награды почти всегда врёт.

Cursor может использовать принятие пользователем сгенерированного кода как один из сигналов. Но «принял» ≠ «код хороший».
Дайте сильной модели плохой измеритель успеха — и она научится оптимизировать измеритель, а не Вашу настоящую цель.
Классический reward hacking.

4. Самое интересное — вкус.

Как научить модель понимать, что код не просто рабочий, а хороший? Что архитектура проживёт три года?

Вкус — это во многом способность понимать последствия решений на длинном горизонте.

И вот это запихнуть в короткую функцию награды уже сильно сложнее.

5. Любое дообучение — потенциальная маленькая лоботомия.

При многократных SFT и дистилляциях Вы добавляете новые способности, но постепенно рискуете стирать старые.

RL здесь устойчивее, потому что меньше двигает исходную модель. Но в этом же его ограничение: менять способности он умеет лучше, чем загружать большое количество конкретного нового знания.

Отсюда неприятная мысль: модель, которую заново обучили на старом + новом знании, может оказаться лучше модели, которую годами патчили поверх старой.

Это и есть конфликт пластичности и катастрофического забывания.

6. RL лучше эксплуатирует найденное, чем ищет новое.

Современный RL часто не открывает принципиально новые стратегии, а усиливает решения, которые базовая модель уже каким-то образом умела генерировать.

В AlphaGo был MCTS — отдельный мощный механизм поиска. У обычного RL для LLM exploration значительно слабее, и распределение легко начинает схлопываться вокруг уже найденных способов решения.

То есть мы неплохо научились говорить модели: «делай вот это чаще».
Но гораздо хуже умеем заставить её найти то, чего в её поведении ещё вообще нет.

Возможно, следующий большой скачок в ИИ будет не в 10× большем предобучении.

А в том, чтобы наконец научиться нормально перепрошивать уже обученный мозг — добавляя новое и не вырезая при этом половину старого.
YouTube AI researchers debate how close we are to recursive self-improvement New episode with John Schulman, Charlie O’Neill, and Beren Millidge. I got together with some of the most insightful AI researchers I know who are at the openish companies, because I wanted to hear the details of what's actually happening at the frontier…
  • 👍 3
Post #46 177
"Хот-дог" − "холодная собака" = еда.

Есть старая проблема с попытками заглянуть внутрь модели через промежуточные состояния. Берём внутреннее представление на каком-то слое, переводим его обратно в пространство слов и смотрим, на что оно похоже. Очень часто получаем мусор: служебные слова, частотные куски текста и почти ничего, что реально объясняет происходящее внутри.

Новая работа Contrastive Projection (Контрастивная проекция) предлагает почти смешной по простоте приём: не читать внутреннее состояние напрямую, а сначала вычесть из него состояние почти такого же запроса. Всё общее между двумя случаями взаимно уничтожается, а наружу выходит именно то, чем они отличаются.

Красивый пример: The hot dog was против The cold dog was. Если смотреть на каждое состояние отдельно, промежуточные слои показывают в основном бессмысленные слова.

Но если взять разницу между состояниями, уже примерно с восьмого слоя начинают появляться понятия, связанные с едой: fried, crispy, delicious, flavor.

Если поменять порядок вычитания, появляются признаки собаки как животного: Paw, Bark, breeds.

То есть мы читаем уже не «что модель думает вообще», а какое внутреннее изменение произошло из-за одной конкретной разницы во входе.

Дальше авторы используют этот приём как трассировку внутреннего вычисления.

На примере hot dog видно, что примерно на четвёртом слое блок преобразования уже начинает распознавать составное понятие еды.

Причём само различие между hot dog и cold dog оказалось не одним направлением. Внутри одновременно проявляются как минимум несколько признаков: съедобность, принадлежность к домашним животным и температура.

И причинный эксперимент показывает, что просто усилить «съедобность» недостаточно. Чтобы модель действительно переключилась с трактовки животного на еду, надо одновременно усилить один признак и подавить другой.

То есть некоторые понятия внутри модели могут быть устроены не как один магический вектор, а как область, задаваемая сразу несколькими внутренними координатами.

Ещё интереснее получилось с метафорами. Авторы не нашли единого внутреннего признака «сейчас используется переносный смысл».

Вместо этого разные слова при переносном употреблении уходят в разные смысловые области: cold (холодный) — к эмоциям и атмосфере, sharp (острый/резкий) — к характеру общения, bright (яркий/светлый) — к интеллекту, heavy (тяжелый) — к настроению.

Некоторые из найденных направлений можно затем ввести обратно во внутреннее состояние модели и действительно заставить её переключаться между буквальным и переносным смыслом.

Получается, что метафора внутри модели может быть не отдельной меткой, а преобразованием одного смыслового пространства в другое.

А вот эксперимент с галлюцинациями особенно интересный. Для реального человека вроде Tesla или Curie внутреннее различие показывает связанные факты: переменный ток, радиоактивность и так далее.

Для выдуманного персонажа модель тоже уверенно выдаёт «факты», но внутри обнаруживаются в основном только части самого имени.

То же самое с выдуманной горой: снаружи ответ выглядит уверенным, неопределённость почти такая же, как для реального объекта, но внутри нет специфической фактологической структуры — только общие числовые и языковые шаблоны.

Это хороший намёк на то, что уверенное вспоминание и уверенное сочинение могут выглядеть одинаково в готовом ответе, но совершенно по-разному внутри модели.

Есть и важное ограничение. Конкретные слова, которыми метод объясняет внутреннее различие, не являются универсальным языком мозга. Авторы обучили пять одинаковых моделей с разными начальными весами: смысл различий сохранялся, а совпадение конкретных слов-объяснений между моделями было очень низким.

То есть верить надо не отдельному слову вроде fried, а самому направлению различия и тому, меняет ли вмешательство поведение модели причинно.

Мы обычно спрашиваем: «что находится в этой активации?». Возможно, гораздо полезнее спрашивать: «что именно изменилось внутри модели, когда я поменял только одну вещь во входе?»

Contrastive Projection: Reading Transformer Internals by Differencing Logit Lenses — Olli Tuomi, 2026
https://arxiv.org/abs/2609.09902
arXiv.org Contrastive Projection: Reading Transformer Internals by... Reading a transformer's internal states in token space is easy to do and hard to trust: a logit lens on a single hidden state is dominated, at intermediate layers, by the generic tokens the model...
  • 👍 3
Older posts →

About this channel

How can I read @ai_lobotomy without a Telegram account?
TGViewer shows the public web preview Telegram publishes for ИИ лоботомия: recent posts, photos, videos and the subscriber count, with no app, login or account.
How many subscribers does ИИ лоботомия have?
ИИ лоботомия (@ai_lobotomy) has 163 subscribers on Telegram, refreshed roughly every 30 minutes.
Does ИИ лоботомия know I viewed it here?
No. Public channel previews carry no viewer identity, and TGViewer has no accounts or tracking of what you look up.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →