Data Blog
1.4K subscribers
100 photos
3 videos
4 files
174 links
Канал про интерпретируемость моделей и путь до phD, если автор не уйдет пасти овец.
Download Telegram
3
Моя персоналити на эту осень — студент, рисерчер на полставки и преподаватель. Иду к цели принести полноценный курс по интерпретируемости в университет, опубликовать статью и продолжить преподавать.

А ещё мне очень хочется продолжать развивать канал, поэтому традиционный (вместе с кризисами творчества) пост — чего бы вы хотели видеть в контенте?

Буду признательна за комментарии. А если у вас есть идеи по коллабам — дайте занть — я вам напишу или пишите сразу мне — @sabrina_sadiekh :)

Отличного начала осени! ☺️
🔥22👍1
🌙 Привет, друзья!

Пока сильно не завалило делами, села расширять курс и одним из пунктов плана у меня были методы на основе вмешательства.

Методы интерпретации на основе вмешательства основаны на идее ответа на вопрос:
«Что произойдет с предсказанием модели если изменить или исключить отдельный признак?»


Cуть всех таких методов состоит в том, что мы изменяем входные данные x по заранее определённому правилу, пропускаем измененное изображение x' через модель и фиксируем разность D = f(x) - f(x') выхода модели. Отсюда, важность признака определяется через чувствительность модели к его изменениям.

Среди стандартных методов — Occlusion, Ablataion и Pertubation (Permutation). А вот не совсем стандартный, но всё ещё часто встречающийся метод — RISE (Randomized Input Sampling for Explanation of Black-box Models). И такие в RISE красивые были переходы, что я решила включить его в курс и сделать по нему туториал.

Туториал снова на котиках, включает в себя практический ноутбук с кодом и статью на Хабр. Там и математика, и картинки — в общем, всё для отличного вечера.

Залетайте читать, и прекрасной пятницы! ☺️
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥106👍5
🐤 Подалась волонтером на review статей для NeuroIPS workshop.

Привет, друзья! Немного не техническое (хотя, кто знает) сегодня. Так как меня приняли ревьюить NeuroIPS workshop, и я провожу ревью на воркшопе такого уровня впервые, мне стало важно структурировать информацию — чем хорошее ревью на научную статью отличается от плохого. Делюсь:

✏️ Зачем нужно ревью?

Рецензия на любую работу для меня — это про комбинацию двух составляющих:
Фильтр.
Фидбэк.

Фильтрация — это про "оценить работу, оценить усилия на эту работу, провалидировать результат работы и вынести вердикт".
Фидбэк — это про "рассказать, что хорошо, что плохо" и по возможности "как сделать лучше".

Это, с одной стороны, задает ревьюируемому направления для роста, а с другой — формирует сообщество — что является хорошей работой, а что — нет.

Я аггрегировала несколько guidelines и вынесла не совсем очевидные мысли.

✏️ Как делать ревью хорошо?

Прежде всего, какой-то шаблон ревью — это никогда не проблема, так как у конференций бывают свои гайды про ревью. Но за пределами гайдов, я выделила для себя такие пункты:

1. Помощь. Мне понравилась мысль отсюда, что цель ревью — это помощь. Соответственно результат ревью должен помогать коллеге понять, почему он молодец или почему он не молодец.

2. TLDR. Для проверки своего понимания работы, полезно сделать свой TLDR работы. Потому что когда не понимаешь, то видишь ошибки там, где их нет.

3. Questions.
Если в работе есть слабые или слепые места, которые при том не объяснены, то их стоит не только констатировать как факт, но и задавать в виде вопросов. При этом, мне нравится принцип actionable вопросов и замечаний (с возможностью исправить). Не «текст написан плохо», а «стоит уточнить различие с работой X» или «пояснить выбор параметра λ».

4. Хвали-ругай. Даже если статья слабая — указывать сильные стороны. Это показывает, что работа прочитана внимательно. Любая статья (да даже домашка на курсах/в магистратуре) — это как правило львиная работа. И если после неё только "дали по шапке", то можно живо отбить мотивацию делать что-то дальше.

✏️ Личное мнение

