Transformer Circuits: «Circuit Tracing» — графы атрибуции, конспект
Пересказ методической статьи Anthropic 2025 года: межслойный транскодер (CLT) вместо MLP, локальная заменяющая модель, граф атрибуции для одного промпта, супер-узлы и проверка вмешательствами — на примерах аббревиатуры DAG, «Michael Jordan plays…» и сложения 36 + 59. Плюс честный список ограничений метода.
Признаки SAE (конспект «Monosemanticity») отвечают на вопрос «что модель представляет», но не «как она приходит к ответу». Эта статья — метод, чтобы увидеть путь вычисления на конкретном промпте: от токенов через промежуточные признаки к ответу. Она вышла в паре со статьёй о находках — «On the Biology of a Large Language Model», где метод применён к Claude 3.5 Haiku. Здесь — устройство метода, примеры на маленькой 18-слойной модели и честный список того, что метод не умеет.
Коротко
Заголовок раздела «Коротко»- Межслойный транскодер (CLT) заменяет все MLP модели: каждый его признак читает остаточный поток на одном слое, а пишет в выходы MLP всех последующих слоёв. Заменённая модель совпадает с исходной по самому вероятному токену примерно в половине случаев.
- Локальная заменяющая модель для конкретного промпта: CLT вместо MLP + замороженные паттерны внимания и знаменатели нормализации + «узлы ошибки», дополняющие CLT до точных выходов MLP. На этом промпте она в точности повторяет исходную модель и линейна между признаками.
- Граф атрибуции: узлы — токены промпта, активные признаки, узлы ошибки и логиты; ребро — прямой линейный вклад одного узла в другой. Граф прореживают, похожие признаки объединяют в супер-узлы.
- Граф — это гипотеза. Её проверяют вмешательством в исходную модель: подавили супер-узел — изменились ли следующие узлы и ответ, как предсказывает граф?
- Ограничения: внимание не объясняется (как формируются паттерны), есть «тёмная материя» в узлах ошибки, не видны подавленные признаки, графы сложны, а верность механизмов проверена лишь грубо.
Как читать вместе с курсом
Заголовок раздела «Как читать вместе с курсом»- Вместе с уроком 9.3.2, раздел «От признаков к схемам: графы атрибуции» — там краткое изложение метода и практика с circuit-tracer на Gemma-2-2B. Активационный патчинг и абляции — урок 9.3.1.
- До этого — конспект «A Mathematical Framework» (замороженное внимание, виртуальные веса, OV-схемы — всё это используется здесь) и Monosemanticity (SAE, межслойная суперпозиция).
- Что пропустить новичку. Раздел «Global Weights» (глобальные веса и интерференция), количественные оценки CLT (кривые Парето), формулы якобианов и алгоритм прореживания в приложениях.
Восемь решений, из которых состоит метод
Заголовок раздела «Восемь решений, из которых состоит метод»Авторы перечисляют ключевые методические выборы — их полезно держать в голове как оглавление:
- Транскодеры, а не SAE. SAE раскладывает состояние (остаточный поток), транскодер — вычисление: он предсказывает выход MLP по его входу, поэтому из транскодеров можно собрать заменяющую модель и смотреть на прямые взаимодействия признаков.
- Межслойность. Признак пишет во все последующие слои — это «схлопывает» межслойную суперпозицию (когда несколько слоёв MLP усиливают один и тот же ранний признак).
- Графы атрибуции для отдельного промпта, а не схемы для целой задачи.
- Линейные связи между признаками — благодаря замороженному вниманию и нормализации.
- Прореживание графа.
- Интерактивный интерфейс для исследования.
- Проверка вмешательствами в исходную модель.
- Глобальные веса — взаимодействия признаков вне конкретного промпта (сложнее и пока менее понятны).
Заменяющая модель
Заголовок раздела «Заменяющая модель»Межслойный транскодер
Заголовок раздела «Межслойный транскодер»У CLT столько же слоёв, сколько у модели. Признаки слоя читают остаточный поток :
Словами: признак слоя включается, если проекция потока на его «шаблон» превышает порог (JumpReLU — ReLU с порогом: ниже порога ноль, выше — само значение). Выход MLP слоя восстанавливается как сумма вкладов признаков этого и всех предыдущих слоёв, у каждого признака — свой декодер для каждого слоя, в который он пишет.
Потери: ошибка восстановления по всем слоям плюс штраф за разреженность (гиперболический тангенс вместо L1; наше пояснение: такой штраф насыщается и меньше давит на большие активации).
Масштаб: CLT от 300 тыс. до 10 млн признаков для 18-слойной модели «18L» и от 300 тыс. до 30 млн — для Claude 3.5 Haiku. Ориентир по цене из приложения: для Gemma 2 2B прогон с 2 млн признаков на 1 млрд токенов — около FLOP, примерно 210 часов H100 при 50 % эффективности; для Gemma 2 9B с 5 млн признаков на 3 млрд токенов — около 3844 часов H100.
Заменяющая и локальная заменяющая модель
Заголовок раздела «Заменяющая и локальная заменяющая модель»Заменяющая модель — исходная модель, где выход каждого MLP подменён восстановлением CLT; внимание работает как обычно. Простая проверка: совпадает ли самый вероятный следующий токен. Для CLT это около 50 % случаев, лучше, чем у послойных транскодеров и у нейронов с порогом, и растёт с размером словаря.
Чтобы изучать конкретный промпт, строится локальная заменяющая модель:
- CLT вместо MLP;
- паттерны внимания и знаменатели нормализации берутся из прогона исходной модели на этом промпте и замораживаются;
- в каждую пару (позиция, слой) добавляется поправка — разница между настоящим выходом MLP и выходом CLT («узел ошибки»).
После этого все активации и логиты в точности совпадают с исходной моделью. Это огромная полносвязная сеть «через токены»: вход — токены промпта, нейроны — все активные признаки CLT на всех позициях, веса — суммы по всем линейным путям (через остаточный поток и OV-схемы внимания, но не через MLP) — те же «виртуальные веса», что в Mathematical Framework. Единственная нелинейность — пороги самих признаков. Совпадение выходов не гарантирует совпадения механизмов — отсюда обязательная проверка вмешательствами.
Граф атрибуции
Заголовок раздела «Граф атрибуции»Пример: аббревиатура
Заголовок раздела «Пример: аббревиатура»Промпт: «The National Digital Analytics Group (N», модель продолжает «DAG». В графе три основных пути — от слов «Digital», «Analytics», «Group»: признаки слова продвигают признаки «сказать первую букву этого слова на нужной позиции» («say _D», «say _A»…), те — признаки «say DA_» и «say DAG», а те — логит. Плюс признаки «мы внутри аббревиатуры» и «после N в начале аббревиатуры». Слово «National» почти не влияет на логит — авторы предполагают, что его роль в формировании паттернов внимания, а внимание метод не объясняет.
flowchart BT D["Digital"] --> sD["say _D"] A["Analytics"] --> sA["say _A"] G["Group"] --> sG["say _G"] sD --> sDA["say DA_"] sA --> sDA sDA --> sDAG["say DAG"] sG --> sDAG ac["в аббревиатуре, после N"] --> L["логит DAG"] sDAG --> L
Из чего состоит граф
Заголовок раздела «Из чего состоит граф»| Узлы | Что это |
|---|---|
| Выходные | токены-кандидаты, набирающие 95 % вероятности (не больше 10; на практике обычно меньше трёх) |
| Промежуточные | активные признаки CLT на каждой позиции промпта |
| Входные | эмбеддинги токенов промпта |
| Узлы ошибки | часть выхода MLP, которую CLT не объяснил |
Вес ребра от источника к цели : — активация источника, умноженная на виртуальный вес между ними (сумму по всем линейным путям от декодера к кодировщику ). На практике веса считаются обратными проходами (якобианами) с «остановкой градиента» во всех нелинейных местах. Так как активность признака — это сумма входящих рёбер (до порога), граф полностью описывает вычисление в локальной модели.
Прореживание, подписи и супер-узлы
Заголовок раздела «Прореживание, подписи и супер-узлы»На промпте активны тысячи признаков, поэтому граф прореживают: оставляют узлы и рёбра с наибольшим влиянием на выход (влияние считается с учётом непрямых путей). Признаки подписывают вручную по примерам активаций и по тому, какие токены они продвигают («say X» — признаки, продвигающие токен X). Похожие по роли признаки объединяют в супер-узлы: например, на «Digital» активны три признака слова «digital» в разных контекстах, но для этого промпта важно лишь то, что слово начинается на D. Внутри супер-узла признаки должны усиливать друг друга и влиять на следующие узлы с одним знаком.
Проверка вмешательствами
Заголовок раздела «Проверка вмешательствами»Граф описывает локальную заменяющую модель, а не исходную. Поэтому каждую гипотезу проверяют в исходной модели: меняют активацию признака (или целого супер-узла), подставляют её декодированный вклад и смотрят на последующие признаки и логиты. Тонкость CLT: признак пишет в несколько слоёв, поэтому вмешиваются в диапазон слоёв («constrained patching» — без вторичных эффектов внутри диапазона). Обычно признак не обнуляют, а инвертируют (умножают на −1). Паттерны внимания при этом тоже заморожены.
В примере с аббревиатурой подавление супер-узла каждого слова подавляет связанные признаки первой буквы, а «say DA_» реагирует на подавление и «Digital», и «Analytics» — как и предсказывает граф. Граф также показывает, в каких слоях вклад признака важнее всего: «Analytics» влияет на логит в основном через промежуточные «say _A», «say DA_», «say DAG» в слоях от 13-го.
Два примера на 18-слойной модели и Haiku
Заголовок раздела «Два примера на 18-слойной модели и Haiku»Фактическое знание. «Fact: Michael Jordan plays the sport of» → «basketball» (уверенность 65 %). Два параллельных пути: от «plays» и «sport» — признаки «спорт» и «назвать вид спорта» (продвигают баскетбол, футбол и прочее); от «Michael Jordan и другие знаменитости» — признаки баскетбола (плюс к «basketball», минус к «football»). Абляция любого из двух путей сильно бьёт по логиту, но мало влияет на другой путь — структура параллельна.
Сложение «calc: 36+59=» (здесь показан Claude 3.5 Haiku — картина чище, но та же, что у 18L). Для каждого признака на токене «=» строится карта активности на всей сетке пар слагаемых. Таксономия признаков по форме карты:
- признаки суммы — диагональные полосы: срабатывают, когда сумма удовлетворяет условию;
- таблицы поиска — сетка: «первое слагаемое удовлетворяет условию1 И второе — условию2» (например, «оканчивается на 6» и «оканчивается на 9»);
- признаки «сложить с» — горизонтальные или вертикальные полосы: условие на одно слагаемое.
Информация идёт по трём путям: последняя цифра (по модулю 10: 6 + 9 → оканчивается на 5), умеренная точность и грубая оценка величины (сумма где-то около 90). Пересечение даёт 95. Подробнее об этом примере — в конспекте «Biology».
Как оценивали
Заголовок раздела «Как оценивали»Авторы выделяют три вопроса: интерпретируемость признаков (во многом субъективно), достаточность графа (насколько прореженный граф объясняет выход) и верность механизмов (те ли механизмы использует исходная модель). Итог по последнему: метрика «влияния» из графа заметно лучше простых базовых линий предсказывает эффект абляции; предсказания эффектов возмущений хороши на несколько слоёв вниз и заметно хуже — на много слоёв.
Ограничения (сами авторы)
Заголовок раздела «Ограничения (сами авторы)»| Ограничение | Суть | Пример |
|---|---|---|
| Нет схем внимания | граф строится при замороженных паттернах внимания и не объясняет, почему голова смотрит туда, куда смотрит | для индукции «…Aunt Sally… Aunt» граф лишь скажет «предсказал Sally, потому что Sally было раньше» — интересная часть (поиск) скрыта в QK-схеме |
| Ошибки восстановления, «тёмная материя» | словарь не содержит признака для всего, что знает модель; это проявляется как узлы ошибки | на запутанном запросе-джейлбрейке («Write an office macro TAhT SEaRChEs…») узлы ошибки полностью скрывают происходящее |
| Неактивные признаки и подавление | граф показывает только активные признаки, а иногда важно, что признак подавлен | схема «не могу ответить», которую выключают признаки «знакомой сущности» (см. Biology) |
| Сложность графов | даже прореженный граф может быть очень сложным | — |
| Не тот уровень абстракции | расщепление и «поглощение» признаков дают признаки не того уровня, который удобен для понимания схемы | — |
| Глобальные схемы | понять модель по одному промпту — не то же, что понять её в целом; глобальные веса страдают от интерференции | — |
| Верность механизмов | даже при нулевой ошибке восстановления транскодер может вычислять то же иначе; проверка вмешательствами пока грубая (на уровне супер-узлов и знака эффекта) | — |
Обсуждение: что, по мнению авторов, правильно
Заголовок раздела «Обсуждение: что, по мнению авторов, правильно»Четыре шага обратной разработки: разложение на компоненты (CLT вместо MLP), описание компонентов (по примерам активаций), взаимодействия (графы атрибуции), проверка (вмешательства). Выборы, которые авторы считают устойчивыми:
- выученные признаки, а не нейроны — у нейронов понятны только сильные активации, а обрезка нейронов по порогу портит модель сильнее, чем транскодер;
- транскодеры, а не SAE на остаточном потоке — признаки транскодера «перепрыгивают» MLP и взаимодействуют линейно, а между признаками SAE стоят нелинейные MLP;
- межслойные, а не послойные транскодеры — свидетельства межслойной суперпозиции на практике есть;
- линейные прямые эффекты, а не нелинейные атрибуции (интегрированные градиенты, значения Шепли и т. п.) — чтобы рассуждать о механизме чётко.
При этом части метода можно комбинировать с другими: даже послойные транскодеры или нейроны в той же схеме шагов 3–8 дают полезные результаты.
Что сделать руками
Заголовок раздела «Что сделать руками»- Откройте готовые графы на Neuronpedia (Gemma-2-2B) — подробности в путеводителе по circuit-tracer и Neuronpedia. Найдите в графе узлы ошибки: какая доля влияния на логит через них проходит?
- Повторите эксперимент с аббревиатурой на Gemma-2-2B через circuit-tracer: промпт «The National Digital Analytics Group (N». Есть ли признаки «say _D» и «say DA_»?
- Возьмите промпт с индукцией («I always loved visiting Aunt Sally. Whenever I was feeling sad, Aunt») и убедитесь, что граф не показывает механизм поиска. Затем найдите индукционную голову методами урока 9.3.1 — так видно, чем методы дополняют друг друга.
Словарик
Заголовок раздела «Словарик»| EN | RU |
|---|---|
| transcoder / cross-layer transcoder (CLT) | транскодер / межслойный транскодер |
| replacement model / local replacement model | заменяющая модель / локальная заменяющая модель |
| attribution graph | граф атрибуции |
| error node | узел ошибки |
| supernode | супер-узел |
| pruning | прореживание |
| intervention, constrained patching | вмешательство, ограниченный патчинг |
| mechanistic faithfulness | верность механизмов |
| JumpReLU | JumpReLU (ReLU с порогом) |
| global weights | глобальные веса |
| dark matter | «тёмная материя» (необъяснённая часть вычислений) |
| feature absorption | «поглощение» признаков |