Понимание нейронных сетей с помощью разреженных цепей
Мы обучили модели мыслить более простыми и прослеживаемыми шагами — чтобы лучше понимать принципы их работы.
Нейронные сети лежат в основе самых мощных современных систем ИИ, однако они по-прежнему сложны для понимания. Мы не пишем для этих моделей явные пошаговые инструкции. Вместо этого они учатся, настраивая миллиарды внутренних связей, или «весов», пока не освоят задачу. Мы задаем правила обучения, но не конкретные возникающие модели поведения, в результате чего образуется плотная паутина связей, которую не может легко расшифровать ни один человек.
Как мы смотрим на интерпретируемость
По мере того как системы ИИ становятся все более способными и начинают оказывать реальное влияние на принятие решений в науке, образовании и здравоохранении, понимание принципов их работы приобретает первостепенное значение. Интерпретируемость относится к методам, которые помогают нам понять, почему модель выдала тот или иной результат. Добиться этого можно самыми разными способами.
Например, рассуждающие модели (reasoning models) мотивированы объяснять свой ход мыслей на пути к окончательному ответу. Интерпретируемость на основе цепочки рассуждений (chain of thought interpretability) использует эти объяснения для мониторинга поведения модели. Это приносит пользу немедленно: цепочки рассуждений современных моделей кажутся информативными в отношении такого тревожного поведения, как обман. Тем не менее, полное упование на это свойство является хрупкой стратегией, и со временем она может дать сбой.
С другой стороны, механистическая интерпретируемость, находящаяся в фокусе данной работы, стремится полностью реверс-инжинирить вычисления модели. До сих пор она не приносила столь же быстрой пользы, но в принципе способна предложить более полное объяснение поведения модели. Стремясь объяснить поведение модели на самом детальном уровне, механистическая интерпретируемость может делать меньше допущений и давать нам больше уверенности. Однако путь от низкоуровневых деталей к объяснению сложного поведения гораздо длиннее и сложнее.
Интерпретируемость поддерживает ряд ключевых целей, например, обеспечивая лучший контроль и предоставляя ранние предупреждающие признаки небезопасного или стратегически несогласованного поведения. Она также дополняет другие наши усилия по обеспечению безопасности, такие как масштабируемый контроль (scalable oversight), состязательное обучение (adversarial training) и ред-теаминг.
В этой работе мы показываем, что часто можем обучать модели таким образом, чтобы их было проще интерпретировать. Мы рассматриваем нашу работу как многообещающее дополнение к апостериорному (post-hoc) анализу плотных сетей.
Это очень амбициозная ставка: от нашей работы до полного понимания сложного поведения наших самых мощных моделей лежит долгий путь. И все же для простого поведения мы обнаруживаем, что разреженные модели, обученные с помощью нашего метода, содержат небольшие, разделенные схемы (circuits), которые одновременно понятны и достаточны для выполнения этого поведения. Это говорит о том, что может существовать жизнеспособный путь к обучению более крупных систем, механизмы работы которых мы сможем понять.
Новый подход: обучение разреженных моделей
Предыдущие работы по механистической интерпретируемости начинались с плотных, запутанных сетей и пытались их распутать. В таких сетях каждый отдельный нейрон соединен с тысячами других нейронов. Большинство нейронов, по-видимому, выполняют множество различных функций, что делает понимание практически невозможным.
Но что, если бы мы обучали распутанные нейронные сети с гораздо большим количеством нейронов, но в которых каждый нейрон имеет лишь несколько десятков связей? Тогда, возможно, полученная сеть окажется проще и ее будет легче понять. В этом и заключается центральная исследовательская ставка нашей работы.
Имея в виду этот принцип, мы обучили языковые модели с архитектурой, очень похожей на существующие языковые модели вроде GPT‑2, с одним небольшим изменением: мы заставляем подавляющее большинство весов модели быть равными нулю. Это ограничило модель использованием лишь очень малого числа возможных связей между ее нейронами. Это простое изменение, которое, по нашему утверждению, существенно разделяет внутренние вычисления модели.
В обычных плотных нейронных сетях каждый нейрон соединен с каждым нейроном в следующем слое. В наших разреженных моделях каждый нейрон соединяется лишь с несколькими нейронами в следующем слое. Мы надеемся, что это делает нейроны и сеть в целом более простыми для понимания.
Оценка интерпретируемости
Мы хотим измерить степень разделенности (disentanglement) вычислений в наших разреженных моделях. Мы рассмотрели различные простые паттерны поведения моделей и проверили, можем ли мы выделить части модели, отвечающие за каждое поведение, которые мы называем схемами (circuits).
Мы вручную отобрали набор простых алгоритмических задач. Для каждой из них мы усекли модель до минимальной схемы, способной выполнять эту задачу, и изучили простоту этой схемы. (Подробности см. в нашей статье.) Мы обнаружили, что обучая более крупные и разреженные модели, мы можем создавать все более мощные модели с все более простыми схемами.
Мы строим график зависимости интерпретируемости от возможностей для разных моделей (чем ниже и левее, тем лучше). Для фиксированного размера разреженной модели увеличение разреженности — обнуление большего числа весов — снижает возможности, но повышает интерпретируемость. Масштабирование размера модели сдвигает эту границу наружу, что говорит о возможности создания более крупных моделей, которые будут одновременно функциональными и интерпретируемыми.
Чтобы сделать это более конкретным, рассмотрим задачу, в которой модель, обученная на коде Python, должна дополнить строку правильным типом кавычки. В Python строка «hello» должна заканчиваться одинарной кавычкой, а «hello» — двойной. Модель может решить эту задачу, запомнив, какой тип кавычки открыл строку, и воспроизведя его в конце.
Наши наиболее интерпретируемые модели содержат разделенные схемы, которые реализуют ровно этот алгоритм.

