Towards Automated Circuit Discovery for Mechanistic Interpretability __Arthur Conmy, Augustine N. Mavor-Parker, Aengus Lynch, Stefan Heimersheim, Adrià Garriga-Alonso__ Статья: https://arxiv.org/abs/2304.14997 Код: https://github.com/ArthurConmy/Automatic-Circuit-Discovery Статья про mech interp с NeurIPS 2023, предлагают автоматизацию нахождения цепей (circuits) и несколько алгоритмов, включая Automatic Circuit DisCovery или ACDC 🤘 Типичный воркфлоу в mech interp включает три шага. 1) Вы определяетесь с поведением модели, которое хотите изучить, собираете набор промптов, демонстрирующих это поведение, и выбираете метрику. Этот набор будет здесь называться датасетом, но важно, что это никакой не обучающий датасет, обучения тут нет. Чем чётче определите целевое поведение, тем легче будет с ним работать. 2) Выбрать нужный уровень гранулярности, на котором хочется искать ответ. Это могут быть токены, головы внимания, конкретные Q,K,V активации, отдельные нейроны и интеракции между ними. В результате получаем граф (DAG) взаимосвязанных узлов. 3) В полученном графе ищем рёбра, образующие нужную нам цепь. Рёбра проверяем через рекурсивный activation patching: портим какую-либо активацию (перезаписываем нулём, средним значением по датасету, или лучше значением от другого примера, так больше шансов не вылезти за привычный диапазон), делаем forward pass, сравниваем результат модели по выбранной метрике. Так мы убираем из графа максимум того, что не влияет. Начинаем с выходной активации и двигаемся вглубь. После того, как мы изолировали подграф, у нас есть цепь. Можно исследовать её и выдвигать гипотезы, что именно она реализует. Текущая работа (почти) полностью автоматизирует третий шаг. Итак, у нас есть набор промптов, реализующих выбранную задачу и набор негативных промптов без этой задачи. Активации из негативных примеров используются для activation patching. ACDC итерирует от выходов ко входам вычислительного графа, начиная с выходного узла (узлы топологически отсортированы в обратном порядке). В каждом узле алгоритм стремится убрать максимум входящих в узел рёбер, так чтобы не ухудшить перформанс модели на выбранной метрике. Ухудшение оцениваем по изменению KL-дивергенции и ребро удаляем, если изменение ниже заданного порога __τ>0__. На выходе процедуры у нас есть разреженный граф с хорошим перформансом на выбранной задаче. Можно это рассматривать как задаче-специфичный прунинг, если угодно, что по-своему может быть интересно и в других местах. Интересно, насколько на практике удалось проредить граф. Если я правильно понимаю, для GPT-2 small (124M параметров) на задаче Indirect Object Identification (IOI, https://arxiv.org/abs/2211.00593) найденный подграф содержит 1041 ребро. При этом рёбра это всё-таки не отдельные веса, а головы внимания (разделённые на Q, K, V) и MLP. В работе упоминают, что всего в этой модели 32923 рёбер. Вместо ACDC могут быть применены и другие методы, например, Subnetwork Probing (SP, https://aclanthology.org/2021.naacl-main.74/) или Head Importance Score for Pruning (HISP, https://arxiv.org/abs/1905.10650). Попытались оценить, как метод отвечает на два вопроса: Q1. Идентифицирует ли метод подграф, отвечающий алгоритму, лежащему в основе того, что реализует нейросеть? Q2. Избегает ли метод включать компоненты, не участвующие в изучаемом поведении? Ответам на эти вопросы соответствуют высокий true-positive rate (TPR) для Q1 и низкий false-positive rate (FPR) для Q2, что отлично сочетается в ROC-кривой. В качестве канонических ground truth цепей взяты найденные в предыдущих работах, и дальше решается задача бинарной классификации каждого их рёбер графа (принадлежит он цепи или нет).
Towards Automated Circuit Discovery for Mechanistic Interpretability Arthur…
Из этого канала
- #3204Перебрали разные значения гиперпараметра τ для ACDC и гиперпараметров других…
Перебрали разные значения гиперпараметра τ для ACDC и гиперпараметров других методов (SP и HISP). По ROC AUC метод на уровне.
- #3217Все уже видели, конечно. Проект на $500B…
Все уже видели, конечно. Проект на $500B https://openai.com/index/announcing-the-stargate-project/
- #3218OpenAI раскочегарился! https://openai.com/index/computer-using-agent/
OpenAI раскочегарился! https://openai.com/index/computer-using-agent/
- #3201Так вот, в рамках курса я решил покопаться поглубже во внутренних…
Так вот, в рамках курса я решил покопаться поглубже во внутренних репрезентациях самой маленькой Gemma 2 2B, чтобы в идеале раскопать circuit для какой-то…
- #3200On Interpretability Я тут немного погрузился в тему interpretability пока…
On Interpretability Я тут немного погрузился в тему interpretability пока проходил курс AI Alignment (https://t.me/gonzoML/2934).