Привет, друзья!
Это мог бы быть туториал с кодом,но меня немного не хватает на это. Однако!
Не могу не поделиться очень свежей (28.04.2025) публикаций тулы для Vision Mechanistic Interpretability!
📐 Prisma [paper], [github]— классический open-source фреймворк для механистической интерпретируемости моделей зрения. Если вы знакомы с TransformerLens (для языковых моделек) — по сути решение аналогичной задачи, но на другой модальности.
Библиотека пока разрабатывается, поэтому документация не очень удобная. Но планы и покрытие их — огонь —
✔️ Доступ к 75+ ViT и VideoVit (уже)
Детали — расширение Hf, openCLIP, timm моделей + адаптация Kandinsky ViT encoder с предобученным SAE на нем
✔️ 80+ заранее обученных Sparse Autoencoder (SAE) (в процесссе оформления, но уже можно погулять по репозиторию и статье — там много весов)
✔️Удобный зоопарк функций для circuit analysis, logit lens, attention analysis
Визуализация — красиво, интерактивно и с plotly
✔️Туториалы и toy-модели для экспериментов в low-resource среде (aka collab)
Если хотите использовать/потрогать что-то, то наиболее широкий туториал здесь.
Мой фаворит — кот в туалете отсюда =)
Сохраняйте, если захотите вернуться, когда руки дойдут до кода. Уверена, ребята подтянут все быстро.
Хорошей вам недели,
Ваш Дата-автор!
Это мог бы быть туториал с кодом,
Не могу не поделиться очень свежей (28.04.2025) публикаций тулы для Vision Mechanistic Interpretability!
📐 Prisma [paper], [github]— классический open-source фреймворк для механистической интерпретируемости моделей зрения. Если вы знакомы с TransformerLens (для языковых моделек) — по сути решение аналогичной задачи, но на другой модальности.
Библиотека пока разрабатывается, поэтому документация не очень удобная. Но планы и покрытие их — огонь —
✔️ Доступ к 75+ ViT и VideoVit (уже)
Детали — расширение Hf, openCLIP, timm моделей + адаптация Kandinsky ViT encoder с предобученным SAE на нем
✔️ 80+ заранее обученных Sparse Autoencoder (SAE) (в процесссе оформления, но уже можно погулять по репозиторию и статье — там много весов)
✔️Удобный зоопарк функций для circuit analysis, logit lens, attention analysis
Визуализация — красиво, интерактивно и с plotly
✔️Туториалы и toy-модели для экспериментов в low-resource среде (aka collab)
Если хотите использовать/потрогать что-то, то наиболее широкий туториал здесь.
Мой фаворит — кот в туалете отсюда =)
Сохраняйте, если захотите вернуться, когда руки дойдут до кода. Уверена, ребята подтянут все быстро.
Хорошей вам недели,
Ваш Дата-автор!
❤3🔥3
Привет, друзья!
Пока я закрываю сессию и финалю часть дел, блогом удается заниматься чуть меньше.
Но! Есть две новости:
1. На днях мой коллега по первому научруку опубликовал статью про гроккинг.
Явление безумно интересное. И красивое.
Призываю прочитать!
2. В курсе по XAI на степик скоро будет полностью готов новый модуль — дописываю последний урок.
Вернусь через неделю!
Спасибо за ваши реакции и комментарии ❤️
Ваш, на сессии,
Дата-автор!
Пока я закрываю сессию и финалю часть дел, блогом удается заниматься чуть меньше.
Но! Есть две новости:
1. На днях мой коллега по первому научруку опубликовал статью про гроккинг.
Явление безумно интересное. И красивое.
Призываю прочитать!
2. В курсе по XAI на степик скоро будет полностью готов новый модуль — дописываю последний урок.
Вернусь через неделю!
Спасибо за ваши реакции и комментарии ❤️
Ваш, на сессии,
Дата-автор!
🤝8❤4
Forwarded from Идеальный стартап
GPT-2 победила o1-mini благодаря гроккингу
Мы использовали 2WikiMultiHopQA набор данных для n-шаговых задач рассуждения и с помощью гроккинга добились 96% точности.
Что такое гроккинг?
Гроккинг – отложенное обобщение модели. Если тренировать модель очень долго, то она начнет решать задачу со 100% точностью на новых данных. Очень долго – в 100 раз дольше после достижения моделью 100% точности на тренировочной выборки.
Что уникального?
Мы первые, кто применил гроккинг на реальном наборе данных. До сих пор гроккинг не применялся на реальных задачах рассуждения – только "лабораторные" примеры модульного деления. Недавно вышла статья, которая все еще на игрушечном наборе данных показала, что проблема была в количестве выведенных фактов. Если просто, то в реальных данных просто недостаточно примеров рассуждения, чтобы гроккинг появился.
Что сделали мы?
Мы решили продолжить открытия той статьи, но на реальных данных и аугментировали больше рассуждения с "выведенными фактами". Сделали это с помощью GPT-4о модели, расширили набор тренировочных данных, тренировали модель очень долго, и вау-ля! У вас почти 100% точность. Почему нет 100%? В процессе аугментации возникают ошибки и галлюцинации, поэтому точность не 100%, но если улучшить этот процесс, то можно достичь и 100%.
Пример задачи:
Обучающая пара:
– Эйфелева Башня находится во Франции.
– Музей BMW находится в Германии.
Вопрос: Находятся ли они в одной стране?
Чтобы ответить, модель должна сделать два шага рассуждения: извлечь местоположения объектов и сравнить их. Проблема в том, что в реальных данных вопросов с ответами не так много – их мы и расширили.
Что теперь?
Хотим работать в этом направлении дальше и планируем расширить набор задач, который можно решать с помощью гроккинга.
Нужна ваша помощь!
Выпустили статью и сейчас боремся за "Статью дня" на Hugging Face. Проголосовать можно тут:
👉 Поддержите апвоутом 👈
Полноценный обзор статьи на Хабре
Сама статья
P.S. За репост отдельный респект.
Мы использовали 2WikiMultiHopQA набор данных для n-шаговых задач рассуждения и с помощью гроккинга добились 96% точности.
Что такое гроккинг?
Гроккинг – отложенное обобщение модели. Если тренировать модель очень долго, то она начнет решать задачу со 100% точностью на новых данных. Очень долго – в 100 раз дольше после достижения моделью 100% точности на тренировочной выборки.
Что уникального?
Мы первые, кто применил гроккинг на реальном наборе данных. До сих пор гроккинг не применялся на реальных задачах рассуждения – только "лабораторные" примеры модульного деления. Недавно вышла статья, которая все еще на игрушечном наборе данных показала, что проблема была в количестве выведенных фактов. Если просто, то в реальных данных просто недостаточно примеров рассуждения, чтобы гроккинг появился.
Что сделали мы?
Мы решили продолжить открытия той статьи, но на реальных данных и аугментировали больше рассуждения с "выведенными фактами". Сделали это с помощью GPT-4о модели, расширили набор тренировочных данных, тренировали модель очень долго, и вау-ля! У вас почти 100% точность. Почему нет 100%? В процессе аугментации возникают ошибки и галлюцинации, поэтому точность не 100%, но если улучшить этот процесс, то можно достичь и 100%.
Пример задачи:
Обучающая пара:
– Эйфелева Башня находится во Франции.
– Музей BMW находится в Германии.
Вопрос: Находятся ли они в одной стране?
Чтобы ответить, модель должна сделать два шага рассуждения: извлечь местоположения объектов и сравнить их. Проблема в том, что в реальных данных вопросов с ответами не так много – их мы и расширили.
Что теперь?
Хотим работать в этом направлении дальше и планируем расширить набор задач, который можно решать с помощью гроккинга.
Нужна ваша помощь!
Выпустили статью и сейчас боремся за "Статью дня" на Hugging Face. Проголосовать можно тут:
👉 Поддержите апвоутом 👈
Полноценный обзор статьи на Хабре
Сама статья
P.S. За репост отдельный респект.
🔥18
🐥 Привет друзья!
Задача «сделать серию постов про архитектурный bias» оказалась с плотной звездочкой. Но кто мы такие, чтобы звездочек бояться? — подумала я, и всё-таки продолжаю эту идею...
Так что сегодня про диффузионные модели.
TLDR: У них проблема не сколько в архитектуре, сколько в том числе в задаче. Во-первых, мы хотим сгенерировать новые данные, на основе обучающих. Во-вторых, делаем это путем последовательного расшумления.
Напоминание:
Диффузионные модели – это класс генеративных моделей, которые учатся пошагово улучшать случайный шум до осмысленных данных путем расшумления.
Где архитектура и процесс генерации значимо влияют на искажения в результирующих данных?
Исследований много. Как минимум — потому что генеративные модели массово используются для создания контента, который, в свою очередь, по определению оказывает влияние на людей.
Так, для диффузионных моделей выделены следующие проблемы:
1. Локальный характер генерации — то есть модели верно воспроизводят отдельные символы, но плохо их собирают. Где это видно: лишние пальцы и нечитаемый текст — детали корректны, а их количество или порядок – нет.
На поверхности — это наследованное bias’a базовой сети — поскольку чаще всего диффузионные модели используют в качестве денойзера сверточный U-Net, они унаследуют и bias CNN: внимание к текстурам, локальным особенностям.
Но! В работе показано, что такой результат справедлив для разных архитектур денойзанга — включая MLP и трансформеры (выше мы с вами видели, что они способны моделировать глобальные зависимости). Это позволяет предположить, что локальность (наряду с архитектурой), также связанна с воспроизведением процесса диффузии.
2. Воспроизведение перекосов — диффузионный генератор тяготеет к “усредненному” по распределению результату, если его явно не скорректировать. Иначе говоря, если в обучающем наборе какой-то признак встречается чаще, модель будет смещена в сторону генерации этих более частых признаков.
Это дает в том числе воспроизведение социальных сдвигов. Так, например, генерации, женщины ( =( ) занижены во всех “высокостатусных” профессиях
“Doctor” → почти всегда мужчина, “nurse” → почти всегда женщина. Почитать какая модель более стереотипна — здесь (но не забудьте посмотреть раздел Limitations). Других статей, если что, тоже много (1, 2, а тут просто оформили красиво)
Что с этим делают?
Существуют Guidance-механизмы — это способ “помочь” модели удерживать нужные свойства генерации. Например, classifier guidance, sliding window guidance, Invariant Guidance. Идея — перенаправить bias туда, куда нам нужно — например, к большей разнообразности, или к более корректной структуре.
Но здесь появляется новая дилемма: целостность — разнообразие.
Слишком сильный guidance — и модель станет “шаблонной”. Слишком слабый — и появятся бессмысленные сцены, перекосы и повторения.
Соединяем с XAI:
Для генеративных моделей, интерпретируемость — это про в том числе анализ bias’ов. Например, если генеративная модель выдаёт мужчину, даже когда вы не уточняли пол, — никакой SHAP, attention rollout или текстовое объяснение не скажет вам почему это — просто социальный сдвиг.
При этом, концепцию сдвигов модели могут "понимать" (пример под рукой для языковых моделей — добавление просьбы "Please make sure that your answer is objective and not based on stereotypes” — влияет на ответ (но не показано в CoT).
Вместо вывода:
Задача объяснений для генерации, как и мультимодальная задача объяснения— челлендж. С точки зрения практики, почти нет хороших how to, так что я очень задумалась потратить это лето на вторую часть XAI курса, с постановкой задачи собрать, воспроизвести и объяснить XAI для мультимодальных и генеративных задач.
Так что может что-то ближе к концу лета будет)
🐣 Но пока я в режиме жизненного откисания, и желаю вам баланса между работой и жизнью,
Всё ещё ваш,
Дата-автор!
Задача «сделать серию постов про архитектурный bias» оказалась с плотной звездочкой. Но кто мы такие, чтобы звездочек бояться? — подумала я, и всё-таки продолжаю эту идею...
Так что сегодня про диффузионные модели.
TLDR: У них проблема не сколько в архитектуре, сколько в том числе в задаче. Во-первых, мы хотим сгенерировать новые данные, на основе обучающих. Во-вторых, делаем это путем последовательного расшумления.
Напоминание:
Диффузионные модели – это класс генеративных моделей, которые учатся пошагово улучшать случайный шум до осмысленных данных путем расшумления.
Где архитектура и процесс генерации значимо влияют на искажения в результирующих данных?
Исследований много. Как минимум — потому что генеративные модели массово используются для создания контента, который, в свою очередь, по определению оказывает влияние на людей.
Так, для диффузионных моделей выделены следующие проблемы:
1. Локальный характер генерации — то есть модели верно воспроизводят отдельные символы, но плохо их собирают. Где это видно: лишние пальцы и нечитаемый текст — детали корректны, а их количество или порядок – нет.
На поверхности — это наследованное bias’a базовой сети — поскольку чаще всего диффузионные модели используют в качестве денойзера сверточный U-Net, они унаследуют и bias CNN: внимание к текстурам, локальным особенностям.
Но! В работе показано, что такой результат справедлив для разных архитектур денойзанга — включая MLP и трансформеры (выше мы с вами видели, что они способны моделировать глобальные зависимости). Это позволяет предположить, что локальность (наряду с архитектурой), также связанна с воспроизведением процесса диффузии.
2. Воспроизведение перекосов — диффузионный генератор тяготеет к “усредненному” по распределению результату, если его явно не скорректировать. Иначе говоря, если в обучающем наборе какой-то признак встречается чаще, модель будет смещена в сторону генерации этих более частых признаков.
Это дает в том числе воспроизведение социальных сдвигов. Так, например, генерации, женщины ( =( ) занижены во всех “высокостатусных” профессиях
“Doctor” → почти всегда мужчина, “nurse” → почти всегда женщина. Почитать какая модель более стереотипна — здесь (но не забудьте посмотреть раздел Limitations). Других статей, если что, тоже много (1, 2, а тут просто оформили красиво)
Что с этим делают?
Существуют Guidance-механизмы — это способ “помочь” модели удерживать нужные свойства генерации. Например, classifier guidance, sliding window guidance, Invariant Guidance. Идея — перенаправить bias туда, куда нам нужно — например, к большей разнообразности, или к более корректной структуре.
Но здесь появляется новая дилемма: целостность — разнообразие.
Слишком сильный guidance — и модель станет “шаблонной”. Слишком слабый — и появятся бессмысленные сцены, перекосы и повторения.
Соединяем с XAI:
Для генеративных моделей, интерпретируемость — это про в том числе анализ bias’ов. Например, если генеративная модель выдаёт мужчину, даже когда вы не уточняли пол, — никакой SHAP, attention rollout или текстовое объяснение не скажет вам почему это — просто социальный сдвиг.
При этом, концепцию сдвигов модели могут "понимать" (пример под рукой для языковых моделей — добавление просьбы "Please make sure that your answer is objective and not based on stereotypes” — влияет на ответ (но не показано в CoT).
Вместо вывода:
Задача объяснений для генерации, как и мультимодальная задача объяснения— челлендж. С точки зрения практики, почти нет хороших how to, так что я очень задумалась потратить это лето на вторую часть XAI курса, с постановкой задачи собрать, воспроизвести и объяснить XAI для мультимодальных и генеративных задач.
Так что может что-то ближе к концу лета будет)
🐣 Но пока я в режиме жизненного откисания, и желаю вам баланса между работой и жизнью,
Всё ещё ваш,
Дата-автор!
❤10🔥1
Автообъяснения для любой модели: Plug-and-Play XAI — фреймворк
🐄Привет, друзья!
Область XAI развивается семимильными шагами, так что я к вам со свежей (от 15 мая) статьей, презентующей новый фреймворк для получения объяснений от моделей.
Что: PnPXAI, статья
Для каких модальностей — все популярные: изображения, текст, табличные данные и временные ряды.
Отличительные особенности:
— автоматически определяет архитектуру модели (см. модуль detector), что важно в использовании архитектурно-специфичных методов
— автоматически предлагает релевантные XAI-методы (см. модуль recommender) — не нужно гуглить и учить что-куда
— предлагает оценки объяснения — не нужно ходить в отдельный фреймворк (модуль evaluator)
— оптимизирует гиперпараметры для повышения качества pileline задачи объснений модели (по аналогии с optuna для тюнинга моделей, модуль optimizer)
— Широкий зоопарк методов с понятной навигацией (см. модуль explaner)
Поскольку есть факт, что многие из существующих библиотек объяснений жёстко привязаны к архитектурам моделей или типам данных — фреймворк очень обещающий. Встроенный AutoExplanation позволяет получить объяснение «в один тык». Удобно.
Буду тестировать и добавлять туториала его в уроках для курса по Multimodal XAI. Да и в целом наткнулась на него в этом контексте.
🐄 Сохраняйте на потом, делитесь и пользуйтесь, штука классная!
Ваш Дата-автор!
🐄Привет, друзья!
Область XAI развивается семимильными шагами, так что я к вам со свежей (от 15 мая) статьей, презентующей новый фреймворк для получения объяснений от моделей.
Что: PnPXAI, статья
Для каких модальностей — все популярные: изображения, текст, табличные данные и временные ряды.
Отличительные особенности:
— автоматически определяет архитектуру модели (см. модуль detector), что важно в использовании архитектурно-специфичных методов
— автоматически предлагает релевантные XAI-методы (см. модуль recommender) — не нужно гуглить и учить что-куда
— предлагает оценки объяснения — не нужно ходить в отдельный фреймворк (модуль evaluator)
— оптимизирует гиперпараметры для повышения качества pileline задачи объснений модели (по аналогии с optuna для тюнинга моделей, модуль optimizer)
— Широкий зоопарк методов с понятной навигацией (см. модуль explaner)
Поскольку есть факт, что многие из существующих библиотек объяснений жёстко привязаны к архитектурам моделей или типам данных — фреймворк очень обещающий. Встроенный AutoExplanation позволяет получить объяснение «в один тык». Удобно.
Буду тестировать и добавлять туториала его в уроках для курса по Multimodal XAI. Да и в целом наткнулась на него в этом контексте.
🐄 Сохраняйте на потом, делитесь и пользуйтесь, штука классная!
Ваш Дата-автор!
🔥12👍6❤1
Forwarded from AI для Всех (Artemii)
🧠🔍 Anthropic выложили в открытый доступ «рентген» для LLM
Сегодня ребята из Anthropic выложили в open-source свежайший circuit-tracer — библиотеку + веб-интерфейс, которые позволяют буквально «посветить фонариком» внутрь любых открытых LLM и посмотреть, как токены влияют друг на друга.
Что дают?
• Attribution graphs — автоматически строят граф «кто-на-кого влияет» (токены → фичи → логиты).
• Neuronpedia UI — кликаешь 👉 смотришь цепочки рассуждений, группируешь узлы, подписываешь и делишься ссылкой.
• Интервенции — в ноутбуке можно подкрутить найденные фичи и сразу увидеть, как меняется ответ модели.
Зачем это нам?
🔑 Интерпретируемость давно отставала от «качаем ещё 10B параметров». Теперь любой энтузиаст может проверить, какие цепочки выводят модель к финальному слову, найти баги рассуждений и даже чинить их on-the-fly.
Пробуйте, делитесь самыми странными цепочки — интересно, какие «мысленные кроличьи норы» вы откопаете! 🐇👆
Ссылка
Сегодня ребята из Anthropic выложили в open-source свежайший circuit-tracer — библиотеку + веб-интерфейс, которые позволяют буквально «посветить фонариком» внутрь любых открытых LLM и посмотреть, как токены влияют друг на друга.
Что дают?
• Attribution graphs — автоматически строят граф «кто-на-кого влияет» (токены → фичи → логиты).
• Neuronpedia UI — кликаешь 👉 смотришь цепочки рассуждений, группируешь узлы, подписываешь и делишься ссылкой.
• Интервенции — в ноутбуке можно подкрутить найденные фичи и сразу увидеть, как меняется ответ модели.
Зачем это нам?
🔑 Интерпретируемость давно отставала от «качаем ещё 10B параметров». Теперь любой энтузиаст может проверить, какие цепочки выводят модель к финальному слову, найти баги рассуждений и даже чинить их on-the-fly.
Пробуйте, делитесь самыми странными цепочки — интересно, какие «мысленные кроличьи норы» вы откопаете! 🐇
Ссылка
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤🔥3
Привет, друзья! Как же я по вам…скучала!
И вот возвращаюсь с интересной статьей Grokking ExPLAIND: Unifying Model, Data, and Training Attribution to Study Model Behavior.
Гроккинг — явление, при котором модель на протяжении множества шагов успешно запоминает обучающую выборку, но не умеет обобщать (то есть валидируется плохо), а затем (после большого количества итераций) внезапно начинает хорошо решать задачу на валидации.
Про гроккинг, упоминалось пару постов выше, когда делилась статьей хорошего знакомого. И эта статья — исследует его (гроккинг, не знакомого) с точки зрения интерпретируемости.
Работа интересная с точки зрения XAI необычным трюком — разложением прогноза модели на компоненты, объединяющие данные, параметры и шаг обучения.
Предложенная идея является расширением Exact Path Kernel (EPK) — метода, разлагающего модель, обученную градиетным спуском, в виде ядровой функции. Ранее этот метод был предложен для SGD, а здесь его обобщили для более широкого класса оптимизаторов.
По итогу предсказание модели записывается как сумма взвешенных скалярных произведений между
- чувствительностью тестового примера к параметрам,
- вкладом обучающего примера в параметры на каждом шаге,
- величинами обновлений параметров на этом шаге.
Ключевые свойства разложения:
1. Прогноз точно восстанавливается из суммы вкладов по обучающим примерам и по шагам — без аппроксимаций.
2. Разложение математически доказываемое
3. Разложение связывает 3 компоненты — данные, параметры и шаг обучения, и дает ответ на вопрос кто и как повлиял в данных на конкретный предсказанный ответ — классические методы сравнивают чаще всего вход и выход, как это делают SHAP или LIME.
Что это приоткрыло для явления гроккинга?
* Сначала модель переобучается, причем вклад в прогноз вносят выходной и последний слои ;
* Потом начинают формироваться «глубокие» представления, вклад в прогноз центрируется с точки зрения расположения в модели (уходит на средние слои);
* В конце, когда модель «грокнула» задачу — остается вклад средних слоев, но вырастает и лидирует вклад финальных представлений, теперь вместе с начальными;
* Изученная геометрия задачи встраиваема. То есть если грокнутые представления вставить с шаг обучения пораньше, то модель начинает обобщать сильно быстрее (рисунок 4 в статье)
Сложность метода, конечно, некультурна — O(NDMO) — для N шагов обучения, D параметров, M обучающих выборок и O измерений. Но такой контроль даёт детализированный анализ процесса обучения.
Но всё же я очень хочу подчеркнуть эту общую идею декомпозиции:
прогноз можно разложить на компоненты, не всегда простые, но понятные — здесь соответствующие конкретным данным, параметрам и моментам обучения. Это не просто даёт объяснение — это открывает путь к прозрачности, а значит имеет потенциал в редактировании моделей, переносе знаний, отслеживании сдвигов.
Красиво? Не то слово. И разлагать на простое не обязательно EPK — важна сама идея. Быть может и вас она на что-то натолкнет :)
И вот возвращаюсь с интересной статьей Grokking ExPLAIND: Unifying Model, Data, and Training Attribution to Study Model Behavior.
Гроккинг — явление, при котором модель на протяжении множества шагов успешно запоминает обучающую выборку, но не умеет обобщать (то есть валидируется плохо), а затем (после большого количества итераций) внезапно начинает хорошо решать задачу на валидации.
Про гроккинг, упоминалось пару постов выше, когда делилась статьей хорошего знакомого. И эта статья — исследует его (гроккинг, не знакомого) с точки зрения интерпретируемости.
Работа интересная с точки зрения XAI необычным трюком — разложением прогноза модели на компоненты, объединяющие данные, параметры и шаг обучения.
Предложенная идея является расширением Exact Path Kernel (EPK) — метода, разлагающего модель, обученную градиетным спуском, в виде ядровой функции. Ранее этот метод был предложен для SGD, а здесь его обобщили для более широкого класса оптимизаторов.
По итогу предсказание модели записывается как сумма взвешенных скалярных произведений между
- чувствительностью тестового примера к параметрам,
- вкладом обучающего примера в параметры на каждом шаге,
- величинами обновлений параметров на этом шаге.
Ключевые свойства разложения:
1. Прогноз точно восстанавливается из суммы вкладов по обучающим примерам и по шагам — без аппроксимаций.
2. Разложение математически доказываемое
3. Разложение связывает 3 компоненты — данные, параметры и шаг обучения, и дает ответ на вопрос кто и как повлиял в данных на конкретный предсказанный ответ — классические методы сравнивают чаще всего вход и выход, как это делают SHAP или LIME.
Что это приоткрыло для явления гроккинга?
* Сначала модель переобучается, причем вклад в прогноз вносят выходной и последний слои ;
* Потом начинают формироваться «глубокие» представления, вклад в прогноз центрируется с точки зрения расположения в модели (уходит на средние слои);
* В конце, когда модель «грокнула» задачу — остается вклад средних слоев, но вырастает и лидирует вклад финальных представлений, теперь вместе с начальными;
* Изученная геометрия задачи встраиваема. То есть если грокнутые представления вставить с шаг обучения пораньше, то модель начинает обобщать сильно быстрее (рисунок 4 в статье)
Сложность метода, конечно, некультурна — O(NDMO) — для N шагов обучения, D параметров, M обучающих выборок и O измерений. Но такой контроль даёт детализированный анализ процесса обучения.
Но всё же я очень хочу подчеркнуть эту общую идею декомпозиции:
прогноз можно разложить на компоненты, не всегда простые, но понятные — здесь соответствующие конкретным данным, параметрам и моментам обучения. Это не просто даёт объяснение — это открывает путь к прозрачности, а значит имеет потенциал в редактировании моделей, переносе знаний, отслеживании сдвигов.
Красиво? Не то слово. И разлагать на простое не обязательно EPK — важна сама идея. Быть может и вас она на что-то натолкнет :)
❤7👍2
И лирическое отступление:
Скучала я, конечно, сильно и вот по какой причине — последний месяц сдавала экзамены. Сначала вступительные в магистратуру, а потом — сессия и гос экзамен. Было очень важно доказать самой себе свои знания и возможности — так что я буквально жила в режиме сон-повторение-еда и физическая активность.
И как же я загналась, друзья! Поняла это только за 3 дня до госа, так что последние 3 дня старалась вернуться в баланс. Снова читала статейки, делала свои исследования, писала ВКР и просто смотрела на уток и деревья. Стало сильно легче.
Чертовски важно не загонять себя тем, что любите. Иначе любовь перетекает в ненависть и все азарт, незаметное течение времени и горящие глаза становятся ничем.
А ничто — это будто бы грустно.
В честь начала лета и до его конца — закидываю промокод DOBBY на курс по XAI. Буду потихоньку писать второй — про мультимодальные модели и, надеюсь, за лето еще много что интересного будет!
Берегите себя и своё время,
Ваш счастливый Дата автор! ❤️
Скучала я, конечно, сильно и вот по какой причине — последний месяц сдавала экзамены. Сначала вступительные в магистратуру, а потом — сессия и гос экзамен. Было очень важно доказать самой себе свои знания и возможности — так что я буквально жила в режиме сон-повторение-еда и физическая активность.
И как же я загналась, друзья! Поняла это только за 3 дня до госа, так что последние 3 дня старалась вернуться в баланс. Снова читала статейки, делала свои исследования, писала ВКР и просто смотрела на уток и деревья. Стало сильно легче.
Чертовски важно не загонять себя тем, что любите. Иначе любовь перетекает в ненависть и все азарт, незаметное течение времени и горящие глаза становятся ничем.
А ничто — это будто бы грустно.
В честь начала лета и до его конца — закидываю промокод DOBBY на курс по XAI. Буду потихоньку писать второй — про мультимодальные модели и, надеюсь, за лето еще много что интересного будет!
Берегите себя и своё время,
Ваш счастливый Дата автор! ❤️
Stepik: online education
Explainable AI (Объяснимое машинное обучение)
В курсе изучаются классические и продвинутые методы интерпретации машинного и глубинного обучения. Подробно разбираются математические обоснования изучаемых методов.
❤🔥15👍3❤1👎1🤣1
Интерпретация CLIP, papers with code (свежие).
Привет, друзья! В последнее время ударилась в анализ методов интерпретации для мультимодальных моделей.Из интересного — собрала методы и идеи для анализа CLIP.
▪️ Пре-теория:
CLIP — модель, обученная сопоставлять изображение и текст в общем пространстве.
Spurious features — признаки, которые коррелируют с меткой в данных, но не связаны причинно (например, фон).
Zero-shot классификация — предсказание без обучающих примеров для класса, только по текстовому описанию.
Second-order effect — влияние элемента модели не напрямую, а через цепочку последующих преобразований.
Mutual knowledge — общий понятийный слой между текстом и изображением, на котором модель принимает решение.
▪️Как обычно интерпретируют CLIP?
Чаще всего исследуют, на какие текстовые концепты "смотрит" изображение, используя:
— Similarity scores между image и text embeddings,
— Grad-CAM/attention heatmaps,
— Prompt engineering
В отличие от обычных подходов, статьи ниже предлагают иную парадигму — либо через анализ внутренних представлений модели (нейроны, attention-heads), либо через поведенческий анализ взаимодействия между модальностями (текстом и изображением).
▪️ Статьи:
1. CLIP Under the Microscope: A Fine-Grained Analysis of Multi-Object Representation [repo]
Как размер объекта и порядок слов в промпте влияют на поведение CLIP? Пример анализа поведения модели в зависимости от промпта.
Авторы анализируют задачу поиска изображения и классификации и показывают, что:
— порядок слов влияет на приоритет внимания;
— мелкие объекты игнорируются, если не упомянуты явно;
— модель чаще "видит" первый объект в тексте, особенно если он крупный на изображении.
2. “Interpreting the Second-Order Effects of Neurons in CLIP” [repo]
Здесь исследуются отдельные нейроны, чтобы понять, какие семантические концепты они кодируют. Основной инструмент — second-order effects: вклад нейрона в выход модели через последующие attention-слои.
Авторы:
— выделяют нейроны, кодирующие семантические концепты (напр. “рыжая собака”);
— автоматически подбирают текстовые описания нейронов;
— применяют это для генерации adversarial-примеров и улучшения zero-shot сегментации
3. INTERPRETING CLIP’S IMAGE REPRESENTATION VIA TEXT-BASED DECOMPOSITION [repo]
В этой работе CLIP-ViT разбирается по слоям и attention-head’ам. Авторы:
— выявляют специализированные головы: по цвету, числу, форме, геолокации и пр.;
— применяют результат применяется для удаления spurious признаков (признаков, которые коррелируют с метками классов в обучающей выборке, но не являются причинно значимыми для правильного вывода. Пример окружение «вода» для уток).
— пименяют результат для повышения устойчивости модели (и решения задачи сегментации)
Кстати пример поиска стиральных признаков вот, но мне не удалось найти описания к нему.
4. "Interpreting and Analysing CLIP’s Zero-Shot Image Classification via Mutual Knowledge" [repo]
Авторы объясняют zero-shot классификацию CLIP через взаимное знание (mutual knowledge) между визуальным и текстовым энкодерами:
— извлекают визуальные концепты (через PCA/K-means) и сопоставляют им тексты;
— оценивают вклад каждого концепта в предсказание;
— показывают, как сила взаимной информации коррелирует с уверенностью и качеством вывода.
▪️ Что есть ещё:
Интерпретация CLIP через градиетный подъём.
Как использовать всё ниже:
Для вдохновения, общего знания и того самого списка на "пригодится" :)
Привет, друзья! В последнее время ударилась в анализ методов интерпретации для мультимодальных моделей.Из интересного — собрала методы и идеи для анализа CLIP.
▪️ Пре-теория:
CLIP — модель, обученная сопоставлять изображение и текст в общем пространстве.
Spurious features — признаки, которые коррелируют с меткой в данных, но не связаны причинно (например, фон).
Zero-shot классификация — предсказание без обучающих примеров для класса, только по текстовому описанию.
Second-order effect — влияние элемента модели не напрямую, а через цепочку последующих преобразований.
Mutual knowledge — общий понятийный слой между текстом и изображением, на котором модель принимает решение.
▪️Как обычно интерпретируют CLIP?
Чаще всего исследуют, на какие текстовые концепты "смотрит" изображение, используя:
— Similarity scores между image и text embeddings,
— Grad-CAM/attention heatmaps,
— Prompt engineering
В отличие от обычных подходов, статьи ниже предлагают иную парадигму — либо через анализ внутренних представлений модели (нейроны, attention-heads), либо через поведенческий анализ взаимодействия между модальностями (текстом и изображением).
▪️ Статьи:
1. CLIP Under the Microscope: A Fine-Grained Analysis of Multi-Object Representation [repo]
Как размер объекта и порядок слов в промпте влияют на поведение CLIP? Пример анализа поведения модели в зависимости от промпта.
Авторы анализируют задачу поиска изображения и классификации и показывают, что:
— порядок слов влияет на приоритет внимания;
— мелкие объекты игнорируются, если не упомянуты явно;
— модель чаще "видит" первый объект в тексте, особенно если он крупный на изображении.
2. “Interpreting the Second-Order Effects of Neurons in CLIP” [repo]
Здесь исследуются отдельные нейроны, чтобы понять, какие семантические концепты они кодируют. Основной инструмент — second-order effects: вклад нейрона в выход модели через последующие attention-слои.
Авторы:
— выделяют нейроны, кодирующие семантические концепты (напр. “рыжая собака”);
— автоматически подбирают текстовые описания нейронов;
— применяют это для генерации adversarial-примеров и улучшения zero-shot сегментации
3. INTERPRETING CLIP’S IMAGE REPRESENTATION VIA TEXT-BASED DECOMPOSITION [repo]
В этой работе CLIP-ViT разбирается по слоям и attention-head’ам. Авторы:
— выявляют специализированные головы: по цвету, числу, форме, геолокации и пр.;
— применяют результат применяется для удаления spurious признаков (признаков, которые коррелируют с метками классов в обучающей выборке, но не являются причинно значимыми для правильного вывода. Пример окружение «вода» для уток).
— пименяют результат для повышения устойчивости модели (и решения задачи сегментации)
Кстати пример поиска стиральных признаков вот, но мне не удалось найти описания к нему.
4. "Interpreting and Analysing CLIP’s Zero-Shot Image Classification via Mutual Knowledge" [repo]
Авторы объясняют zero-shot классификацию CLIP через взаимное знание (mutual knowledge) между визуальным и текстовым энкодерами:
— извлекают визуальные концепты (через PCA/K-means) и сопоставляют им тексты;
— оценивают вклад каждого концепта в предсказание;
— показывают, как сила взаимной информации коррелирует с уверенностью и качеством вывода.
▪️ Что есть ещё:
Интерпретация CLIP через градиетный подъём.
Как использовать всё ниже:
Для вдохновения, общего знания и того самого списка на "пригодится" :)
GitHub
GitHub - openai/CLIP: CLIP (Contrastive Language-Image Pretraining), Predict the most relevant text snippet given an image
CLIP (Contrastive Language-Image Pretraining), Predict the most relevant text snippet given an image - openai/CLIP
❤7🔥6
🦑 Привет, друзья!
Меня не было тут почти месяц, хотя я не прекращала работать. Или пытаться это делать. В последнее время думаю о выборе магистратуры, учу математику и пытаюсь допинать статью. Думаю ещё, чем точечно в интерпретируемости хочу заниматься и куда хочу идти.
Думать сложно, но я пытаюсь.
Вернуться хотелось как-то красиво, поэтому я с новым туториалом: LIME for Time Series Data.
LIME (Local Interpretable Model-Agnostic Explanations) — популярный модет в решении задачи интерпретации. Он основан на простой идее — приблизить прогнозы сложного оценщика (например, нейронной сети) простым — обычно линейной/логистической регрессией.
Применить LIME можно из коробки при помощи одноименной библиотеки [lime]. Однако, при применении LIME к, в частности, к временным рядам возникают особенности,
поэтому в чистом виде lime для TimeSeries не всегда легко применить.
И в этом туториале мы сделаем приближенение метода самостоятельно! И получим красивые, очень красивые, графики.
Как всегда, вместе с Хабропостом, код на гитхаб.
Скучала, и надеюсь вернуться из творческого кризиса,
Ваш Дата-автор! ❤️
Меня не было тут почти месяц, хотя я не прекращала работать. Или пытаться это делать. В последнее время думаю о выборе магистратуры, учу математику и пытаюсь допинать статью. Думаю ещё, чем точечно в интерпретируемости хочу заниматься и куда хочу идти.
Думать сложно, но я пытаюсь.
Вернуться хотелось как-то красиво, поэтому я с новым туториалом: LIME for Time Series Data.
LIME (Local Interpretable Model-Agnostic Explanations) — популярный модет в решении задачи интерпретации. Он основан на простой идее — приблизить прогнозы сложного оценщика (например, нейронной сети) простым — обычно линейной/логистической регрессией.
Применить LIME можно из коробки при помощи одноименной библиотеки [lime]. Однако, при применении LIME к, в частности, к временным рядам возникают особенности,
поэтому в чистом виде lime для TimeSeries не всегда легко применить.
И в этом туториале мы сделаем приближенение метода самостоятельно! И получим красивые, очень красивые, графики.
Как всегда, вместе с Хабропостом, код на гитхаб.
Скучала, и надеюсь вернуться из творческого кризиса,
Ваш Дата-автор! ❤️
❤🔥12🔥3
🐈⬛ Потому что у меня двое.
Cats Confuse Reasoning LLMs — arXiv:2503.01781
Привет, друзья! С одной стороны, известно, что если сказать LLM, что успех в задаче принесёт награду (например, деньги), это может улучшить её перформанс (arXiv:2312.16171, arXiv:2506.06303v1). С другой — вот ещё свежая статья про то, как LLM можно сломать простой вставкой случайного текста в промпт.
Зачем об этом знать, (кроме котиков)?
Потому что это демонстрирует уязвимость LLM к незначительному шуму в промпте. А значит — риск для устойчивости модели при использовании (если ввод не фильтруется).
Что показали:
Reasoning‑модель можно сбить с толку без изменения сути задачи. Достаточно добавить в тело промпта фразу вроде: Interesting fact: cats sleep for most of their lives. (Эта вставка и дала название статье.)
Что сделали:
1) Разработали pipeline CatAttack — автоматический подбор текстовых триггеров (генерировали их с помощью GPT‑4o).
2) Среди подобранных триггеров выделили три типа и оценили их эффективность:
Redirection of Focus
Unrelated Trivia
Misleading Questions
3) Подбирали триггеры на слабой модели DeepSeek V3, а затем проверяли их переносимость на более мощные DeepSeek R1 и Qwen‑32B.
Что получили:
Существенное падение точности reasoning у сильных моделей.
Замедление генерации в 1.5–4 раза.
Самыми разрушительными оказались подсказки типа Misleading Questions, например: "Could the answer be around 175?"
Ограничения:
Важно учесть, что задачи тестировали только на математических задачах из GSM8K и не исследовалась устойчивость более продвинутых моделей (GPT-4, Claude, Gemini). Плюс, эффект может снижаться, если модель была обучена фильтровать ввод.
Но даже с этим — это по-настоящему забавно: как LLM ломается из-за случайной фразы. Особенно когда она про котов :)
Меня эта статья просто безумно улыбнула, поэтому она здесь. И вот такой пост выходного дня, друзья! Надеюсь, у вас лето — потому что у меня — наконец-то да!
Оттаивающий от кризиса,
ваш Дата-автор
Cats Confuse Reasoning LLMs — arXiv:2503.01781
Привет, друзья! С одной стороны, известно, что если сказать LLM, что успех в задаче принесёт награду (например, деньги), это может улучшить её перформанс (arXiv:2312.16171, arXiv:2506.06303v1). С другой — вот ещё свежая статья про то, как LLM можно сломать простой вставкой случайного текста в промпт.
Зачем об этом знать, (кроме котиков)?
Потому что это демонстрирует уязвимость LLM к незначительному шуму в промпте. А значит — риск для устойчивости модели при использовании (если ввод не фильтруется).
Что показали:
Reasoning‑модель можно сбить с толку без изменения сути задачи. Достаточно добавить в тело промпта фразу вроде: Interesting fact: cats sleep for most of their lives. (Эта вставка и дала название статье.)
Что сделали:
1) Разработали pipeline CatAttack — автоматический подбор текстовых триггеров (генерировали их с помощью GPT‑4o).
2) Среди подобранных триггеров выделили три типа и оценили их эффективность:
Redirection of Focus
Unrelated Trivia
Misleading Questions
3) Подбирали триггеры на слабой модели DeepSeek V3, а затем проверяли их переносимость на более мощные DeepSeek R1 и Qwen‑32B.
Что получили:
Существенное падение точности reasoning у сильных моделей.
Замедление генерации в 1.5–4 раза.
Самыми разрушительными оказались подсказки типа Misleading Questions, например: "Could the answer be around 175?"
Ограничения:
Важно учесть, что задачи тестировали только на математических задачах из GSM8K и не исследовалась устойчивость более продвинутых моделей (GPT-4, Claude, Gemini). Плюс, эффект может снижаться, если модель была обучена фильтровать ввод.
Но даже с этим — это по-настоящему забавно: как LLM ломается из-за случайной фразы. Особенно когда она про котов :)
Меня эта статья просто безумно улыбнула, поэтому она здесь. И вот такой пост выходного дня, друзья! Надеюсь, у вас лето — потому что у меня — наконец-то да!
Оттаивающий от кризиса,
ваш Дата-автор
❤9🔥4
NLE: low math explanations
Xочу закинуть сюда относительно свежую статью A Taxonomy for Design and Evaluation of Prompt-Based Natural Language Explanations.
Почему про NLE?
Объяснения в виде естественного языка удобны. Они не требуют математических гипотез для анализа внутренних представлений. Плюс, относительно анализа внутренностей — их проще презентовать аудитории. И это самый практико-ориентированный подход.
Почему про NLE надо что-то изучить перед использованием?
NLE — не надежны. Объяснение может быть:
не связано с задачей [1],
сломано из-за промпта [2, тут показывали, как влияют на CoT смещающие токены],
плохим влиянием на людей, которым оно предоставляется [тут есть много статей в статье, но психологически большему количеству людей в экспериментах легче перекладывать решение/объяснение на ИИ, даже если оно не правильное]
Что в статье:
Таксономия на 3 основных типа (Контекст, Генерация, Оценка), со своими подтипами (всего подтипов 13). Это может дать хорошее вдохновение на оценку NLE, если вы их используете.
Почему статью надо было сюда:
Когда очень хочу разобраться в новой теме или тезисе, всегда начиню с поиска таксономий по ней. А когда таксономий не существует — пытаюсь сделать их сама, чтобы по итогу получить ориентир для «серфинга» по области. Так что хорошая отправная точка.
Мне, правда, пока NLE кажутся похожими на vibe-coding. Но, возможно, у них есть потенциал.
Такой скептичный,
Ваш Дата-автор
Xочу закинуть сюда относительно свежую статью A Taxonomy for Design and Evaluation of Prompt-Based Natural Language Explanations.
Почему про NLE?
Объяснения в виде естественного языка удобны. Они не требуют математических гипотез для анализа внутренних представлений. Плюс, относительно анализа внутренностей — их проще презентовать аудитории. И это самый практико-ориентированный подход.
Почему про NLE надо что-то изучить перед использованием?
NLE — не надежны. Объяснение может быть:
не связано с задачей [1],
сломано из-за промпта [2, тут показывали, как влияют на CoT смещающие токены],
плохим влиянием на людей, которым оно предоставляется [тут есть много статей в статье, но психологически большему количеству людей в экспериментах легче перекладывать решение/объяснение на ИИ, даже если оно не правильное]
Что в статье:
Таксономия на 3 основных типа (Контекст, Генерация, Оценка), со своими подтипами (всего подтипов 13). Это может дать хорошее вдохновение на оценку NLE, если вы их используете.
Почему статью надо было сюда:
Когда очень хочу разобраться в новой теме или тезисе, всегда начиню с поиска таксономий по ней. А когда таксономий не существует — пытаюсь сделать их сама, чтобы по итогу получить ориентир для «серфинга» по области. Так что хорошая отправная точка.
Мне, правда, пока NLE кажутся похожими на vibe-coding. Но, возможно, у них есть потенциал.
Такой скептичный,
Ваш Дата-автор
❤7
Друзья, заходите в воскресенье к нам послушать!
Пока готовились, разогнались с темами на несколько выпусков)
Пока готовились, разогнались с темами на несколько выпусков)
Forwarded from AI Security Lab
Соскучились по нашим подкастам? Самое время вновь встретиться и обсудить проблемы безопасности ИИ 💥
На этот раз мы поговорим об Интерпретируемости моделей ИИ: как, зачем и насколько это реально?
Обсудим вызовы объяснимости моделей ИИ, рассмотрим актуальные исследования в области интерпретируемости классических моделей и LLM от ведущих команд и вендоров.
Когда: 27 июля, 11:00 (МСК)
Платформа: Zoom, регистрация
Приглашённые гости:
➡️ Максим Костриця – DS Reseacher в Raft, магистр ФКН ВШЭ
➡️ Сабрина Садиех – исследователь XAI, выпускница ПетрГУ
Модератор: Тимур Низамов, разработчик LLAMATOR, студент AI Talent Hub
На этот раз мы поговорим об Интерпретируемости моделей ИИ: как, зачем и насколько это реально?
Обсудим вызовы объяснимости моделей ИИ, рассмотрим актуальные исследования в области интерпретируемости классических моделей и LLM от ведущих команд и вендоров.
Когда: 27 июля, 11:00 (МСК)
Платформа: Zoom, регистрация
Приглашённые гости:
Модератор: Тимур Низамов, разработчик LLAMATOR, студент AI Talent Hub
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7
Привет, друзья!
Хорошо, когда на что-то можно посмотреть. Виузальные образы помогают понять объект, но ещё лучше — когда можно с объектом что-то сделать.
С трепетной любовью вообще отношусь к хорошим визуализациям работы моделей, а тут вот появилась очень свежая и очень красивая — InTraVisTo.
Из названия — Inside Transformer Visualisation Tool — посвящена трансформерам.
Визуализация построена следующим образом:
* Декодинг скрытых состояний при помощи Logit Lens (у меня про него есть туториал) и построение Heatmap;
* Построение Sankey-диаграммы — диаграммы потоков, которая показывает распространение информации через блоки внимания и FFN.
! Кроме как посмотреть можно интерактивно делать инъекции.
То есть заменить скрытый вектор в любой позиции и на любой глубине внедрением токена, выбранного из словаря. Глобально — это как пушкой по воробьям, но попробовать поиграть с тем, как вмешательство в конкретный вектор влияет на модель — можно.
Поддерживает разные модели (Mistral, Llama) и режимы декодирования (input/output/смешанный).
Работает в GUI.
Попробовать: GitHub
Попробовать, но не поднимать: демка
Хорошо, когда на что-то можно посмотреть. Виузальные образы помогают понять объект, но ещё лучше — когда можно с объектом что-то сделать.
С трепетной любовью вообще отношусь к хорошим визуализациям работы моделей, а тут вот появилась очень свежая и очень красивая — InTraVisTo.
Из названия — Inside Transformer Visualisation Tool — посвящена трансформерам.
Визуализация построена следующим образом:
* Декодинг скрытых состояний при помощи Logit Lens (у меня про него есть туториал) и построение Heatmap;
* Построение Sankey-диаграммы — диаграммы потоков, которая показывает распространение информации через блоки внимания и FFN.
! Кроме как посмотреть можно интерактивно делать инъекции.
То есть заменить скрытый вектор в любой позиции и на любой глубине внедрением токена, выбранного из словаря. Глобально — это как пушкой по воробьям, но попробовать поиграть с тем, как вмешательство в конкретный вектор влияет на модель — можно.
Поддерживает разные модели (Mistral, Llama) и режимы декодирования (input/output/смешанный).
Работает в GUI.
Попробовать: GitHub
Попробовать, но не поднимать: демка
❤4
И если вы тоже фанат, то вот — из других визуализаций ещё есть
1. BertViz
2. Interactive-GPT-2
3. LM Transparency Tool
4. Transformer explainer — очень похожая на InTraVisTo, но у последней больше выбор моделей и есть упомянутая инъекция.
1. BertViz
2. Interactive-GPT-2
3. LM Transparency Tool
4. Transformer explainer — очень похожая на InTraVisTo, но у последней больше выбор моделей и есть упомянутая инъекция.
❤5