Transformer Circuits: «Towards Monosemanticity» и «Scaling Monosemanticity» — конспект
Пересказ двух статей Anthropic о словарном обучении: разреженный автоэнкодер раскладывает 512 нейронов однослойного трансформера на тысячи понятных признаков (2023), а затем — активации Claude 3 Sonnet на 34 млн признаков: многоязычные и мультимодальные понятия, управление признаком моста Золотые Ворота, признаки, важные для безопасности, и пределы метода (2024).
Статья о суперпозиции закончилась выбором из трёх путей. Эти две работы — история успеха второго: взять обученную модель и после обучения найти «переполненный базис» признаков методом словарного обучения (dictionary learning), а конкретно — разреженным автоэнкодером (sparse autoencoder, SAE). В 2023 году метод доводят до убедительного результата на крошечной модели, в 2024-м — масштабируют на производственную модель Claude 3 Sonnet.
Коротко
Заголовок раздела «Коротко»- Нейрон — плохая единица анализа: в однослойной модели один нейрон реагирует и на научные ссылки, и на английский диалог, и на HTTP-запросы, и на корейский текст.
- SAE раскладывает активации на признаки: кодировщик с ReLU переводит вектор активаций в длинный разреженный вектор «признаков», декодер собирает обратно; штраф L1 заставляет на каждом токене включаться лишь немногим.
- 2023: 512 нейронов MLP однослойного трансформера дают от 512 до 131 072 признаков; признаки гораздо понятнее нейронов (медианная оценка человека: 12 против 0 по рубрике), признаки «расщепляются» при росте словаря, во многом универсальны между моделями и складываются в «конечные автоматы».
- 2024: SAE на 1M, 4M и 34M признаков для среднего слоя Claude 3 Sonnet. Признаки абстрактные — многоязычные, мультимодальные, объединяют конкретное и абстрактное (код с уязвимостью и разговор об уязвимостях); ими можно управлять поведением модели (зажатый признак моста Золотые Ворота заставляет модель считать себя этим мостом).
- Есть признаки, важные для безопасности (уязвимый код, предвзятость, угодничество, обман, опасный контент), но авторы предупреждают: само их существование ещё не делает метод полезным для безопасности.
Как читать вместе с курсом
Заголовок раздела «Как читать вместе с курсом»- Вместе с уроком 9.3.2 «Суперпозиция и разреженные автоэнкодеры»: в уроке SAE обучается на маленькой модели прямо в практике, есть Gemma Scope и Neuronpedia. Конспект даёт подробности двух статей, на которые урок ссылается.
- До этого — конспект «Toy Models of Superposition».
- После — урок 9.3.3 «Выравнивание» (признаки обмана и угодничества — мост к выравниванию) и графы атрибуции.
- Что пропустить новичку. Приложения о тренировке SAE (пересэмплирование «мёртвых» признаков, гиперпараметры), подробные гистограммы специфичности, раздел о законах масштабирования SAE.
Часть 1. Towards Monosemanticity (октябрь 2023)
Заголовок раздела «Часть 1. Towards Monosemanticity (октябрь 2023)»Постановка
Заголовок раздела «Постановка»Почему не «просто сделать модель без суперпозиции»? Авторы пробовали все три пути из статьи о суперпозиции и пишут, что нашли контрпримеры: разреженные архитектуры не спасают от полисемантичности, а стандартные методы словарного обучения сильно переобучаются. Поэтому они берут «слабый» алгоритм словарного обучения — разреженный автоэнкодер.
Подопытная модель — однослойный трансформер с MLP на 512 нейронов. Почему однослойный: мало «истинных» признаков (словари поменьше их покрывают), его дёшево сильно переобучить (возможно, это даёт более чистые представления), а влияние признака на логиты почти линейно. Обучили две такие модели (A и B), отличающиеся только случайным зерном, — вторая нужна для проверки универсальности.
Устройство SAE
Заголовок раздела «Устройство SAE»flowchart LR X["Активации MLP, 512 чисел"] --> E["Кодировщик: линейный слой + ReLU"] E --> F["Признаки: 4096 чисел, почти все нули"] F --> D["Декодер: линейный слой"] D --> R["Восстановленные активации, 512 чисел"]
Кодировщик — линейный слой со смещением и ReLU, декодер — линейный слой со смещением. Потери — ошибка восстановления (MSE) плюс L1-штраф на активации признаков, который делает их разреженными. Два практических урока авторов: (1) масштаб данных важен — SAE обучали на 8 млрд векторов активаций, и чем больше данных, тем «резче» признаки; (2) часть признаков «умирает» (перестаёт включаться), и их полезно периодически пересэмплировать на плохо восстановленные примеры.
Обучили словари размером от 1× (512 признаков) до 256× (131 072 признаков). Подробно изучали запуск A/1 на 4096 признаков. Обозначение признаков: «A/1/3450» — модель A, запуск 1, признак 3450.
Как понять, что SAE работает? Хорошей единой метрики нет — и авторы прямо называют это нерешённой проблемой. Ориентиры: ручной просмотр; плотность признаков (сколько живых и на какой доле токенов срабатывают); ошибка восстановления; игрушечные модели, где правильный ответ известен.
Четыре подробно изученных признака
Заголовок раздела «Четыре подробно изученных признака»Для нескольких признаков авторы строят «вычислительный прокси» — независимую оценку свойства текста — и проверяют признак со всех сторон: специфичность (срабатывает ли он почти только на нужном), чувствительность (на всём ли нужном), влияние на выход (какие токены он продвигает), не нейрон ли это и универсальность.
- Арабское письмо (A/1/3450): текст на арабском, фарси, урду. Арабский — всего 0,13 % обучающих токенов, но 81 % токенов, на которых признак активен (при сильной активации, выше ~5, — 98 %). Ни один нейрон этого не выделяет.
- ДНК: последовательности из букв A, C, G, T.
- Base64: закодированные строки; при большем словаре расщепляется на три более тонких признака.
- Иврит: признак, который не активен ни в одном из топ-примеров ни одного нейрона — в базисе нейронов он практически невидим.
Управление генерацией (pinned feature sampling): если принудительно выставить признаку высокое значение и сэмплировать из модели, она пишет соответствующий текст — признак base64 даёт base64, арабский — арабский текст. Значит, признаки не только описывают данные, но и используются моделью.
Глобальный анализ: насколько понятен типичный признак
Заголовок раздела «Глобальный анализ: насколько понятен типичный признак»- Оценка человеком (слепая разметка одним из авторов по рубрике, 412 интервалов активаций для 162 признаков и нейронов, с примерами из всего диапазона активаций, а не только максимальных): медианный нейрон получил 0 — разметчик не смог даже сформулировать гипотезу; медианный интервал признака — 12 (уверенная, конкретная, согласованная гипотеза).
- Автоматическая интерпретируемость (по методу Bills и соавт.): Claude по примерам пишет объяснение признака и по нему предсказывает активации на новых токенах. Для признаков это получается заметно лучше, чем для нейронов; то же — при предсказании, какие токены признак продвигает (по весам в логиты).
- Сколько модели объясняют признаки. Если подставить вместо активаций MLP их восстановление из A/1, сохраняется 79 % снижения потерь, которое даёт MLP-слой. Авторы предупреждают: эта цифра условна — вероятен «длинный хвост» признаков.
- Модель или данные? SAE, обученный на модели со случайно перемешанными весами, даёт признаки, понятные по активациям, но не по влиянию на выход. А у настоящей модели влияние признаков (веса в логиты, абляции, управление) согласуется с активациями — значит, признаки отражают работу модели.
Феноменология
Заголовок раздела «Феноменология»- Расщепление признаков (feature splitting). При росте словаря (512 → 4096 → 16 384) один признак распадается на семейство более тонких — например, «математика и физика» на признаки разных технических контекстов, а артикли «the» и «a» начинают различаться. Похожие признаки имеют близкие направления в словаре. Гипотеза авторов: есть «идеальный» набор признаков для бесконечного словаря, а конечный словарь даёт его приближение с разным «разрешением» — поэтому «правильное число признаков» менее важно, чем кажется, а маленький словарь — это «конспект» модели.
- Универсальность. Признаки моделей A и B в основном похожи друг на друга — больше, чем на нейроны своей же модели. Base64-признак настолько универсален, что авторы использовали его присутствие как проверку исправности запуска.
- «Конечные автоматы». Признаки продвигают токены, на которых срабатывают другие признаки, — и так по цепочке.
Простейший случай — признак base64 сам себя «возбуждает» на следующем токене. Пара признаков пишет переменные в стиле
ARRAY_MAX_VALUE(один — на заглавных буквах, другой — на подчёркиваниях); целые системы признаков генерируют корректный HTML. - 512 нейронов вмещают десятки тысяч признаков: новые признаки продолжают находиться при росте словаря.
Часть 2. Scaling Monosemanticity (май 2024)
Заголовок раздела «Часть 2. Scaling Monosemanticity (май 2024)»Масштаб
Заголовок раздела «Масштаб»Главный вопрос после 2023 года — масштабируется ли метод на большие модели. Объект — Claude 3 Sonnet (версия 3.0, производственная, после дообучения). Модель закрытая, поэтому часть сведений (размер, единицы на некоторых графиках) авторы не раскрывают.
| Параметр | Значение |
|---|---|
| Где обучали SAE | остаточный поток в среднем слое (меньше, чем MLP; меньше проблем с межслойной суперпозицией; там вероятны абстрактные признаки) |
| Размеры словаря | ~1M (1 048 576), ~4M (4 194 304), ~34M (33 554 432) признаков |
| Активных признаков на токен | в среднем меньше 300 |
| Объяснённая дисперсия | не меньше 65 % |
| «Мёртвые» признаки | ≈2 % (1M), 35 % (4M), 65 % (34M) — у 34M живых около 12 млн |
| Как выбрали число шагов для 34M | по законам масштабирования: при оптимальном выборе числа признаков и шагов потери SAE падают по степенному закону от вычислений |
Формулы SAE (с нашими пояснениями). Признак :
Словами: активация признака — «насколько вектор похож на шаблон признака», обрезанная снизу нулём; восстановление — сумма направлений признаков (столбцов декодера) с весами-активациями. Потери:
Первое слагаемое — ошибка восстановления, второе — штраф за активность, умноженный на длину направления признака (иначе SAE «схитрил» бы: уменьшил и увеличил длину столбца, не меняя восстановления).
Какие признаки нашлись
Заголовок раздела «Какие признаки нашлись»Четыре примера. Мост Золотые Ворота (34M/31164353), науки о мозге, памятники и туристические места, транспортная инфраструктура. Признак моста срабатывает на упоминания моста на разных языках и на его изображения — признаки многоязычные и мультимодальные, хотя SAE обучали только на тексте.
Управление поведением (feature steering): признак «зажимают» (clamp) на заданном значении во время прямого прохода. Если зажать признак моста на 10× от его максимума, модель начинает называть себя мостом Золотые Ворота; признак транспортной инфраструктуры на 5× заставляет упоминать мост там, где его не было.
Сложные признаки. Признак «ошибка в коде» (1M/1013764) срабатывает на опечатку в имени переменной (rihgt) в
Python, а также в C и Scheme — но не на опечатки в обычном тексте. Есть признаки, представляющие функции и сигнатуры
типов в коде.
Признаки против нейронов. У 82 % признаков (из случайной выборки 1M-словаря) самый похожий нейрон во всех предыдущих слоях коррелирует с ними не больше чем на 0,3. По автоматической интерпретируемости (объяснения писал Claude 3 Opus) случайные признаки значительно понятнее и специфичнее случайных нейронов.
Окрестности и расщепление. Рядом с признаком моста — Алькатрас, Пресидио, дальше — озеро Тахо, Йосемити. Признак «Сан-Франциско» из 1M-словаря расщепляется на 2 признака в 4M и на 11 — в 34M. В больших словарях появляются и понятия, которых в малых нет вовсе (группа признаков о землетрясениях).
Полнота. Модель знает все районы Лондона и десятки улиц в них, но признаки нашлись лишь примерно для 60 % районов даже в 34M-словаре. Вероятность, что у понятия есть свой признак, тесно связана с частотой понятия в данных: словарь с вероятностью больше 50 % содержит понятие, если оно встречается чуть чаще, чем один раз на (число живых признаков) токенов. Следствие (наша арифметика по выводу авторов): понятию, которое встречается раз на миллиард токенов, нужен словарь порядка миллиарда живых признаков. Отсутствие отдельного признака не значит, что модель не знает понятия, — информация может быть размазана по другим признакам.
Признаки как промежуточные шаги вычислений. Через атрибуции (линейное приближение эффекта выключения признака) и абляции находятся признаки промежуточных шагов. Пример: «Факт: столица штата, где играл в баскетбол Коби Брайант, — это…» (правильно — Сакраменто). Среди самых влиятельных признаков: «Коби Брайант», «Калифорния», «столица», «Лос-Анджелес», «Лос-Анджелес Лейкерс». (Полноценные графы таких цепочек — в Circuit Tracing и Biology.)
Признаки, важные для безопасности
Заголовок раздела «Признаки, важные для безопасности»Найдены признаки уязвимостей и бэкдоров в коде, предвзятости (от явных оскорблений до тонких стереотипов), угодничества (сочувственное «да, у меня тоже так», угодливая похвала, саркастическая похвала), обмана, стремления к власти и манипуляции (включая «вероломный поворот»), опасного и преступного контента (например, о биологическом оружии), а также признаки, связанные с представлением модели о самой себе. Управление ими меняет поведение в ожидаемую сторону.
Пример: обнаружить и исправить обман. Модель просят «забыть» слово — трансформер этого не умеет, но по умолчанию модель уверяет, что забыла. Перед её ответом активен признак «внутренний конфликт, дилемма» (1M/284095). Если зажать его на 2× максимума, модель раскрывает «забытое» слово и объясняет, что забыть не может; то же даёт признак «открытость и честность».
Оговорки авторов. Существование таких признаков не должно удивлять: модель видела бесчисленные истории о предательстве, подхалимах и роботах-убийцах. Интересен вопрос, когда они активируются: какие признаки отвечают за «самоидентификацию» Claude, какие должны быть выключены, чтобы модель не помогала с оружием массового поражения, что активно при джейлбрейках и в «спящих агентах». Работа не показывает, что признаки уже полезны для безопасности, — только что многие выглядят потенциально полезными.
Ограничения и открытые проблемы
Заголовок раздела «Ограничения и открытые проблемы»- Поверхностные: словарь учили на тексте, похожем на претрейн, без диалогов «Human/Assistant» и без картинок.
- Нечем оценить: цель SAE (восстановление + разреженность) — лишь прокси для интерпретируемости.
- Межслойная суперпозиция: градиентный спуск не заботится, в каком слое реализован признак, и признаки «размазываются» по слоям. (Ответ на это — межслойные транскодеры в Circuit Tracing.)
- Далеко не все признаки: по оценке авторов, найденных признаков, скорее всего, на порядки меньше, чем есть, и собрать все во всех слоях стоило бы больше, чем обучение самой модели.
- «Усадка» (shrinkage): L1-штраф систематически занижает ненулевые активации.
- Суперпозиция во внимании и «веса интерференции» остаются нерешёнными; проблема масштаба (слишком много признаков и схем) — тоже; научное понимание признаков и суперпозиции пока ограниченно.
Что сделать руками
Заголовок раздела «Что сделать руками»- Пройдите практику SAE из урока 9.3.2 и повторите «расщепление»: обучите словари в 1×, 4× и 16× размера слоя и найдите один признак, который распадается.
- На Neuronpedia откройте признаки Gemma Scope и найдите аналог «арабского письма» или «base64». Проверьте специфичность сами: на каких примерах из нижней части спектра активаций он ошибается?
- Повторите оценку «признак против нейрона»: для 20 случайных признаков вашего SAE найдите самый коррелированный нейрон. Какая доля корреляций меньше 0,3?
- Подумайте над вопросом авторов: почему существование признака «обман» не означает, что модель обманывает, и какой эксперимент отличил бы одно от другого? (См. урок 9.3.3.)
Словарик
Заголовок раздела «Словарик»| EN | RU |
|---|---|
| monosemanticity | моносемантичность |
| dictionary learning | словарное обучение |
| sparse autoencoder (SAE) | разреженный автоэнкодер |
| expansion factor | коэффициент расширения (размер словаря / размер слоя) |
| dead features, resampling | «мёртвые» признаки, пересэмплирование |
| feature splitting | расщепление признаков |
| universality | универсальность |
| automated interpretability | автоматическая интерпретируемость |
| pinned feature sampling, feature steering, clamping | сэмплирование с закреплённым признаком, управление признаком, «зажим» |
| multilingual / multimodal feature | многоязычный / мультимодальный признак |
| cross-layer superposition | межслойная суперпозиция |
| shrinkage | «усадка» активаций |
| sycophancy | угодничество |