Мне нравится слово интервенции.
Гугл с LLM-кой дает такой (конечно-же, cambridge-based) ouput — interventions есть действия, предпринимаемые для изменения ситуации, улучшения положения дел или предотвращения негативного развития событий.
И, так как негативных сценариев использования LLM можно придумать сколь угодно много, интервенции есть и для них. Сегодня — пост про них, с подборкой фремворков.
Прежде всего, говоря об интервенциях, следует различат два класса подходов:
1. Inference-time interventions (steering и смежные техники)
— не изменяют веса модели
— работают во время выполнения
— управляют поведением через представления
2. Parametric interventions (knowledge editing, fine-tuning)
— изменяют параметры модели
— влияют на “знания”, а не только на поведение
— имеют более устойчивый, но менее локальный эффект
У всех них есть наюнсы, проблемы и так далее, но прежде чем проблемы получить — предлагаю зафиксировать себе места, где их удобно искать =)
pyvene
Библиотека для интервенций и причинного анализа активаций
— activation patching, causal tracing
— проверка гипотез о репрезентациях
— подходит как для интерпретируемости, так и для экспериментов со steering
repeng
Читать через "реп" и будет у вас хорошее настроение. Для извлечения и применения steering-векторов
— построение направлений через полярные данные
— прямое применение в inference
— минималистичный инструментарий для activation steering
pyreft
Representation fine-tuning — что-то промежуточное между steering и fine-tuning
— обучение небольших модулей, влияющих на hidden states
— контроль поведения через обучаемые представления
EasyEdit
Редактирование знаний модели (knowledge editing) через параметры
— изменение конкретных фактов
— реализованы методы ROME, MEMIT и др. — если эти чудные слова вам о чем-либо говорят
EasySteer
Для activation steering, свежий фреймворк.
— упрощённое получение steering-векторов
— быстрый запуск экспериментов (за счет дружбы с vLLM)
NNsight
Контроль forward-pass модели во всех проекциях
— доступ к, перехват и модификация активаций
— batching interventions на несколько инпутов сразу
— ещё и skills repo есть, чтобы подтянуть агентов
Всеми не пользовалась, так что если у вас есть отзыв на какую-либо — welcome.
Ваш,
Дата автор!
Гугл с LLM-кой дает такой (конечно-же, cambridge-based) ouput — interventions есть действия, предпринимаемые для изменения ситуации, улучшения положения дел или предотвращения негативного развития событий.
И, так как негативных сценариев использования LLM можно придумать сколь угодно много, интервенции есть и для них. Сегодня — пост про них, с подборкой фремворков.
Прежде всего, говоря об интервенциях, следует различат два класса подходов:
1. Inference-time interventions (steering и смежные техники)
— не изменяют веса модели
— работают во время выполнения
— управляют поведением через представления
2. Parametric interventions (knowledge editing, fine-tuning)
— изменяют параметры модели
— влияют на “знания”, а не только на поведение
— имеют более устойчивый, но менее локальный эффект
У всех них есть наюнсы, проблемы и так далее, но прежде чем проблемы получить — предлагаю зафиксировать себе места, где их удобно искать =)
pyvene
Библиотека для интервенций и причинного анализа активаций
— activation patching, causal tracing
— проверка гипотез о репрезентациях
— подходит как для интерпретируемости, так и для экспериментов со steering
repeng
Читать через "реп" и будет у вас хорошее настроение. Для извлечения и применения steering-векторов
— построение направлений через полярные данные
— прямое применение в inference
— минималистичный инструментарий для activation steering
pyreft
Representation fine-tuning — что-то промежуточное между steering и fine-tuning
— обучение небольших модулей, влияющих на hidden states
— контроль поведения через обучаемые представления
EasyEdit
Редактирование знаний модели (knowledge editing) через параметры
— изменение конкретных фактов
— реализованы методы ROME, MEMIT и др. — если эти чудные слова вам о чем-либо говорят
EasySteer
Для activation steering, свежий фреймворк.
— упрощённое получение steering-векторов
— быстрый запуск экспериментов (за счет дружбы с vLLM)
NNsight
Контроль forward-pass модели во всех проекциях
— доступ к, перехват и модификация активаций
— batching interventions на несколько инпутов сразу
— ещё и skills repo есть, чтобы подтянуть агентов
Всеми не пользовалась, так что если у вас есть отзыв на какую-либо — welcome.
Ваш,
Дата автор!
GitHub
GitHub - stanfordnlp/pyvene: Stanford NLP Python library for understanding and improving PyTorch models via interventions
Stanford NLP Python library for understanding and improving PyTorch models via interventions - stanfordnlp/pyvene
❤11🔥6👍3
Привет, друзья!
Пятничный релиз, перед выходными/шатдауном/цифровым детоксом — выбирайте свой лагерь! 🗿
Сегодня. Мы. Чудной командой. Зарелизили супер-подробный technical report новой guardrail модели. А ещё саму модель (аж в 3 версиях) и данные, собранные глазами несчастных и одним Клодом.
От души:
GLiNER Guard: Unified Encoder Family for Production LLM Safety and Privacy — легковесный encoder-based guardrail для safety moderation и PII detection.
Что внутри:
— архитектура на базе GLiNER2
— uni / bi / omni encoder варианты
— safety classification + span-level PII extraction за один forward pass
— TensorRT / dynamic batching / serving benchmarks
Зачем мы выпустили ещё одну модель с приставкой guard?
В проде детекция персональных данных и поиск всего плохого — это вполне соседние задачи одного и того же first-stage pipeline: перед тем как запрос попадет в LLM или downstream систему, нужно одновременно проверить:
— нет ли вредоносного контента
— нет ли персональных данных
— не происходит ли prompt injection / policy violation
На практике это может быть решено несколькими шагами, что ухудшает технические метрики. Мы предложили сценарий, где safety classification и PII extraction работают в одном encoder-е.
Из интересного:
— до 37× быстрее WildGuard — с качеством мы подрабатываем;
— competitive prompt-level quality на Aegis 2.0 и StrongReject
— ~193 RPS на A100
Из ограничений:
— response-level moderation пока хуже больших LLM guardrails (ну, потому что это encoder =))
— часть PII extraction в pipeline rule-based
— serving evaluation пока только на A100
В комплекте мы открыли PII-Bench — benchmark для оценки извлечения персональных данных в end-to-end пайплайнах — он пока только для русского языка.
Ссылки:
Тех репорт: https://arxiv.org/abs/2605.05277
Модели: https://huggingface.co/collections/hivetrace/gliner-guard-v1
Бенчмарк: https://huggingface.co/datasets/hivetrace/pii-bench
Всем пятницы и отличных выходных!
Пятничный релиз, перед выходными/шатдауном/цифровым детоксом — выбирайте свой лагерь! 🗿
Сегодня. Мы. Чудной командой. Зарелизили супер-подробный technical report новой guardrail модели. А ещё саму модель (аж в 3 версиях) и данные, собранные глазами несчастных и одним Клодом.
От души:
GLiNER Guard: Unified Encoder Family for Production LLM Safety and Privacy — легковесный encoder-based guardrail для safety moderation и PII detection.
Что внутри:
— архитектура на базе GLiNER2
— uni / bi / omni encoder варианты
— safety classification + span-level PII extraction за один forward pass
— TensorRT / dynamic batching / serving benchmarks
GLiNER2 — encoder архитектура для extraction-задач, где модель ищет сущности и span’ы по текстовым описаниям категорий. Условно: вместо фиксированного набора классов ей можно сказать “найди prompt injection”, “найди адрес”, “найди unsafe request” — и она будет искать это как extraction-задачу. Gliner ничего не генерирует токен-за-токеном, а сразу считает scores для классов и spans. Мы посчитали, что такая схема очень естественно переносится на safety и policy pipelines, особенно если заняться ускорением модели.
Зачем мы выпустили ещё одну модель с приставкой guard?
В проде детекция персональных данных и поиск всего плохого — это вполне соседние задачи одного и того же first-stage pipeline: перед тем как запрос попадет в LLM или downstream систему, нужно одновременно проверить:
— нет ли вредоносного контента
— нет ли персональных данных
— не происходит ли prompt injection / policy violation
На практике это может быть решено несколькими шагами, что ухудшает технические метрики. Мы предложили сценарий, где safety classification и PII extraction работают в одном encoder-е.
Из интересного:
— до 37× быстрее WildGuard — с качеством мы подрабатываем;
— competitive prompt-level quality на Aegis 2.0 и StrongReject
— ~193 RPS на A100
Из ограничений:
— response-level moderation пока хуже больших LLM guardrails (ну, потому что это encoder =))
— часть PII extraction в pipeline rule-based
— serving evaluation пока только на A100
В комплекте мы открыли PII-Bench — benchmark для оценки извлечения персональных данных в end-to-end пайплайнах — он пока только для русского языка.
Ссылки:
Тех репорт: https://arxiv.org/abs/2605.05277
Модели: https://huggingface.co/collections/hivetrace/gliner-guard-v1
Бенчмарк: https://huggingface.co/datasets/hivetrace/pii-bench
Всем пятницы и отличных выходных!
arXiv.org
GLiNER Guard: Unified Encoder Family for Production LLM Safety and Privacy
Production LLM systems require both safety moderation and PII detection under strict latency and cost constraints. This creates a trade-off: autoregressive moderators are accurate but expensive,...
1🔥12❤4👍2💯1🤣1
Привет, друзья!
Ура, выходной понедельник!
На днях я наконец пережила кризис пришествия агентов в жизнь, уронила скепсис и решила собрать эксперимент со следующими вводными:
Взяла LangChain, модельку gpt-oss-120B (по апишке, конечно), простейший датасет с опухолями и поисследовала качество решения задачи в 3 сетапах — с простым агентом, агентом без свободы в tool calling и с тройкой агентов: интерпретирующий, критик и оформляющий.
Код туториала лежит здесь: https://github.com/SadSabrina/XAI-open_materials/tree/main/naive_agent_and_xai
TLDR результатов:
— Zero-shot агент не развалился (разве что чуть-чуть — не справился с SHAP) даже без подробного prompt-а.
При данных ему тулах, сделал нормальный XAI pipeline: sanity checks, посмотрели метрики, посмотрел feature importance.
Уточнение prompt-а решило проблему с SHAP и дало достаточно приемлемый отчет (который разве что надо скептически оценивать)
— Ручной вариант (в статье manual pipeline) тоже справился с оформлением, но не справился с налитием воды. Это можно фиксить и доделать до хорошего решения.
— Multi-agent вариант отлично справился со снижением «пустословия по выводам» (overclaiming), но налил безумно много той же воды и так как лепить 3 агентов дороже, чем справляться одним — оказался здесь лишним улучшением.
Main:
В целом, задача автоматизируется очень хорошо — построить агента, который объясняет модель достаточно легко. А вот построить аккуратный поток выводов из этого сложно =)
🌀 Хабропост почитать: https://habr.com/ru/articles/1033184/
И всем отличной недели!
Ура, выходной понедельник!
На днях я наконец пережила кризис пришествия агентов в жизнь, уронила скепсис и решила собрать эксперимент со следующими вводными:
а) с агентом
б) с автоматизацией задачи интерпретируемости
в) бесплатно
Взяла LangChain, модельку gpt-oss-120B (по апишке, конечно), простейший датасет с опухолями и поисследовала качество решения задачи в 3 сетапах — с простым агентом, агентом без свободы в tool calling и с тройкой агентов: интерпретирующий, критик и оформляющий.
Код туториала лежит здесь: https://github.com/SadSabrina/XAI-open_materials/tree/main/naive_agent_and_xai
TLDR результатов:
— Zero-shot агент не развалился (разве что чуть-чуть — не справился с SHAP) даже без подробного prompt-а.
При данных ему тулах, сделал нормальный XAI pipeline: sanity checks, посмотрели метрики, посмотрел feature importance.
Уточнение prompt-а решило проблему с SHAP и дало достаточно приемлемый отчет (который разве что надо скептически оценивать)
— Ручной вариант (в статье manual pipeline) тоже справился с оформлением, но не справился с налитием воды. Это можно фиксить и доделать до хорошего решения.
— Multi-agent вариант отлично справился со снижением «пустословия по выводам» (overclaiming), но налил безумно много той же воды и так как лепить 3 агентов дороже, чем справляться одним — оказался здесь лишним улучшением.
Main:
В целом, задача автоматизируется очень хорошо — построить агента, который объясняет модель достаточно легко. А вот построить аккуратный поток выводов из этого сложно =)
🌀 Хабропост почитать: https://habr.com/ru/articles/1033184/
И всем отличной недели!
1❤12🔥7⚡2🏆1
Галя, у нас отмена анализа чисел!
Мемы про людей я не люблю, потому что участникам, наверное, могло быть неловко. Но фраза въелась, поэтому живём с чем живём.
Anthropic выкатили, Neuronpedia подхватили Natural Language Autoencoders (NLA далее) — ещё один способ использовать архитектуру автоэнкодера в задачах интерпретируемости.
И вы верно догадалась — заняться они предложили переводом активаций в естественный язык. Они не первые, не последние — совсем недавно были ещё activation oracles. Но сейчас механика действия не стиринг — а дообучение.
Что с чем:
NLA всё ещё имеет вид простейшего автоэнкодера, но вместо скрытого вектора внутрь предложено засунуть текстовый bottleneck. Картинку прикреплю ниже. Он состоит из двух моделей:
Activation Verbalizer (AV) — берет activation vector из residual stream и пишет текстовое объяснение того, что, вероятно, закодировано в этом состоянии.
Activation Reconstructor (AR) — берет это объяснение и пытается восстановить исходную активацию.
Training loop выглядит +/- так:
1. Берут activation vectors из target model.
2. Для каждой activation AV генерирует несколько разных textual explanations.
3. AR пытается по каждому explanation восстановить исходную activation и обновляется обычным шагом спуска, минимизируя reconstruction error.
5. Далее rconstruction error превращается в reward для AV.
6. AV обновляется уже через RL, получая награду за объяснения, которые лучше сохраняют информацию об активации.
Что красивое:
По сути во всей постановке задача минимизации автоэнкодера (то есть наш обычный лосс) вообще ни коим образом не включает ничего про корректность задачи перевода активации на слова. Он включает только ошибку реконструкции и ревард за эту ошибку — то есть то, насколько хорошо автоэнкодер восстанавливает вход на основе текстового bottleneck.
Достигается это за счет тепленького (warm-start) — оба модуля инициализируют (почти) копией объясняемой модели и дополнительно дообучаются на задаче саммаризации (где вид задачи: из активации — в текстовое саммари).
То есть если мы хотим сделать объяснения того же Opus, то автоэнкодер — это два Opusa, стакнутые текстом.
Долго, дорого, но эффективно. Где и как это применить можно почитать прямо в статье. Правда есть огромное ограничения вида "что это правда — мы не проверим, но оно как-то работает" — почти себе градиетный спуск. Авторы это тоже признают.
На конец: оставлю ссылок, где это всё потыкать (и буду рада, если у кого-то дойдут руки до того, как дойдут мои!)
1. Ноутбук с примерами использования NLA для gemma3-27b, llama3.3-70b
2. Библотека для трейна и эвала NLA-шек
Чудесного вам вечера, ночи или утра, и с новой вас неделей!
Мемы про людей я не люблю, потому что участникам, наверное, могло быть неловко. Но фраза въелась, поэтому живём с чем живём.
Anthropic выкатили, Neuronpedia подхватили Natural Language Autoencoders (NLA далее) — ещё один способ использовать архитектуру автоэнкодера в задачах интерпретируемости.
И вы верно догадалась — заняться они предложили переводом активаций в естественный язык. Они не первые, не последние — совсем недавно были ещё activation oracles. Но сейчас механика действия не стиринг — а дообучение.
Что с чем:
NLA всё ещё имеет вид простейшего автоэнкодера, но вместо скрытого вектора внутрь предложено засунуть текстовый bottleneck. Картинку прикреплю ниже. Он состоит из двух моделей:
Activation Verbalizer (AV) — берет activation vector из residual stream и пишет текстовое объяснение того, что, вероятно, закодировано в этом состоянии.
Activation Reconstructor (AR) — берет это объяснение и пытается восстановить исходную активацию.
Training loop выглядит +/- так:
1. Берут activation vectors из target model.
2. Для каждой activation AV генерирует несколько разных textual explanations.
3. AR пытается по каждому explanation восстановить исходную activation и обновляется обычным шагом спуска, минимизируя reconstruction error.
5. Далее rconstruction error превращается в reward для AV.
6. AV обновляется уже через RL, получая награду за объяснения, которые лучше сохраняют информацию об активации.
Что красивое:
По сути во всей постановке задача минимизации автоэнкодера (то есть наш обычный лосс) вообще ни коим образом не включает ничего про корректность задачи перевода активации на слова. Он включает только ошибку реконструкции и ревард за эту ошибку — то есть то, насколько хорошо автоэнкодер восстанавливает вход на основе текстового bottleneck.
Достигается это за счет тепленького (warm-start) — оба модуля инициализируют (почти) копией объясняемой модели и дополнительно дообучаются на задаче саммаризации (где вид задачи: из активации — в текстовое саммари).
То есть если мы хотим сделать объяснения того же Opus, то автоэнкодер — это два Opusa, стакнутые текстом.
Долго, дорого, но эффективно. Где и как это применить можно почитать прямо в статье. Правда есть огромное ограничения вида "что это правда — мы не проверим, но оно как-то работает" — почти себе градиетный спуск. Авторы это тоже признают.
На конец: оставлю ссылок, где это всё потыкать (и буду рада, если у кого-то дойдут руки до того, как дойдут мои!)
1. Ноутбук с примерами использования NLA для gemma3-27b, llama3.3-70b
2. Библотека для трейна и эвала NLA-шек
Чудесного вам вечера, ночи или утра, и с новой вас неделей!
1❤10🔥3👍1👀1
Когда навигатор не работает — грустно.
Особенно когда ты делала его сама, так что я тут переделала, и теперь у нас есть свежая версия Навигатора по XAI-библиотекам.
Делала его ещё на 2-3 курсе бакалавриата. Была таблица с 36 библиотеками, фильтр по фреймворку и типу данных и ручной занос в БД.
Чуть-чуть дотюнила в связи с оббежавшим навигатор временем. Итого, стало:
🍙 51 библиотека вместо 36 — XAI развивается =) На главной странице оставлены только те, что обновлялись менее года назад;
🍙 Появилась отдельная категория — Mechanistic Interpretability (в настоящий момент без неё уже и никуда);
🍙 Фильтрация по парадигме (Classic XAI / Mechanistic / Hybrid), модальности и типу метода — мультиселект, всё сразу;
🍙 Ссылки теперь кликабельные (раньше это не работало, у меня лапки) — можно удобно перейти как в самые знаменитые библиотеки TransformerLens, SAELens, так и менее на слуху — например, Prisma для Vision MechInterp;
🍙 Для каждой библиотеки — звёзды GitHub и дата последнего обновления;
🍙 Прямо в приложении есть форма Suggest a Library — если знаете библиотеку, которой нет в списке, можно предложить её там, я просмотрю и добавлю.
Ссылка: https://xai-table.streamlit.app
Теперь и смотреть приятнее, надеюсь, и вам поможет найтись во всем обилии методов и библиотек)
#xai_navi
Особенно когда ты делала его сама, так что я тут переделала, и теперь у нас есть свежая версия Навигатора по XAI-библиотекам.
Делала его ещё на 2-3 курсе бакалавриата. Была таблица с 36 библиотеками, фильтр по фреймворку и типу данных и ручной занос в БД.
Чуть-чуть дотюнила в связи с оббежавшим навигатор временем. Итого, стало:
🍙 51 библиотека вместо 36 — XAI развивается =) На главной странице оставлены только те, что обновлялись менее года назад;
🍙 Появилась отдельная категория — Mechanistic Interpretability (в настоящий момент без неё уже и никуда);
🍙 Фильтрация по парадигме (Classic XAI / Mechanistic / Hybrid), модальности и типу метода — мультиселект, всё сразу;
🍙 Ссылки теперь кликабельные (раньше это не работало, у меня лапки) — можно удобно перейти как в самые знаменитые библиотеки TransformerLens, SAELens, так и менее на слуху — например, Prisma для Vision MechInterp;
🍙 Для каждой библиотеки — звёзды GitHub и дата последнего обновления;
🍙 Прямо в приложении есть форма Suggest a Library — если знаете библиотеку, которой нет в списке, можно предложить её там, я просмотрю и добавлю.
Ссылка: https://xai-table.streamlit.app
Теперь и смотреть приятнее, надеюсь, и вам поможет найтись во всем обилии методов и библиотек)
#xai_navi
Streamlit
XAI Library Navigator
A Streamlit app for finding and filtering libraries for ML model interpretation — covering both ...
2❤🔥16🔥7💯2
Почти ничего у меня полезного с прошлой недели нет, потому что было очень много чего на доделать. И львиную долю времени в этом «доделать» занимали ревью ВКР и статей (получила ачивку ревьюера на MechInterp Workshop-е ICML 2026).
Делаю ревью уже второй год, и каждый раз это портал в минимум час работы на один "артефакт", если не закидывать PDF в GPT. При этом, когда на ревью потрачено слишком много времени — от него уже тошнит, а когда слишком мало — это не слишком качественная работа.
Но ревьюшки обожаю, потому что, как говорит мой профессор: «ревью — это диалог». А ещё источник знаний. И чтобы не устраивать себе добровольное колесование (а на неделе было так, ибо работ вышло 9 — 3 ВКР, 3 статьи, подаваемые на конференции и ещё 3 — как раз спущенные с MechInt Workshop-a), выделила пару вещей, которые, быть может, и вам когда-то помогут. Или вы просто узнаете, что такое колесование =)
Первая — это читать статью в ограниченное число прочиток (мой максимум 5, по крайней мере — я в него целюсь), где первая — это беглое чтение (abstract + method + conclusion), вторая — вдумчивое (method + experiments/results), третья — понять method ещё раз (потому что с первого раза может быть не понятно), четвертая — ещё раз, если зашло совсем плохо, а пятая — это принятие своего непонимания и анализ всяких ошибок и помарок (ссылки, фигуры, подписи и прочее косметическое).
Какие-то работы правда очень сложно понять, сколько бы статей ты не прочитал. Принять свое непонимание — ещё сложнее, потому что «как так, я же <вставьте-свой-грейд>». Но это тоже забавный процесс, который мотивирует учиться.
По идее, это должно экономить время, но вот я почти всегда перепрыгиваю порог в 5 вычиток. В прочем, меня успокаивает существование видео Neel Nanda (одного из ведущих рисерчеров в MI) с ревью статей на 3 часа. Кстати, как учебный материал для себя — очень прикольно смотреть такое (осталось найти 3 часа).
Вторая — писать ревью с мыслью о том, что это должен быть именно диалог. То есть не «вы сделали каку, реджект», а «я вижу, что может быть не хватает этого, потому что …», сформулированное с разной степенью уверенности. Хотя иногда хочется защитить себя и показать, что «не я туплю, а у вас бред», мне кажется, хорошие работы — это не место для пафоса.
Я часто задаю себе вопросы, почему я хочу написать именно такой тезис. Это помогает очистить мое непонимание от правда пробела в методологии, и мне хочется верить, что это делает фидбек полезнее.
Мои кредо на этом закончились, но быть может, у вас есть что сюда докинуть, и если да — то welcome!
Из самого крутого, что всегда помогает — это принятый формат, наверное, почти всех ML конференций:
С него сложно уехать, и он уже во многом делает ревью лучше, чем оно могло бы быть в свободном формате. Поэтому, кстати, полезным может оказаться попросить LLM сделать ревью работы в NIPS/ICML-выбери свой- style. Какие-то тезисы правда очень помогают (хотя какие-то — всё ещё нет). А ещё у Стэнфорда есть paperreview.ai, но я им, как-то, доселе не пользовалась.
Из смешного, кажется, писать статьи на конференции — это ок, а вот писать ВКР о AI на русском — это уже пилотаж. Локализация терминов и перевод на основе Клода или GPT — просто невероятные. Мои свежесобранные и избранные (все совпадения случайны) — решение на основе нулевого выстрела (zero-shot), линейный пробник (linear probe), статистически значительный результат (похоже, statistically significant). В прочем, мне самой сложно плеваться переводами, поэтому речь иногда выглядит в духе "надо провести ablation".
На этом потоку конец, и всем human-based reviews и отличной недели!
Делаю ревью уже второй год, и каждый раз это портал в минимум час работы на один "артефакт", если не закидывать PDF в GPT. При этом, когда на ревью потрачено слишком много времени — от него уже тошнит, а когда слишком мало — это не слишком качественная работа.
Но ревьюшки обожаю, потому что, как говорит мой профессор: «ревью — это диалог». А ещё источник знаний. И чтобы не устраивать себе добровольное колесование (а на неделе было так, ибо работ вышло 9 — 3 ВКР, 3 статьи, подаваемые на конференции и ещё 3 — как раз спущенные с MechInt Workshop-a), выделила пару вещей, которые, быть может, и вам когда-то помогут. Или вы просто узнаете, что такое колесование =)
Первая — это читать статью в ограниченное число прочиток (мой максимум 5, по крайней мере — я в него целюсь), где первая — это беглое чтение (abstract + method + conclusion), вторая — вдумчивое (method + experiments/results), третья — понять method ещё раз (потому что с первого раза может быть не понятно), четвертая — ещё раз, если зашло совсем плохо, а пятая — это принятие своего непонимания и анализ всяких ошибок и помарок (ссылки, фигуры, подписи и прочее косметическое).
Какие-то работы правда очень сложно понять, сколько бы статей ты не прочитал. Принять свое непонимание — ещё сложнее, потому что «как так, я же <вставьте-свой-грейд>». Но это тоже забавный процесс, который мотивирует учиться.
По идее, это должно экономить время, но вот я почти всегда перепрыгиваю порог в 5 вычиток. В прочем, меня успокаивает существование видео Neel Nanda (одного из ведущих рисерчеров в MI) с ревью статей на 3 часа. Кстати, как учебный материал для себя — очень прикольно смотреть такое (осталось найти 3 часа).
Вторая — писать ревью с мыслью о том, что это должен быть именно диалог. То есть не «вы сделали каку, реджект», а «я вижу, что может быть не хватает этого, потому что …», сформулированное с разной степенью уверенности. Хотя иногда хочется защитить себя и показать, что «не я туплю, а у вас бред», мне кажется, хорошие работы — это не место для пафоса.
Я часто задаю себе вопросы, почему я хочу написать именно такой тезис. Это помогает очистить мое непонимание от правда пробела в методологии, и мне хочется верить, что это делает фидбек полезнее.
Мои кредо на этом закончились, но быть может, у вас есть что сюда докинуть, и если да — то welcome!
Из самого крутого, что всегда помогает — это принятый формат, наверное, почти всех ML конференций:
1. Summary своими словами
2. Сильные стороны
3. Слабые стороны
4. Предложение/вопросы авторам
5. Итоговая оценка.
С него сложно уехать, и он уже во многом делает ревью лучше, чем оно могло бы быть в свободном формате. Поэтому, кстати, полезным может оказаться попросить LLM сделать ревью работы в NIPS/ICML-выбери свой- style. Какие-то тезисы правда очень помогают (хотя какие-то — всё ещё нет). А ещё у Стэнфорда есть paperreview.ai, но я им, как-то, доселе не пользовалась.
Из смешного, кажется, писать статьи на конференции — это ок, а вот писать ВКР о AI на русском — это уже пилотаж. Локализация терминов и перевод на основе Клода или GPT — просто невероятные. Мои свежесобранные и избранные (все совпадения случайны) — решение на основе нулевого выстрела (zero-shot), линейный пробник (linear probe), статистически значительный результат (похоже, statistically significant). В прочем, мне самой сложно плеваться переводами, поэтому речь иногда выглядит в духе "надо провести ablation".
На этом потоку конец, и всем human-based reviews и отличной недели!
1🔥16❤6🙏2
Привет, друзья!
Хоть в CTF я и профан, занудная любовь к такому формату у меня есть и вряд ли когда-нибудь пройдет. Играть и что-нибудь захватывать любят, кажется, все — независимо от возраста, профессии и должности. Со временем меняется только формат)
И пока у меня самой не хватает времени на новые курсы (хотя осенью у меня будет целый предмет в ВШЭ (с открытой репой, надеюсь), но об этом расскажу, как только переживу лето), мои товарищи выпустили курс «AI Security: практикум по безопасности ИИ-приложений».
Курс — очень вводный (с нуля), очень классный и очень покрывающий тему безопасности AI-систем. Он построен вокруг (как раз) практических CTF-заданий и если вы не любите как-то долго читать теорию, и хотите учиться на практике — то, что нужно.
В курсе покрыты:
• Prompt Injection, jailbreak-техники (разница — есть!) и обход системных инструкций
• Разные ракурсы для вас, как для атакующего — Indirect Prompt Injection через документы, почту и веб-контент, а также атаки на агентные системы и отравление RAG
• Подходы к защите — от простых фильтров до архитектурных решений — потому что все мы за добро доброе
Курс не требует навыков программирования, поэтому подойдет как если вы хотите отдохнуть после работы в IDE, так и если вы в ней не работаете.
Есть демо-доступ.
Ссылка на курс (и я попросила нам персональный промокод, потому что мы с вами уже большие товарищи) со скидкой: здесь.
Тем же временем я в режиме "сечас-все-будет" дописываю ещё пару туториалов, так что тоже скоро зашерю. А вообще — почти первый день лета, и всем желаю, чтобы у вас был запланировало чилл-окно в эти несколько месяцев! 🗿
Хоть в CTF я и профан, занудная любовь к такому формату у меня есть и вряд ли когда-нибудь пройдет. Играть и что-нибудь захватывать любят, кажется, все — независимо от возраста, профессии и должности. Со временем меняется только формат)
И пока у меня самой не хватает времени на новые курсы (хотя осенью у меня будет целый предмет в ВШЭ (с открытой репой, надеюсь), но об этом расскажу, как только переживу лето), мои товарищи выпустили курс «AI Security: практикум по безопасности ИИ-приложений».
Курс — очень вводный (с нуля), очень классный и очень покрывающий тему безопасности AI-систем. Он построен вокруг (как раз) практических CTF-заданий и если вы не любите как-то долго читать теорию, и хотите учиться на практике — то, что нужно.
В курсе покрыты:
• Prompt Injection, jailbreak-техники (разница — есть!) и обход системных инструкций
• Разные ракурсы для вас, как для атакующего — Indirect Prompt Injection через документы, почту и веб-контент, а также атаки на агентные системы и отравление RAG
• Подходы к защите — от простых фильтров до архитектурных решений — потому что все мы за добро доброе
Курс не требует навыков программирования, поэтому подойдет как если вы хотите отдохнуть после работы в IDE, так и если вы в ней не работаете.
Есть демо-доступ.
Ссылка на курс (и я попросила нам персональный промокод, потому что мы с вами уже большие товарищи) со скидкой: здесь.
Тем же временем я в режиме "сечас-все-будет" дописываю ещё пару туториалов, так что тоже скоро зашерю. А вообще — почти первый день лета, и всем желаю, чтобы у вас был запланировало чилл-окно в эти несколько месяцев! 🗿
5❤12🔥10❤🔥4
Сегодня вышла новая версия отчёта OWASP State of Agentic AI Security and Governance.
Я так хотела пошутить про агентов 007, но не придумала как.
Кто такие OWASP?
Ребята правда большие и мощные. Я правда просто веселый увлеченный пирожок. И огромное количество радости я чувствую от того, что благодаря @kokuykin мне удалось внести вклад в работу над разделом Explainable AI and Agent Transparency — в 2 страницы из 139.
В отчёте собраны исследования, практический опыт и взгляды экспертов на ключевые вызовы Agentic AI: от угроз и инцидентов до вопросов идентичности, управления и регулирования. Это отличный источник, если вы ищете идеи для исследований, хотите разобраться в рисках агентных систем или просто понять, где именно могут скрываться уязвимости в AI.
Отчёт тут:
https://genai.owasp.org/resource/state-of-agentic-ai-security-and-governance/
Вообще, хочется не только пошерить отчет, но и сказать, что каждый маленький вклад — это прикольно. Я верю (быть может, наивно), что вопреки всей тревоги вокруг AI-эры (нас заменят, мы кожанные), перед нами есть возможность — адаптироваться, учиться и стараться стать частью чего-то большого.
Желаю вам этого чувства на работе, в повседневных задачах и когда теряетесь.
Всем чего-то хорошего (и отчет тоже классный)!
Я так хотела пошутить про агентов 007, но не придумала как.
Кто такие OWASP?
Это такое большое международное сообщество и некоммерческий фонд, которое занимается вопросами безопасности веб-приложений и программного обеспечения. А теперь ещё и LLM, и агентов, у нас ведь AI-эра.
Ребята правда большие и мощные. Я правда просто веселый увлеченный пирожок. И огромное количество радости я чувствую от того, что благодаря @kokuykin мне удалось внести вклад в работу над разделом Explainable AI and Agent Transparency — в 2 страницы из 139.
В отчёте собраны исследования, практический опыт и взгляды экспертов на ключевые вызовы Agentic AI: от угроз и инцидентов до вопросов идентичности, управления и регулирования. Это отличный источник, если вы ищете идеи для исследований, хотите разобраться в рисках агентных систем или просто понять, где именно могут скрываться уязвимости в AI.
Отчёт тут:
https://genai.owasp.org/resource/state-of-agentic-ai-security-and-governance/
Вообще, хочется не только пошерить отчет, но и сказать, что каждый маленький вклад — это прикольно. Я верю (быть может, наивно), что вопреки всей тревоги вокруг AI-эры (нас заменят, мы кожанные), перед нами есть возможность — адаптироваться, учиться и стараться стать частью чего-то большого.
Желаю вам этого чувства на работе, в повседневных задачах и когда теряетесь.
Всем чего-то хорошего (и отчет тоже классный)!
OWASP Gen AI Security Project
State of Agentic AI Security and Governance 2.01
The State of Agentic AI Security and Governance provides a comprehensive view of today’s landscape for securing and governing autonomous AI systems. It explores the frameworks, governance models, and global regulatory standards shaping responsible Agentic…
❤11👍8🔥6❤🔥1
Привет, друзья!
Я почти всегда сталкиваюсь с мозговой сложностью понять, как лучше задизайнить loss/метрику, где моя сложность — это увидеть ландшафт функции.
Потому что граничные случаи не всегда очевидны, а если ты ещё и крутишь что-то хитрое, голова совсем ломается.
Конечно, существует desmos, и я всем его советую, но он не всегда удобен для ML. Поэтому я собрала мини-место для визуализации метрик — Plot Your Metric: https://plot-your-metric.streamlit.app — вдруг вам тоже оно пригодится.
Что закинуто:
1. Metric Landscape — вводите любую функцию 2-3 переменных, задаете диапазоны — получаете 3D поверхность + heatmap с линиями уровня. Можно отметить порог и сразу видеть форму "зелёной зоны". Направление метрики (больше или меньше = лучше) тоже можно задать.
2. 1D Loss Explorer — несколько лосс-функций на одной оси, аннотации точек, референсные линии. Удобно сравнивать Hinge vs Logistic vs Squared одним взглядом. Или дизайнить свой лосс.
Чтобы было проще — есть примеры.
Код тут: https://github.com/SadSabrina/plot_your_metric
Тыкать тут: https://plot-your-metric.streamlit.app
Идеи приветствуются!
Я почти всегда сталкиваюсь с мозговой сложностью понять, как лучше задизайнить loss/метрику, где моя сложность — это увидеть ландшафт функции.
Потому что граничные случаи не всегда очевидны, а если ты ещё и крутишь что-то хитрое, голова совсем ломается.
Конечно, существует desmos, и я всем его советую, но он не всегда удобен для ML. Поэтому я собрала мини-место для визуализации метрик — Plot Your Metric: https://plot-your-metric.streamlit.app — вдруг вам тоже оно пригодится.
Что закинуто:
1. Metric Landscape — вводите любую функцию 2-3 переменных, задаете диапазоны — получаете 3D поверхность + heatmap с линиями уровня. Можно отметить порог и сразу видеть форму "зелёной зоны". Направление метрики (больше или меньше = лучше) тоже можно задать.
2. 1D Loss Explorer — несколько лосс-функций на одной оси, аннотации точек, референсные линии. Удобно сравнивать Hinge vs Logistic vs Squared одним взглядом. Или дизайнить свой лосс.
Чтобы было проще — есть примеры.
Код тут: https://github.com/SadSabrina/plot_your_metric
Тыкать тут: https://plot-your-metric.streamlit.app
Идеи приветствуются!
❤15🔥8❤🔥5🎄1
Привет, друзья!
Я решила вернуться красиво и напекла новый туториал. Какое-то количество постов назад писала о библиотеках для interventions и начала делать материалы, чтобы можно было "вкатиться" в них на практике. В туториале описан Activation Steering — это inference-time интервенция: мы не трогаем веса модели, а вмешиваемся в поток вычислений «на лету», пока трансформер генерирует.
В туториале описаны три способа реализовать это вмешательство: PyTorch hooks и две библиотеки nnsight, pyvene.
Попутно разобрана вся теория. А именно:
• Метод CAA (Contrastive Activation Addition) — откуда вообще берётся steering vector;
• Почему residual stream и почему последний токен
• Странные термины: failure modes: prompt leakage, oversteering, layer mismatch, concept entanglement
• PCA-диагностика: видим ли мы разделение классов в латентном пространстве вообще?
Модель — GPT-2, запускается везде, коллаб тоже сделан.
🐑 [ссылка на ноутбук]
🐑 [ссылка на Хабр]
Я решила вернуться красиво и напекла новый туториал. Какое-то количество постов назад писала о библиотеках для interventions и начала делать материалы, чтобы можно было "вкатиться" в них на практике. В туториале описан Activation Steering — это inference-time интервенция: мы не трогаем веса модели, а вмешиваемся в поток вычислений «на лету», пока трансформер генерирует.
Базовая идея:
h⁽ˡ⁾ ← h⁽ˡ⁾ + α · v̂
Вектор v̂ кодирует нужное направление, α — сила вмешательства.
В туториале описаны три способа реализовать это вмешательство: PyTorch hooks и две библиотеки nnsight, pyvene.
Попутно разобрана вся теория. А именно:
• Метод CAA (Contrastive Activation Addition) — откуда вообще берётся steering vector;
• Почему residual stream и почему последний токен
• Странные термины: failure modes: prompt leakage, oversteering, layer mismatch, concept entanglement
• PCA-диагностика: видим ли мы разделение классов в латентном пространстве вообще?
Модель — GPT-2, запускается везде, коллаб тоже сделан.
🐑 [ссылка на ноутбук]
🐑 [ссылка на Хабр]
🔥18❤🔥5
Там в посте должен быть какой-то call to action по канонам текстов, но я в это плохо умею, поэтому просто ставьте огонечки, и я всех люблю : )
А вообще — мне недавно сказали, что мой туториал шерили на семинаре в Сириусе. Спасибо, друзья, каждое такое знание повышает коэффициент требования к материалам и радует душу.
Шерьте, трогайте, пишите — это делает меня самым счастливыми пирожком на земле!
Всем чудесной недели!
А вообще — мне недавно сказали, что мой туториал шерили на семинаре в Сириусе. Спасибо, друзья, каждое такое знание повышает коэффициент требования к материалам и радует душу.
Шерьте, трогайте, пишите — это делает меня самым счастливыми пирожком на земле!
Всем чудесной недели!
🔥11❤🔥10🎄2
Я почти не смотрю мемы, но некоторые мемы смотрят на меня. С этого я смеялась — сегодня его вспомнила — вдруг вы тоже посмеетесь и ваша неделя пройдёт легче. 😁
Визуализация:
«тут работы - непочатый клод» (с) MrsWallbreaker
Визуализация:
«тут работы - непочатый клод» (с) MrsWallbreaker
😁14❤8🎄4👏1
Набор рефлексии о том, что важно и нужно, когда ты лидируешь что-либо.
Пусть это будет какой-то #outofresearch контент
Вчера вечером у меня был talk с ребятами на курсе по AI Safety, а сегодня — ретро-синк с моей командой. И так меня удивили вопросы и мысли, что захотелось вытащить несколько тейков из головы и сюда.
Контекст: помимо исследований, путя до phD, преподавания и курса, я сейчас работаю на позиции R&D-лида, где основная моя задача — effort на исследования не только свои: их ведение, публикация и так далее.
За короткое время многое произошло и сейчас у меня получилось подумать о самой позиции и о том, что на самом деле важно, когда у тебя вот такой набор амбиций, чуть "сверху".
И я обожаю копаться в своей голове, регулировать и фокусировать мысли. И их так много, что я лопну, если не достану часть наружу.
Сейчас должен быть, знаете, этот какой-то байт вида «продолжение в комментариях/в карусели», но комментариев у меня нет, и я люблю лонгриды.
1. Быть советником — плохо.
Или я офигела от вопроса "а как верно давать фидбек".
Совет свой сам себе советуй. Когда ты работаешь с командой, которая вложила очень много усилий, и всё, что ты делаешь, — говоришь «тут не хватает», ты портишь отношения и, по-другому говоря, обесцениваешь. Команда, как правило, знает свой микро-проект изнутри, собрала кучу багов — и если улучшение правда нужно, лучше дать чёткие инструкции «как», сформулировать гипотезу в виде вопроса, или вообще сделать самому — если это в твоей зоне компетенций.
2. Делать чекпойнты себе как лидеру и человеку важно.
(«где я сейчас?», «что я сделал(а)?», «что получилось плохо?»)
Мы работаем в удивительном мире, где поток информации, гипотез и идей бежит быстрее Усейна Болта. Останавливаться и сверяться — жизненно необходимо. И для взаимодействия с людьми, и для взаимодействия с собой. Иначе можно уехать с рельсов очень сильно и не прийти к своим глубоким целям (а зачем тогда вообще жить?)
3. Важно знать себя.
70% вклада в отсутсвие выгорания
Я, например, очень легко увлекаюсь. Могу жить на идее, долгих прогулках и сне, в котором эта же идея продолжает крутиться. Потом могу так же успешно выгореть. А ещё я очень коммуникабельна ровно до тех пор, пока регулярно «трогаю траву». Понимание таких вещей сильно помогает управлять собой и не отправлять людей далеко и надолго, когда ресурс заканчивается.
4. В человеке интересен не столько статус, сколько путь к нему — и то, кем он остаётся за его пределами.
Наши способы оптимизации жизни и карьеры вряд ли сработают для кого-то в zero-shot. Но они показывают, как бывает. И как не бывает. И это безумно интересно.
5. Люди — это важно.
Но важно и уметь оставаться открытым, не позволяя этой открытости себя съесть — особенно, когда границы между "своими" и "чужими" размылись до предела. Есть чатик любого уголка мира, где можно найти работу, друзей, место для покупки <вставьте своё> и места для ноготочков (мужская часть аудитории — выбирайте своё).
Быть может, вам что-то из этого откликнется. А если нет — относитесь к этому как к заметке из чьей-то амбициозной рисерч-головы, которая вышла из мира пространств : )
Пусть это будет какой-то #outofresearch контент
Вчера вечером у меня был talk с ребятами на курсе по AI Safety, а сегодня — ретро-синк с моей командой. И так меня удивили вопросы и мысли, что захотелось вытащить несколько тейков из головы и сюда.
Контекст: помимо исследований, путя до phD, преподавания и курса, я сейчас работаю на позиции R&D-лида, где основная моя задача — effort на исследования не только свои: их ведение, публикация и так далее.
За короткое время многое произошло и сейчас у меня получилось подумать о самой позиции и о том, что на самом деле важно, когда у тебя вот такой набор амбиций, чуть "сверху".
И я обожаю копаться в своей голове, регулировать и фокусировать мысли. И их так много, что я лопну, если не достану часть наружу.
Сейчас должен быть, знаете, этот какой-то байт вида «продолжение в комментариях/в карусели», но комментариев у меня нет, и я люблю лонгриды.
1. Быть советником — плохо.
Или я офигела от вопроса "а как верно давать фидбек".
Совет свой сам себе советуй. Когда ты работаешь с командой, которая вложила очень много усилий, и всё, что ты делаешь, — говоришь «тут не хватает», ты портишь отношения и, по-другому говоря, обесцениваешь. Команда, как правило, знает свой микро-проект изнутри, собрала кучу багов — и если улучшение правда нужно, лучше дать чёткие инструкции «как», сформулировать гипотезу в виде вопроса, или вообще сделать самому — если это в твоей зоне компетенций.
2. Делать чекпойнты себе как лидеру и человеку важно.
(«где я сейчас?», «что я сделал(а)?», «что получилось плохо?»)
Мы работаем в удивительном мире, где поток информации, гипотез и идей бежит быстрее Усейна Болта. Останавливаться и сверяться — жизненно необходимо. И для взаимодействия с людьми, и для взаимодействия с собой. Иначе можно уехать с рельсов очень сильно и не прийти к своим глубоким целям (а зачем тогда вообще жить?)
3. Важно знать себя.
70% вклада в отсутсвие выгорания
Я, например, очень легко увлекаюсь. Могу жить на идее, долгих прогулках и сне, в котором эта же идея продолжает крутиться. Потом могу так же успешно выгореть. А ещё я очень коммуникабельна ровно до тех пор, пока регулярно «трогаю траву». Понимание таких вещей сильно помогает управлять собой и не отправлять людей далеко и надолго, когда ресурс заканчивается.
4. В человеке интересен не столько статус, сколько путь к нему — и то, кем он остаётся за его пределами.
Наши способы оптимизации жизни и карьеры вряд ли сработают для кого-то в zero-shot. Но они показывают, как бывает. И как не бывает. И это безумно интересно.
5. Люди — это важно.
Но важно и уметь оставаться открытым, не позволяя этой открытости себя съесть — особенно, когда границы между "своими" и "чужими" размылись до предела. Есть чатик любого уголка мира, где можно найти работу, друзей, место для покупки <вставьте своё> и места для ноготочков (мужская часть аудитории — выбирайте своё).
Быть может, вам что-то из этого откликнется. А если нет — относитесь к этому как к заметке из чьей-то амбициозной рисерч-головы, которая вышла из мира пространств : )
❤19🏆5
Небольшая шпора по Platonic Representations, SAE и CKA.
У меня в TO-DO с неделю лежала мысль: что вообще значит «разреженное представление» и что есть относительно него знаменитая Platonic Representation? Оба определения я понимала, но хотела "почувствовать".
Так родилась эта картинка-шпора, с ответом на вопрос, а также основными тезисами из этой прекрасной гипотезы. Ну и можно погулять по терминам.
Левая часть: один и тот же набор активаций модели можно повернуть в пространстве признаков (без изменения информации), и тогда Sparse Autoencoder (SAE) найдёт уже другой набор разреженных фич. Это возможно потому, что у пространства представлений обычно нет выделенных осей — так же как у шара нет “правильного” верха или низа. То есть «фича» зависит не только от данных, но и от выбранного базиса, а значит разложить платоническое представление на идеальный мир из атомов в разреженное пространство однозначно мы не сможем.
Правая часть: метрики вроде CKA (которая отрепорчена в PlatonicRep) сравнивают не отдельные фичи, а геометрию представлений через матрицу Грама (сходство между всеми объектами или промптами). Эта геометрия не меняется при ортогональных поворотах пространства, поэтому CKA остаётся равной 1 даже тогда, когда найденные SAE-фичи полностью перестроились (и снова смотрим в левую часть).
Получается своего рода парадокс: метрика говорит «всё совпадает», а конкретные фичи — каждый раз разные. И это прямое следствие того, что CKA измеряет форму облака, а не координаты точек в нём.
А если вам не понятно, то аналогия всего происходящего:
Будь модели-людьми (не бейте за антропоморфизацию =)), то смотря на один и тот же предмет, они могли бы описать его с точки зрения разных характеристик. Одна опишет его через координаты по осям X, Y, Z. Другая — через систему координат, повёрнутую на 45°. Третья — через какие-то свои оси. Описания будут выглядеть совершенно по-разному — но если рядом с шаром поставить овал и квадрат, все трое согласятся, что шар ближе к овалу, чем к квадрату.
То есть, ещё раз, неформально: Координаты каждого объекта — разные. Отношения между объектами — одни и те же. Способов описать это — очень-очень много.
Картинку генеративный коллега сделал
У меня в TO-DO с неделю лежала мысль: что вообще значит «разреженное представление» и что есть относительно него знаменитая Platonic Representation? Оба определения я понимала, но хотела "почувствовать".
Так родилась эта картинка-шпора, с ответом на вопрос, а также основными тезисами из этой прекрасной гипотезы. Ну и можно погулять по терминам.
Напомню, главный тейк Platonic Representations: разные модели могут иметь одну и ту же структуру представлений (одну и ту же «форму» облака активаций). Громко можно сказать, что модели сходятся к одной "модели реальности".
Левая часть: один и тот же набор активаций модели можно повернуть в пространстве признаков (без изменения информации), и тогда Sparse Autoencoder (SAE) найдёт уже другой набор разреженных фич. Это возможно потому, что у пространства представлений обычно нет выделенных осей — так же как у шара нет “правильного” верха или низа. То есть «фича» зависит не только от данных, но и от выбранного базиса, а значит разложить платоническое представление на идеальный мир из атомов в разреженное пространство однозначно мы не сможем.
Правая часть: метрики вроде CKA (которая отрепорчена в PlatonicRep) сравнивают не отдельные фичи, а геометрию представлений через матрицу Грама (сходство между всеми объектами или промптами). Эта геометрия не меняется при ортогональных поворотах пространства, поэтому CKA остаётся равной 1 даже тогда, когда найденные SAE-фичи полностью перестроились (и снова смотрим в левую часть).
Получается своего рода парадокс: метрика говорит «всё совпадает», а конкретные фичи — каждый раз разные. И это прямое следствие того, что CKA измеряет форму облака, а не координаты точек в нём.
А если вам не понятно, то аналогия всего происходящего:
Будь модели-людьми (не бейте за антропоморфизацию =)), то смотря на один и тот же предмет, они могли бы описать его с точки зрения разных характеристик. Одна опишет его через координаты по осям X, Y, Z. Другая — через систему координат, повёрнутую на 45°. Третья — через какие-то свои оси. Описания будут выглядеть совершенно по-разному — но если рядом с шаром поставить овал и квадрат, все трое согласятся, что шар ближе к овалу, чем к квадрату.
То есть, ещё раз, неформально: Координаты каждого объекта — разные. Отношения между объектами — одни и те же. Способов описать это — очень-очень много.
Картинку генеративный коллега сделал
❤🔥3👍3❤2
Друзья, я тут завела себе Substack, поэтому если у вас он тоже есть, вы подписывайтесь, ❤️, 💅🏻, 🔁ну вы поняли..
P.S. на самом деле сейчас очень много нагружаю мозг вопросом «как развить канал?» и если вдруг у вас есть дикое желание на шер, интересный коллаб или что-то ещё — вы пишите, это call to action.
P.S. на самом деле сейчас очень много нагружаю мозг вопросом «как развить канал?» и если вдруг у вас есть дикое желание на шер, интересный коллаб или что-то ещё — вы пишите, это call to action.
Substack
Sabrina Sadiekh | Substack
R&D lead at LLMSecurity, explainable AI researcher
❤🔥9❤2🆒2
StiTching
Мне сегодня нужно было сшить кожу на пальце, и в процессе этого перформанса я вспомнила про model stitching. Чтобы скрасить время — врачебное и моё — начала рассказывать зачем это надо. Без понятия, зашло ли хирургу и медсестре, но зато я обнаружила для себя интересный тейк на поделиться с вами = )
Что:
Тогда это осталось нишевым инструментом для картинок — юзали AlexNet-ы.
Потом в 2021 NeurIPS идею дооформили, вышли две работы: Similarity and Matching of Neural Network Representations и Revisiting Model Stitching to Compare Neural Representations. Кстати, в первой работе шутили про Франкенштейна (или нет).
Как это стало устроено:
Смотрим на две обученные и замороженные сети A и B. «Сшитая» модель строится так:
• берём нижние слои сети B (front model, представление r = B≤ℓ)
• между ними ставим тонкий обучаемый stitching layer — единственный, кто обучается
• подключаем к верхним слоям сети A (top model, A>ℓ)
То есть делаем бутерброд из белого и темного хлеба, если хотите. А формально ищется простейший слой, задачей вида: L_ℓ(r; A) = inf_{s∈S} L(A>ℓ ∘ s ∘ r)
Где s — stitching layer, A>ℓ — верхние слои A, r — представление из B. s∈S — тут специально, мы ищем слой из класса простых слоев, а инфимум (inf), как математический знак, говорит нам, что stitching layer обязан быть минимальным: для свёрточных сетей — 1×1 conv с BatchNorm, для трансформеров — token-wise linear.
Как именно обучают stitching layer:
— HLM (hard label matching) — минимизируем ошибку на настоящих метках задачи.
— SLM (soft label matching) — минимизируем расстояние до предсказаний end-модели, а не до ground truth.
— DM (direct matching) — напрямую минимизируем расстояние между активациями на уровне stitching.
— FuLA (functional latent alignment, Athanasiadis et al., 2026) — stitching layer обучается имитировать не только выход end-модели, но и её внутренние процессы послойно (на пальцах плохо — надо читать).
Метрика успеха — stitching penalty = разница между ошибкой сшитой модели и ошибкой базовой A. Penalty ≈ 0 означает совместимость. Penalty < 0 — сшитая модель стала лучше базовой, то есть мы буквально подсадили ей более сильные нижние слои.
Зачем это нужно:
Смотрим на фиолетовую/рыжую цитату — изначально — метрика сходства. Но потом пошло интереснее. Например, Stitchable Neural Networks (CVPR 2023) можно семейство предобученных моделей разного размера (например, Swin-Ti/S/B), сшить и получить модель, которая во время инференса может динамически переключаться между режимами accuracy/efficiency или T-Stitch: ускорение диффузионных моделей через замену первых шагов денойзинга на более лёгкую сеть и возврат к тяжёлой для финального качества.
Это что, пахнет LoRA?
Эту мысль я обдумывала при знакомстве со stitching. Вдруг она не возникла у вас — я опеределиа.
Да: оба метода замораживают предобученные веса и вставляют тонкий линейный слой.
Но нет: LoRA адаптирует одну модель к новой задаче, stitching измеряет совместимость двух уже обученных сетей на старой задаче.
Финал не придумала, но stiting — одна из штук, висящих у меня на "идеи для рисерча". А ещё — просто вдумайтесь! Этот AI-мир можно сшить!
Хирург, кстати, ничего не спросил, но швы наложил нормально.
Аккуратнее будьте, друзья, и будьте здоровы! 😌
Мне сегодня нужно было сшить кожу на пальце, и в процессе этого перформанса я вспомнила про model stitching. Чтобы скрасить время — врачебное и моё — начала рассказывать зачем это надо. Без понятия, зашло ли хирургу и медсестре, но зато я обнаружила для себя интересный тейк на поделиться с вами = )
Что:
Model stitching как идея появился в 2015 году. Его выдвинули как метод изучения эквивалентности двух сетей, но математическая эквивалентность здесь мимо не проходила — она, более того, не верна — авторы назвали два представления эквивалентными, если существует преобразование между ними, в математике мы требуем аксиом).
Тогда это осталось нишевым инструментом для картинок — юзали AlexNet-ы.
Потом в 2021 NeurIPS идею дооформили, вышли две работы: Similarity and Matching of Neural Network Representations и Revisiting Model Stitching to Compare Neural Representations. Кстати, в первой работе шутили про Франкенштейна (или нет).
Как это стало устроено:
Смотрим на две обученные и замороженные сети A и B. «Сшитая» модель строится так:
• берём нижние слои сети B (front model, представление r = B≤ℓ)
• между ними ставим тонкий обучаемый stitching layer — единственный, кто обучается
• подключаем к верхним слоям сети A (top model, A>ℓ)
То есть делаем бутерброд из белого и темного хлеба, если хотите. А формально ищется простейший слой, задачей вида: L_ℓ(r; A) = inf_{s∈S} L(A>ℓ ∘ s ∘ r)
Где s — stitching layer, A>ℓ — верхние слои A, r — представление из B. s∈S — тут специально, мы ищем слой из класса простых слоев, а инфимум (inf), как математический знак, говорит нам, что stitching layer обязан быть минимальным: для свёрточных сетей — 1×1 conv с BatchNorm, для трансформеров — token-wise linear.
Как именно обучают stitching layer:
— HLM (hard label matching) — минимизируем ошибку на настоящих метках задачи.
— SLM (soft label matching) — минимизируем расстояние до предсказаний end-модели, а не до ground truth.
— DM (direct matching) — напрямую минимизируем расстояние между активациями на уровне stitching.
— FuLA (functional latent alignment, Athanasiadis et al., 2026) — stitching layer обучается имитировать не только выход end-модели, но и её внутренние процессы послойно (на пальцах плохо — надо читать).
Метрика успеха — stitching penalty = разница между ошибкой сшитой модели и ошибкой базовой A. Penalty ≈ 0 означает совместимость. Penalty < 0 — сшитая модель стала лучше базовой, то есть мы буквально подсадили ей более сильные нижние слои.
Зачем это нужно:
Смотрим на фиолетовую/рыжую цитату — изначально — метрика сходства. Но потом пошло интереснее. Например, Stitchable Neural Networks (CVPR 2023) можно семейство предобученных моделей разного размера (например, Swin-Ti/S/B), сшить и получить модель, которая во время инференса может динамически переключаться между режимами accuracy/efficiency или T-Stitch: ускорение диффузионных моделей через замену первых шагов денойзинга на более лёгкую сеть и возврат к тяжёлой для финального качества.
Это что, пахнет LoRA?
Эту мысль я обдумывала при знакомстве со stitching. Вдруг она не возникла у вас — я опеределиа.
Да: оба метода замораживают предобученные веса и вставляют тонкий линейный слой.
Но нет: LoRA адаптирует одну модель к новой задаче, stitching измеряет совместимость двух уже обученных сетей на старой задаче.
Финал не придумала, но stiting — одна из штук, висящих у меня на "идеи для рисерча". А ещё — просто вдумайтесь! Этот AI-мир можно сшить!
Хирург, кстати, ничего не спросил, но швы наложил нормально.
Аккуратнее будьте, друзья, и будьте здоровы! 😌
❤13🔥7❤🔥2