Я — огромный хейтер плохих фидбеков, потому что обычно вкладываю в работу силы, душу, сон, почки и вот это всё. Так как я человек чувствительный, то оценка в две строки (особенно плохая) — это плевок.

В то же время я стараюсь помнить и другую сторону: у проверяющего может быть десяток статей, дедлайн поджимает, времени мало, оплата символическая. Всех можно понять.

Поэтому выбрала для себя такой подход: просто делать ревью максимально хорошо сама. И надеяться, что это станет нормой — и остальные тоже будут подтягиваться.

Надеюсь, этот пост и вам поможет при проверке чьей либо работы!

Хорошее умножает хорошее, и мне хочется в это верить :)
Please open Telegram to view this post
VIEW IN TELEGRAM
12🔥10
Немного мыслей про обучение и изучаемые методы

В октябре буду снова читать пару занятий по XAI на ФКН, и мне очень нравится строить занятия так — одно я посвящаю стареньким подходам, а одно — более новеньким.

Обычно, в рамках старенького я рассказываю про интерпретируемые модели, а в этом году на меняла "упала" идея рассказать в рамках дополнительных глав про GLM, GAM и MoE (потому что поток студентов тот же).

Generalized Linear Models, Generalized Additive Models и Mixture of Experts — методы ровно из 19XXх, когда активно задавались вопросами интерпретируемого решения нелинейных задач.

GLM (Generalized Linear Models) — расширение линейной регрессии, позволяющее целевой переменной быть распределенной как угодно.

GAM (Generalized Additive Models) шаг дальше — берут идеи GAM и вместо линейных зависимостей допускают аддитивные нелинейные функции признаков.

MoEидея ансамбля, где данные сегментируются по кластерам и каждый модель (эксперт) учится на «своём» регионе пространства признаков. Итоговый прогноз — взвешенная функция от каждого локального прогноза.

Сейчас эти методы не слишком популярны — у нас достаточный практический аппарат и ширина методов, чтобы, изучая ML, опустить эти детали.

Но на мой взгляд, такие «древние» методы очень полезно включать в обучение — они очень сильно расширяют концептуальный взгляд на моделирование. Зная их, на мой взгляд, можно:

а) Иметь в арсенале зоопарк всё ещё достаточно контроллируемых решений, а иногда и более быстрых — и это плюс для индустрии;

б) Иметь более расширенный кругозор для сборки новых методов — и это плюс для теоретиков;

Так, при сборке нового, MoE, например, вернулся в трансформерах (Switch, Mixtral) — и оказался эффективной идеей к обучению моделей с большим количеством параметров без взрывного роста Floating Point Operations Per Second. Проще говоря, больше параметров с культурной стоимостью вычислений. А GAM-модели заложили основу для попытки построить интерпретируемые по дизайну сетки — GamiNet.

И вот очень я радуюсь, когда вижу, что старенькие методы — иногда прямо-таки коробка нового. Таким мне это показалось красивым сегодня, что захотелось поделиться. А ещё теоретические блоки по этим методам в начале октября добавлю в бесплатную часть курса на степик, чтобы можно было удобно изучить.
8👍3❤‍🔥1
На днях вышло два интересных подкаста с Neel Nanda — человеком, который стоит где-то спереди всего движения с механистической интерпретируемостью.

Neel Nanda — исследователь из Google DeepMind. Занимался независимыми исследованиями механистической интерпретируемости и работал в Anthropic в качестве исследователя интерпретируемости языковых моделей.

Много сделал для области MechInterp — помимо исследований есть блог, где много постов к изучению и библиотека TransformerLens — удобный инструмент для анализа трансформеров в рамках обучения.


Мне очень импонирует его взгляд и стремление добавлять много открытых материалов. И в целом меня вдохновляет его заявления и действия, направленные на «Эффективный альтруизм» и «Рациональность». Не могу сказать, что это что-то про меня, но как минимум — мне очень интересен поток мыслей, формирующий такую позицию. Поэтому с удовольствием слушаю подкаст сама (выделить 4 часа непросто) и делюсь здесь.

Эпизоды можно слушать в любом порядке — часть 1 не обязательна для части 2.