Пример схемы в разреженном трансформере, которая предсказывает, нужно ли завершать строку одинарной или двойной кавычкой. Эта схема использует всего пять остаточных каналов (вертикальные серые линии), два MLP-нейрона в слое 0, а также один канал запроса-ключа (query-key) внимания и один канал значения в слое 10. Модель (1) кодирует одинарные кавычки в одном остаточном канале, а двойные — в другом; (2) использует слой MLP для преобразования этого в один канал, обнаруживающий любую кавычку, и другой, классифицирующий одинарные и двойные кавычки; (3) использует операцию внимания, чтобы игнорировать промежуточные токены, находить предыдущую кавычку и копировать ее тип на финальный токен; и (4) предсказывает соответствующую закрывающую кавычку.
Согласно нашему определению, точные соединения, показанные выше, достаточны для выполнения задачи — если мы удалим остальную часть модели, эта небольшая схема все равно будет работать. Они также необходимы — удаление этих нескольких ребер приводит к сбою в работе модели.
Мы также рассмотрели более сложное поведение. Наши схемы для такого поведения (например, привязка переменных, показанная ниже) сложнее для полного объяснения. Тем не менее, мы все равно можем получить относительно простые частичные объяснения, которые позволяют прогнозировать поведение модели.
Другой пример схемы, в меньших деталях. Чтобы определить тип переменной с именем current, одна операция внимания копирует имя переменной в токен set() при ее определении, а другая более поздняя операция копирует тип из токена set() в последующее использование переменной, позволяя модели предсказать правильный следующий токен.
Что нас ждет впереди
Эта работа — лишь первый шаг к более масштабной цели: сделать вычисления моделей более понятными. Однако впереди еще долгий путь. Наши разреженные модели гораздо меньше передовых моделей, и значительная часть их вычислений остается неинтерпретированной.
В дальнейшем мы надеемся масштабировать наши методы на более крупные модели и объяснить большую часть их поведения. Выделив структурные мотивы схем, лежащие в основе более сложных рассуждений в способных разреженных моделях, мы сможем лучше понять, как целенаправленно исследовать передовые модели.
Для преодоления неэффективности обучения разреженных моделей мы видим два возможных пути. Первый заключается в извлечении разреженных схем из существующих плотных моделей, а не в обучении разреженных моделей с нуля. Разреженные модели принципиально менее эффективны в развертывании, чем плотные. Второй путь — разработка более эффективных методов обучения моделей с упором на интерпретируемость, которые может быть проще внедрить в производство.
Стоит отметить, что полученные нами результаты не гарантируют перенос этого подхода на более мощные системы, однако эти первые результаты обнадеживают. Наша цель — постепенно расширять объем модели, который мы можем надежно интерпретировать, и создавать инструменты, упрощающие анализ, отладку и оценку будущих систем.
Авторы
Лео Гао (Leo Gao), Ачьюта Раджарам (Achyuta Rajaram), Джейкоб Коксон (Jacob Coxon), Сохам В. Гованде (Soham V. Govande), Боуэн Бейкер (Bowen Baker), Дэн Моссинг (Dan Mossing)
Полный текст статьи читайте на OpenAI
