У Anthropic вышла очень большая статья про interpretability – они нашли в своей модели Claude Sonnet множество хорошо и четко интерпретируемых фич, отражающих определенные концепты. Многие из них оказались мультилингвальными и даже мультимодальными
В отличие от некоторых предыдущих работ в этой области (например, вот этой от OAI), интерпретировали они не нейроны по-отдельности, а активации. Это важно, потому что логично предположить, что за большинство концептов в LLM отвечают не конкретные нейроны, а какая-то их комбинация. И что скорее всего эта комбинация может быть также размазана между слоями (в limitations к статье отдельно обсуждается cross-layer superposition, кому интересно)
Как конкретно с технической точки зрения находили фичи?
- Активации замеряли в residual stream на каком-то среднем слое сети (каком конкретно не говорят, так как модель проприетарная). Для тех, кто забыл, что такое residual stream (я тоже забыла, не переживайте) – он проходит через все слои трансформера, от входных эмбеддингов до самого последнего линейного слоя. Каждый трансформер-блок (attention-head + MLP) “читает” информацию из него, а результаты его работы плюсуются к этому residual stream, и он итеративно обновляется после после каждого блока. Так что получается, что он “собирает” в себя информацию за последние сколько-то блоков, и логично предположить, что где-то посередине модели он будет в себе содержать какие-то абстрактные идеи и понятия. Попродробнее про residual stream и интуицию за ним можно почитать тут
- Фичи находили с помощью sparse autoencoders. Энкодеру на вход поступает как раз residual stream, который он разворачивает в слой большей размерности. Внутри этого латентного пространства как раз и будут находиться интерпретируемые фичи! Раньше у Anthropic выходила статья, где они это обнаруживали на маленькой игрушечной модели. Помимо того, что декодер учили реконструировать потом по этом фичам активации обратно, еще накидывалась регуляризация, чтобы его веса были в основном sparse (по сути это означает, что каждую активацию, которую мы подаем на вход, мы можем разложить на небольшое количество латентных фич, а остальные занулятся)
После тренировки такой энкодер представляет активации как линейную комбинацию латентных фич, где веса декодера “умножаются” на силу активации
– О данных для обучения SAE особо не говорится в статье, но извлекали фичи из семпла на 10M токенов из The Pile и Common Crawl. В статье пробуются автоэнкодеры трех размеров – 1M, 4M и 34M. В 34M варианте 65% фичей оказались мертыми – они не активировались ни разу на всей выборке
– Чтобы среди всех фичей найти хорошо интерпретируемые, авторы использовали Claude Opus: ему показывали примерно 1000 примеров, где активировалась какая-то фича, с указанием токенов, на которые она реагировала. Opus должен был выдать оценку, есть ли какая-то связь между текстами, или фича не особенно специфичная / не понятно, что именно она отражает. Насколько я понимаю, интерпретацию этих фичей авторы присваивали сами вручную
1/3
Post #1021
3.34K