Эпизод 1 — Технический

Разговор о поле механистической интерпретируемости: ключевые результаты, почему Нил стал более скептично относиться к амбициозной задаче полного «реверс-инжиниринга» моделей, и его видение более прагматичного будущего направления исследований.

Эпизод 2 — Нетехнический

Как делать исследование, карьерные и жизненные советы, стоит ли пытаться попасть на работу в AGI-лабы, и много других интересных инсайтов.

Быть может, вы тоже что-то интересное смотрите/слушаете. Буду рада советам в комментариях :)
10👍5🔥5
Внимание. С картинками.

До того, как стала популярна механистическая интерпретируемость, в трансформерах много надежды возлагалось на Attention. Кажется, что сейчас интерес к голому исследованию Attention спал, но всё же это чертовски красивый механизм.

Один из примеров визуализации красоты — наткнулась сегодня — визуализация Attention Flows. И вот, в статье, авторы попробовали понять механизм fine-tuning на основе сравнения Attention для претрейненной и нет модели.

Что сделали:

1. Рассмотрели граф внимания, рассмотрев как отправной [CLS] токен (на последнем слое);
2. Для каждой головы внимания выбрали токены, на которые [CLS] смотрит с весом выше порога (τ).
3. Этим токенам присвоили значения узлов на предыдущем слое, а ребра (связь слоя l-1, со слоем l) — обозначили за силу их влияния.
4. Повторили процесс для каждого выбранного токена, двигаясь слой за слоем назад, пока не будут пройдены все слои.

Почему [CLS] — в BERT финальное эмбеддинг-представление используется для классификации (через линейный слой). И всё, что модель «собирает» из текста, в итоге агрегируется в [CLS]. Поэтому, чтобы понять, какие слова повлияли на решение, начали анализ именно с этого токена.


Если алгоритм вас не впечатлил — просто посмотрите на картинку. Получилось безумно красиво.

Чего достигли на основе построения таких картинок:

Решили 3 задачи. Вернее, попробовали решить.

* T1 – Trace and query self-attention: выбор токенов или голов внимания и просмотр, как внимание распространяется по слоям вперёд и назад.
* T2 – Discover attention functionality: понимание того, какие головы и слова наиболее важны для решения задачи — как в сумме, так и по отдельности.
* T3 – Compare models: сравнение внимания в исходной и дообученной модели, поиск уникальных и общих голов внимания и различий в слоях.

Модели между собой посранивали интересно. Инсайты можно найти в статье. И очень ведь красивый инструмент — сравнивать модели на основе вот этих визуальных карт. Красивый, но чертовски непродуктивный — можно упустить детали, если анализировать своими глазами.

Но картинки — просто чудо.
7🔥5👍3
5❤‍🔥4👍3
"Gotta Catch 'Em All"

С 1997 года существовала медиафраншиза —  Pokemon. Покемоны были чем-то вроде животных, которые могли обретать в течении своей жизни разные стадии — эволюционировать. Я смотрела все серии аниме, поэтому на слово "эволюция" у меня не нормальная реакция. Но мы здесь собрались за другим контентом, поэтому это интро связано со статьей EVOLUTION OF CONCEPTS IN LANGUAGE MODEL PRE-TRAINING.

Предыстория.

С относительно недавнего времени мы можем разбивать всё пространство активаций LLM на атомарные сущности — признаки (features). Представьте: берем активационные векторы размерности n и проектируем их в пространство размерности N >> n, добиваясь разреженности.

Методы.

Этот трюк обычно делается с помощью Sparse Autoencoders — сетей, которые в латенте дают разреженный вектор, обещающий понятные человеку концепты. Отдельные единицы такого вектора активируются только на схожих признаках, например: один компонент может реагировать на упоминания городов, другой — на математические формулы.

Позже появились Transcoders — продвинутая версия SAE, которая учится разлагать не активации, а вычисления внутри MLP слоя. Так как трансофрмер аддитивен, трансокдеры на разных слоях позволяют строить цепочки — эволюцию прохождений фичей от слоя к слою.

А потом к ним пришли Crosscoders — модели, с архитектурой транскодера, но адаптированные к учету информации из нескольких слоёв.

Каждый "кодер" состоит из трех частей:

1) Энкодер — делает разреженное представление.
2) Латент — само разреженное представление.
3) Декодер — восстанавливает input из разреженного представления.

К исследованию.

В классике кодеры применялись, чтобы изучить признаки в уже обученных моделей. А тут статья предлагает изучить процесс обучения, используя разреженность.

Для этого используют используют crosscoders и теоретическую предпосылку — если признак не существует, штраф за разреженность подавит веса декодеров в "неактивных" моментах до нуля (признака нет — восстанавливать мы его тоже не будем).

Из этой теории рассматривают норму весов декодера||W_dec|| для фичи i (из теории построения также мы знаем, что столбец декодера всегда кодирует какую-то фичу).

Для нормы авторы ввели Peak Snapshot Index — число k [1, 32], показывающее, на каком моменте времени в обучении фича достигла максимальной силы. В частности 143 000 шага обучения побили на 32 снэпшота и на них смотрели активации признака (при этом норму декодера снимали на каждом шаге).

В такой постановке нашли следующее:

1. Двухфазная структура:

Статистическая фаза (ранние шаги): модель изучает частоты токенов, потери падают до теоретического минимума
Фаза фич (поздние шаги): формируются сложные концепты в суперпозиции

2.Иерархия:

Простые фичи (предыдущий токен) ~1000-5000 шагов
Индукционные фичи ~10000-100000 шагов
Контекстно-зависимые — на финальных стадиях

3. Точку поворота: Около шага 1000 большинство фич кардинально меняют направление в пространстве активаций

Красивые картинки нашли тоже.
🗿31
Эволюция фичей. Можно идти из предположения, что темные — статистические и светлые — более сложные. Структура "скрещивания" отражает, как меняется сила наличия фичи step by step.
3🔥1
В целом, ничего кардинально нового это исследование не показало. Однако оно хорошо показывает:

1) Согласованность — одни факты разными методами;

Но тут кстати еще важно верифицировать, что это не натянутый вывод из того, что известно.

2) Универсальность — применение спарснутых методов не только к задаче изучения "что есть", но и к задаче "как появилось".

3) Творчество — я не представляю, какой красивый мозг надо иметь, чтобы придумать такую постановку!

И на этой замечательной ноте творческой вам недели, друзья, творческой вам недели :)
3🔥3
TDHook

Несмотря на какое-то ощущение, что я в полном hurry (не в плохом, а в скорее хорошем) в последнее время, не забываю почитывать статейки. И одна из интересных тем, за которыми мне интересно следить — это автоматизация interpretability процессов.

Библиотек, которые это делают хорошо, не так много, так что я собираю новые и надеюсь на их качество также, как коллекционирую зажигалки — знаю, что работает, нравится, когда-то пригодится.

Так вот, свежее:
TDHook — open-source фреймворк для интерпретации глубоких нейронных сетей, построенный на PyTorch и TensorDict. Разработан специально для работы с моделями с множественными входами/выходами (мультимодальные системы, DRL, image captioning и др.).

Авторы заявляют, что фреймворк удовлетворяет критериям:

1. Универсальности
* Работает с любой PyTorch моделью
* Нативная поддержка TensorDict структур
* Минимум зависимостей (~50% меньше места, чем transformer_lens), а значит меньше связанных рук в проекте

2. Разнообразия
25+ готовых методов среди которых:
* Attribution: градиенты, Integrated Gradients, LRP, Grad-CAM
* Latent manipulation: линейные пробы, CAV, активационный патчинг
* Weights-based: ROME, sparse autoencoders, task vectors

3. Гибкий API:
* Get-Set API для интервенций (как в nnsight)
* Композиция сложных пайплайнов
* Context managers для управления хуками

Бенчмаркинг у библиотеки приятный — в сравнении с самой популярной библиотекой captum — вычисления градиетных методов до 2x быстрее на Integrated Gradients, и размер библиотеки сильно ниже (всего +6% памяти к базовому torch, тогда как transformer_lens (трансформеры с хуками) дает +104%, а pyvene (библиотека для каузального анализа нейронных сетей через интервенции (вмешательства в промежуточные представления модели)) +132%.

Use Cases обещаны тоже широкие:
— Multi-modal модели и RL агенты
— Концептуальная атрибуция
— Attribution patching для Transformers

Правда, библиотека совсем свежая — последний коммит был 5 дней назад, будет многое ломаться. Но как проект — выглядит перспективно.

GitHub: https://github.com/Xmaster6y/tdhook
Статья: arXiv:2509.25475
🔥115❤‍🔥3
Бенчмаркинг на примере TrustVis

Последний месяц очень много думаю про бенчмарки и много чего связанного с ними изучаю и делаю. Захотелось написать про это, а заодно убрать пыль с канала.

Бенчмаркинг — зачем?

Я очень верю в интерпретируемость. Но все методы интерпретации это что-то более медленное, и как правило они не отвечают на вопрос "насколько хорошо/безопасно/устойчиво решается задача прямо сейчас?"

Отсюда, вместо того, чтобы изучать модель как сущность, начинаем изучать как сущность то, как модель справляется с задачей. И именно бенчмаркинг предлагает такой взгляд. Мы перестаем изучать модель как сущность. Вместо этого объектом анализа становится решение задачи как единица поведения системы. Если проводить аналогию с XAI: объяснять мы начинаем не параметры модели, а результат и причины конкретного поведения.

Основные ветки оценки:

От моделей мы хотим безопасность, следование инструкциям и устойчивость. Отсюда, в виде задачи-объекта чаще всего рассматривают:

1. Safety — задачи — как модель ведет себя на вредосных/суицидальных и других запросах.
2. Robustness — задачи, направленные на оценку устойчивости к атакам через модифицированные запросы (adversarial prompts).
3. Performance — исходная задача, которую модель решает в рамках системы.

Практический пример того, как это может выглядеть в комплексе — TrustVis.

Исходная цель — оценить доверие к модели.
Pipeline оценки такой:

1. Сначала оценивается базовая безопасность модели. Просто модель на Safety датасетах.
2. Затем идет оценка под "нагрузкой": добавляют adversarial-суффиксы (AutoDAN + генетические алгоритмы) и проверяют, “сломалась” ли безопасность.
3. Автоматизирует оценку поведения через ансамбль оценщиков LlamaGuard, LlamaGuard2, Longformer. Финальный вердикт — по majority voting.

Чтобы уточнить оценку, используют нормировку ошибок по типам контента: насилие, приватность, сексуальный контент, ненависть и др. Чтобы не иметь инсайт "модель уязвива где-то", а понимать — где. Это идеальный сценарий, так как данных по чувствительным темам не совсем достаточно. Но мне он очень нравится как референс хорошей оценки.

Key-takeaway из этого ночного спитча:

Чтобы оценивать поведение, нужно концентрироваться на анализе решений на задачах. А вот как это делать хорошо, кажется, тоже развивающаяся тема, пока не имеющая точных решений. Но ИМХО, TrustVis — хороший пример: он показывает, как объединить безопасность, устойчивость и производительность в метрики доверия (может и не самые оптимальные, но при этом информативные).

Код: https://github.com/RuoyuSun7/TrustVis
🔥9
А ещё, а ещё, а ещё! Я (уже месяц назад) пообщалась с DLS (обожаю их!) и совсем скоро выпустим лекцию и семинар по XAI! ❤️‍🔥

Stay here!

P.S на лекции будет Честер.
❤‍🔥16🔥135
📏 Гипотеза линейности в действии.

Очень большое эстетическое удовольствие мне доставляют чтение статей и попытки проследить, как обычные подходы пробивают себе место в более высокоуровневых вещах.

И самый частый встречный гость — это линейность.

Сегодня меня очень вдохновила пара работ и я решила зафиксировать ряд работ по ней тут.

Классика и будто бы начало — работа Linguistic Regularities in Continuous Space Word Representations, где показано, что комбинация векторных представлений vector(”King”) - vector(”Man”) + vector(”Woman”) на самом деле равна vector(Queen) (и продолжения, которые тоже сохраняют линейные закономерности между словами CBOW и SKIP-Gram).

Продолжение и актуальность линейности можно увидеть и в свежих/актуальных работах:

LIME — объясняет предсказания модели как локальную линейную аппроксимацию сложной функции в окрестности точки.
— SAE (где мы представляем эмбеддинг в виде разреженной линейной комбинации);
Оценка мнения модели на основе зондов (где мы оцениваем мнение модели на основе линейного классификатора на residual stream)
— Разложение модели на интерпретируемые концепции — например, можно перевести концепты в виде текстовых эмбеддингов CLIP в линейную комбинацию признаков, обучив линейную суррогатную модель с использованием KL-дивергенции.

Что самое интересное, находят подтверждения не только гипотезы о том, что представления линейны в рамках одной модели, но и о том, что между представлениями достаточно больших моделей существует линейное (и ортогональное) преобразование. То есть (в частности показано) можно взять концепт в GPT-J, линейно перенести его в LLaMA и он продолжает быть справедливым.

Ограничения:

Конечно, они есть:
— нелинейные взаимодействия между признаками никуда не исчезают;
— полисемантичность нейронов (один активационный канал кодирует несколько смыслов);
— требуется разреживание или ортогонализация, чтобы выделить чистые направления.

Но мне очень греет душу мысль, что можно работать с линейностью и вот тут-то любовь к векторной алгебре пригодится :)

Если вы видели работы, связанные с линейностью или у вас есть мысли — можете докинуть в комментарии)
8❤‍🔥7🔥6
Лучшее сообщение, которое можно получить с утра в субботу выглядит так:

We are delighted to inform you that your submission has been accepted for publication at the Alignment Track of The 40th Annual AAAI Conference on Artificial Intelligence (AAAI’26). This year, we received a record number of submissions (468). Based on a thorough and rigorous review process, we have accepted 106 papers. This yields an overall acceptance rate of 22.65%. You can view your final reviews in the OpenReview portal.
🔥229
TLDR: прошла со своей командой на AAAI конференцию. По уровню — это A/A*, так что, получается, выполнилась какая-то ачивка.

Радуюсь сегодня весь день, но в какой-то момент меня отпустило, и я задумалась, что на деле — публикации, награды, гранты и прочее — это просто какой-то этап. Какая-то задача. И когда их принимают/отклоняют — это волнительно, воодушевляюще, но это не breaking point — а просто результат.

До этого нас реджектнули на NeuroIPS)

Лучшее и хорошее — это когда все здоровы, живы и довольны. А ещё круто и здорово делать то, что нравится. И мне кажется во всех проектах главный секрет — упорство. Упорство и люди, которые поддерживают.

Желаю вам быть в окружении таких людей и желаю вам, чтобы и ваши цели реализовывались

Вот такой мыслительный пост на эту субботу :)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2215🥰1
Привет, друзья!

💫 В DLS вышли обещанные лекция и семинар по базовым методам XAI. Семинар мне самой нравится очень — в нем показаны и визуализированы разные тонкости методов LIME, SHAP и всех, которые я отношу к "графическим" — PDP, ALE, ICE.

Лекция [YouTube, Vk, презентация]
Семинар [
YouTube, Vk, ноутбук]

Очень рада была записать что-то в DLS! Безумно люблю их и много-много лекций смотрела от школы (в частности, разные разборы от Тани), когда только начинала заниматься DS.

Тогда я мало понимала. Поэтому становилось ещё интереснее)
Надеюсь, вам будет полезно!

По крайней мере, на первой лекции очень громко мурчит кот. 🐈‍⬛
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍2
Forwarded from Нина Коновалова
Всем привет!

В этом семестре мы подготовили ещё один, дополнительный модуль, посвящённый Explainable AI для моделей машинного обучения. В этом модуле вы познакомитесь с основами интерпретируемости (объяснимости) моделей. В течение занятий вы реализуете различные методы интерпретации, изучите их применимость и ограничения.

Материал подготовила и записала Садиех Сабрина, AI исследователь, автор канала https://t.iss.one/jdata_blog

Лекцию и семинар можно найти на Stepik!
8👍2