Авторисёрч
На протяжении нескольких месяцев меня очень много и очень часто спрашивали про авторисерч: что я думаю, как часто пользуюсь и так далее.
Но на протяжении этих же месяцев я делала НЕавторисерч. Как говорится, гештальт закрыт не был — пришлось закрывать и разбираться. Я и мои агенты сели анализировать то, что есть, мы набрали 9 фреймворков и пошли собирать концепцию автоматизации исследования.
Определение — что такое авторисёрч (далее — АР).
Прежде, запомним, что рисёрч сам по себе (в контексте AI) — это всегда эксперимент. Цели этого эксперимента могут быть разными: открытие нового знания, измерение чего-либо существующего, прикладная задача.
Отсюда, в контексте любого фреймворка, авторисерч — это реализация эксперимента автоматически, с использованиям обвязок разного рода вокруг языковой модели.
В любом АР фреймворке у вас есть:
1. Цикл — типичный эксперимент, вида
"придумать изменение, далее реализовать его кодом, далее запустить, померить и решить, оставить или откатить. Повторить до успеха."
2. Состояние цикла — что модели в её обвязке нужно знать на шаге N+1 из того, что она узнала на предыдущих.
3. Внешний вердикт — чем измерить успех. Как правило это метрика или другой оценщик, но всегда что-то вне агента или заданное ему.
И всё. Эти три компоненты в точности есть основа любого авторисерч-фреймворка.
И у любого, какой бы вы ни решили взять в работу отличие от других будет обычно в одном из трех мест.
Так, например:
1. Состояние можно положить в файл (так делает karpathy/autoresearch), можно в базу данных (OpenResearch), можно в папку AiScientist, CORAL, Sibyl), можно организовать в виде графа (Prove2Me).
2. Принимать решение перехода от одного шага к другому можно оценкой (autoresearch), можно алгоритмом поиска (AiScientist в v2 делает поиск по дереву), можно на уровне структуры данных (OpenResearch, Prove2Me), а можно вообще детерминированно (Agent Laboratory и AI-Researcher).
3. Измерять успех же можно числом (autoresearch, OpenResearch, AiScientist, AI-Scientist-v2), грейдером (идея описана в CORAL), жестоким компилятором (в Prove2Me на языке Lean, верифицирует мат. доказательства) или другой моделью (Kosmos, Sibyl)
Что это даёт:
На мой взгляд, авторисерчи, которые появляются, скорее шаблон под practices, как можно автоматизацию адаптировать под себя.
И тут я очень согласна с тейком о том, что процесс исследования и разработки — это про умение найти куда приложить автоматизацию, а ещё куда прикладывать не надо.
Я пока пришла к тому, что свой рисерч полностью я не автоматизирую, ибо от проекта к проекту эту разные мысли, разные идеи и чуть-чуть разный цикл (хотя, струткура (а-ля backbone), да, одна и та же).
Надеюсь, вам пост поможет найтись в обилии и смыслах авторисерчей!
И всем хорошего завершения недели!
На протяжении нескольких месяцев меня очень много и очень часто спрашивали про авторисерч: что я думаю, как часто пользуюсь и так далее.
Но на протяжении этих же месяцев я делала НЕавторисерч. Как говорится, гештальт закрыт не был — пришлось закрывать и разбираться. Я и мои агенты сели анализировать то, что есть, мы набрали 9 фреймворков и пошли собирать концепцию автоматизации исследования.
Определение — что такое авторисёрч (далее — АР).
Прежде, запомним, что рисёрч сам по себе (в контексте AI) — это всегда эксперимент. Цели этого эксперимента могут быть разными: открытие нового знания, измерение чего-либо существующего, прикладная задача.
Отсюда, в контексте любого фреймворка, авторисерч — это реализация эксперимента автоматически, с использованиям обвязок разного рода вокруг языковой модели.
В любом АР фреймворке у вас есть:
1. Цикл — типичный эксперимент, вида
"придумать изменение, далее реализовать его кодом, далее запустить, померить и решить, оставить или откатить. Повторить до успеха."
2. Состояние цикла — что модели в её обвязке нужно знать на шаге N+1 из того, что она узнала на предыдущих.
3. Внешний вердикт — чем измерить успех. Как правило это метрика или другой оценщик, но всегда что-то вне агента или заданное ему.
И всё. Эти три компоненты в точности есть основа любого авторисерч-фреймворка.
И у любого, какой бы вы ни решили взять в работу отличие от других будет обычно в одном из трех мест.
Так, например:
1. Состояние можно положить в файл (так делает karpathy/autoresearch), можно в базу данных (OpenResearch), можно в папку AiScientist, CORAL, Sibyl), можно организовать в виде графа (Prove2Me).
2. Принимать решение перехода от одного шага к другому можно оценкой (autoresearch), можно алгоритмом поиска (AiScientist в v2 делает поиск по дереву), можно на уровне структуры данных (OpenResearch, Prove2Me), а можно вообще детерминированно (Agent Laboratory и AI-Researcher).
3. Измерять успех же можно числом (autoresearch, OpenResearch, AiScientist, AI-Scientist-v2), грейдером (идея описана в CORAL), жестоким компилятором (в Prove2Me на языке Lean, верифицирует мат. доказательства) или другой моделью (Kosmos, Sibyl)
Что это даёт:
На мой взгляд, авторисерчи, которые появляются, скорее шаблон под practices, как можно автоматизацию адаптировать под себя.
И тут я очень согласна с тейком о том, что процесс исследования и разработки — это про умение найти куда приложить автоматизацию, а ещё куда прикладывать не надо.
Я пока пришла к тому, что свой рисерч полностью я не автоматизирую, ибо от проекта к проекту эту разные мысли, разные идеи и чуть-чуть разный цикл (хотя, струткура (а-ля backbone), да, одна и та же).
Надеюсь, вам пост поможет найтись в обилии и смыслах авторисерчей!
И всем хорошего завершения недели!
❤24🔥7❤🔥2
Короче, не могу не поделиться!
Как помните, 31 июля мы запустили ai-interpretability-school. Сейчас за окном 11 октября, так-то. И это оказалось безумно сложным, делать нормально.
Во-первых, мы столкнулись с проблемой оплат. Так как у курса есть русское и английское лица, а ещё в своем месте пребывания я иностранец, подключить нормальный по репутации платежный сервис прямо оказалось задачей. Надеюсь, она решится до конца года.
Во-вторых, мы столкнулись с проблемой оркестрирования навыками. В команде нас было две, и мы обе — 90% исследователи сейчас по занятиям. У нас есть и другие навыки (иначе сайта бы не было, тут просто всё забрала Лена — моя коллега), но мы зафокусились на контенте (и курс безумно вырос — от 16 до 21 модуля и от 312 до 524 задач, и от до X методов — тут это X пока только инкризится).
В-третьих, это просто очень annoying, когда ты выпустил и особо продвигать не можешь — ибо модули только бесплатные и на остальные можно только посмотреть. Выгораем, грустим и так далее.
И совсем недавно к нам присоединилась продакт! И это просто ощущение второго дыхания какого-то. Безумно круто, когда в команде появляется разделение задач и есть человек, который структурирует, где-то останавливает, где-то подпинывает — и теперь на одного человека у нас по два пинка, а не по одному.
Теперь у сайта стало чуть больше бесплатных модулей (мы обновили и добавили классические методы интерпретируемости: SHAP, LIME, Premutation importance, и объяснения на основе якорных правил), делается много всякого, и у нас есть красивая женщина-рыцарь на сайте, которая отражает наши страдания)
Морали нет, есть сайт: https://ai-interpretability.school
И тейк о том, что в жизни безумно важны люди. ❤️🔥
Как помните, 31 июля мы запустили ai-interpretability-school. Сейчас за окном 11 октября, так-то. И это оказалось безумно сложным, делать нормально.
Во-первых, мы столкнулись с проблемой оплат. Так как у курса есть русское и английское лица, а ещё в своем месте пребывания я иностранец, подключить нормальный по репутации платежный сервис прямо оказалось задачей. Надеюсь, она решится до конца года.
Во-вторых, мы столкнулись с проблемой оркестрирования навыками. В команде нас было две, и мы обе — 90% исследователи сейчас по занятиям. У нас есть и другие навыки (иначе сайта бы не было, тут просто всё забрала Лена — моя коллега), но мы зафокусились на контенте (и курс безумно вырос — от 16 до 21 модуля и от 312 до 524 задач, и от до X методов — тут это X пока только инкризится).
В-третьих, это просто очень annoying, когда ты выпустил и особо продвигать не можешь — ибо модули только бесплатные и на остальные можно только посмотреть. Выгораем, грустим и так далее.
И совсем недавно к нам присоединилась продакт! И это просто ощущение второго дыхания какого-то. Безумно круто, когда в команде появляется разделение задач и есть человек, который структурирует, где-то останавливает, где-то подпинывает — и теперь на одного человека у нас по два пинка, а не по одному.
Теперь у сайта стало чуть больше бесплатных модулей (мы обновили и добавили классические методы интерпретируемости: SHAP, LIME, Premutation importance, и объяснения на основе якорных правил), делается много всякого, и у нас есть красивая женщина-рыцарь на сайте, которая отражает наши страдания)
Морали нет, есть сайт: https://ai-interpretability.school
И тейк о том, что в жизни безумно важны люди. ❤️🔥
Telegram
Data Blog
Мы выпускаем образовательный ресурс open-xai.
Привет, друзья! Я шла к этому очень долго и наконец-то готова выпустить образовательный ресурс open-xai!
Ресурс построен как точка, где можно учиться просто всему, что есть в интерпретируемости. От классических…
Привет, друзья! Я шла к этому очень долго и наконец-то готова выпустить образовательный ресурс open-xai!
Ресурс построен как точка, где можно учиться просто всему, что есть в интерпретируемости. От классических…
1🔥31❤13
Neural networks are already clean
Считаю, что этот канал должен вызывать у вас любовь тыкать во всякие смешные вещи в нейросетях, потому что если бы не эта любовь — я бы уже давно пасла свою корову в горах. И тут привезли красивое — Ник Каммарата (ex OpenAI) из Goodfire написал невероятно большое эссе «Neural Networks Are Already Clean». Около часа чтения, но если у вас часа нет, но 15 минут на картинки надо найти я считаю — лучше мемов. Или нет. Я не определилась.
TLDR: нейросети внутри устроены куда аккуратнее, чем все думали.
Эссе безумно красивое, много невероятных визуализаций, так что не могу не оставить его здесь, а заодно разобрать, что значит «аккуратнее» и как «все думали».
История: как думали
В 2017 году в сети InceptionV1 нашли много чего и нейрон 4e:55, который загорался и на кошачьи морды, и на капоты машин. Это выглядело так, будто одна единица — нейрон означает одновременно «кот» и «капот». Такие нейроны назвали polysemantic — «многозначными».
Более того, там же нашли, что некоторые нейроны кодируют якобы неясную кашу, отсюда выросла идея о том, что нейрон — не продуктивная единица анализа. Логично — полисемантичен и каше-подобен. 🥣
Почему один нейрон вообще может отвечать за несколько вещей или быть кашей?
Было два объяснения:
— Первое — generalization, обобщение. В двух словах — похожие вещи складываем в одно место. Пример: отвечая за наклон ушей одной собаки, удобно отвечать за наклон ушей собаки любой породы.
— Второе — superposition, суперпозиция. Это в двух словах — будто класть на одну полку вещи, которые скорее всего никогда не понадобятся одновременно, например «собачьи уши» и «латинскую поэзию». Они не мешают друг другу и экономят место.
Если верна первая картина, то всё круто — можно в теории найти нейрон достаточно общей "детали" и отключить его, например. Если вторая — сначала надо «распутать признаки», чтобы не отключить лишнего (этим занимаются SAE).
Почему "думали не так":
Гипотеза такова: «каша» в нейронах — артефакт инструментов и плохо обученной модели, а не свойство нейросетей вообще. Автор Каммарата привел ошибки (свои же, мои же, да и каждого исследователя в XAI, как мне кажется):
* Наивная визуализация. Feature visualization — метод, который рисует картинку, максимально возбуждающую нейрон. Ранняя версия не была устойчива к сдвигам и поворотам, и картинки выходили шумными. Добавили устойчивость — те же нейроны стали чёткими.
* Reward hacking визуализации. В глубоких слоях оптимизация картинки идёт по самому лёгкому пути — у InceptionV1 это часто собаки. Так, вместе с незамеченными pose-нейронами, и появился канонический «superposition circuit» из Zoom In: машина, якобы «спрятанная» среди собачьих нейронов.
* Нехорошие данные для изучения. Из примеров автора — слишком короткие тексты (и из-за этого все нейроны, которые следят за длинным контекстом, выглядели бессмысленными) или недостаточно разнообразные примеры (когда в датасете просто не лежит того, на чем специализируется нейрон).
* Неправильная метрика. Объяснения оценивали по тому, насколько хорошо они симулируют активации, а не по тому, верны ли они. Определить верность сложно в целом.
* Забытая часть нейрона. У нейрона есть положительная и отрицательная активации. На отрицательную почти не смотрели.
* Плохая архитектура самой анализируемой модели. Например, у часто анализируемой в зрении InceptionV1 нет residual stream, который есть во всех современных сетях. Поэтому последний слой «переполнялся» (сеть того же размера на тех же данных, но с residual-связями и LayerNorm, даёт чистый последний слой).
Отсюда гипотеза Каммараты: «polysemantic» — это чаще утверждение о наблюдателе, а не о нейроне. Оно значит «у нас пока нет хорошего объяснения».
Считаю, что этот канал должен вызывать у вас любовь тыкать во всякие смешные вещи в нейросетях, потому что если бы не эта любовь — я бы уже давно пасла свою корову в горах. И тут привезли красивое — Ник Каммарата (ex OpenAI) из Goodfire написал невероятно большое эссе «Neural Networks Are Already Clean». Около часа чтения, но если у вас часа нет, но 15 минут на картинки надо найти я считаю — лучше мемов. Или нет. Я не определилась.
TLDR: нейросети внутри устроены куда аккуратнее, чем все думали.
Эссе безумно красивое, много невероятных визуализаций, так что не могу не оставить его здесь, а заодно разобрать, что значит «аккуратнее» и как «все думали».
История: как думали
В 2017 году в сети InceptionV1 нашли много чего и нейрон 4e:55, который загорался и на кошачьи морды, и на капоты машин. Это выглядело так, будто одна единица — нейрон означает одновременно «кот» и «капот». Такие нейроны назвали polysemantic — «многозначными».
Более того, там же нашли, что некоторые нейроны кодируют якобы неясную кашу, отсюда выросла идея о том, что нейрон — не продуктивная единица анализа. Логично — полисемантичен и каше-подобен. 🥣
Почему один нейрон вообще может отвечать за несколько вещей или быть кашей?
Было два объяснения:
— Первое — generalization, обобщение. В двух словах — похожие вещи складываем в одно место. Пример: отвечая за наклон ушей одной собаки, удобно отвечать за наклон ушей собаки любой породы.
— Второе — superposition, суперпозиция. Это в двух словах — будто класть на одну полку вещи, которые скорее всего никогда не понадобятся одновременно, например «собачьи уши» и «латинскую поэзию». Они не мешают друг другу и экономят место.
Если верна первая картина, то всё круто — можно в теории найти нейрон достаточно общей "детали" и отключить его, например. Если вторая — сначала надо «распутать признаки», чтобы не отключить лишнего (этим занимаются SAE).
Почему "думали не так":
Гипотеза такова: «каша» в нейронах — артефакт инструментов и плохо обученной модели, а не свойство нейросетей вообще. Автор Каммарата привел ошибки (свои же, мои же, да и каждого исследователя в XAI, как мне кажется):
* Наивная визуализация. Feature visualization — метод, который рисует картинку, максимально возбуждающую нейрон. Ранняя версия не была устойчива к сдвигам и поворотам, и картинки выходили шумными. Добавили устойчивость — те же нейроны стали чёткими.
* Reward hacking визуализации. В глубоких слоях оптимизация картинки идёт по самому лёгкому пути — у InceptionV1 это часто собаки. Так, вместе с незамеченными pose-нейронами, и появился канонический «superposition circuit» из Zoom In: машина, якобы «спрятанная» среди собачьих нейронов.
* Нехорошие данные для изучения. Из примеров автора — слишком короткие тексты (и из-за этого все нейроны, которые следят за длинным контекстом, выглядели бессмысленными) или недостаточно разнообразные примеры (когда в датасете просто не лежит того, на чем специализируется нейрон).
* Неправильная метрика. Объяснения оценивали по тому, насколько хорошо они симулируют активации, а не по тому, верны ли они. Определить верность сложно в целом.
* Забытая часть нейрона. У нейрона есть положительная и отрицательная активации. На отрицательную почти не смотрели.
* Плохая архитектура самой анализируемой модели. Например, у часто анализируемой в зрении InceptionV1 нет residual stream, который есть во всех современных сетях. Поэтому последний слой «переполнялся» (сеть того же размера на тех же данных, но с residual-связями и LayerNorm, даёт чистый последний слой).
Отсюда гипотеза Каммараты: «polysemantic» — это чаще утверждение о наблюдателе, а не о нейроне. Оно значит «у нас пока нет хорошего объяснения».
Goodfire
Neural Networks Are Already Clean
A working hypothesis about neurons, generalization, and the ecology of circuits.
🔥18❤6🙏1
Гипотеза в эссе подкреплена разными экспериментами. В эссе они описаны достаточно подробно, но можно поделить их на три класса:
1. Демонстрация того, что смена инструмента способна почистить ответ.
2. Демонстрация того, как нейрон постепенно во время обучения обобщается до какого-то знания. Плюс анализ нейронов в моделях разного масштаба.
3. Проверка предсказания суперпозиции: сжали слой с 480 до 10 нейронов — упаковки не случилось, нейроны просто стали шире.
Эксперименты до безумия красивые! Советую хотя бы посмотреть визуализации автора.
И что случилось-то?
Ложно можно подхватить, что тезис автора — «полисемантичность — дно». Более того, как принцип обучения гипотеза суперпозиции (та самая, что должна была полисемантичность объяснять) тоже не подтвердилась в его моделях.
Но это не сделало что-либо дном! Автор скорее очень красиво показал bitter lesson для интерпретируемости: масштабировать обычное исследование сети может быть выгоднее, чем изобретать всё более хитрые декомпозиции. И показал, что superposition плохо работает как объяснение конкретного нейрона, ибо мы много опираемся на «не понимаю», и так же выглядят ошибки (а заметьте, что из постановки ошибок буквально нужно извертеться очень сильно, чтобы не допустить ни одну).
И всё! Гипотезы остаются, методы — тоже!
Надеюсь, после этого поста, вы уже разглядываете нейроны, потому что я — да.
1. Демонстрация того, что смена инструмента способна почистить ответ.
2. Демонстрация того, как нейрон постепенно во время обучения обобщается до какого-то знания. Плюс анализ нейронов в моделях разного масштаба.
3. Проверка предсказания суперпозиции: сжали слой с 480 до 10 нейронов — упаковки не случилось, нейроны просто стали шире.
Эксперименты до безумия красивые! Советую хотя бы посмотреть визуализации автора.
И что случилось-то?
Ложно можно подхватить, что тезис автора — «полисемантичность — дно». Более того, как принцип обучения гипотеза суперпозиции (та самая, что должна была полисемантичность объяснять) тоже не подтвердилась в его моделях.
Но это не сделало что-либо дном! Автор скорее очень красиво показал bitter lesson для интерпретируемости: масштабировать обычное исследование сети может быть выгоднее, чем изобретать всё более хитрые декомпозиции. И показал, что superposition плохо работает как объяснение конкретного нейрона, ибо мы много опираемся на «не понимаю», и так же выглядят ошибки (а заметьте, что из постановки ошибок буквально нужно извертеться очень сильно, чтобы не допустить ни одну).
И всё! Гипотезы остаются, методы — тоже!
Надеюсь, после этого поста, вы уже разглядываете нейроны, потому что я — да.
Goodfire
Neural Networks Are Already Clean
A working hypothesis about neurons, generalization, and the ecology of circuits.
1🔥15❤6🙏1
Media is too big
VIEW IN TELEGRAM
Так, самолайк — несу ещё красивое на позалипать!
Добавила визуализаций и в свою карту — карту математических структур в модельках!
Теперь в ней тоже можно залипать!🦄️️️️️️
Что за карта — писала тут: https://t.me/jdata_blog/551
Карта выросла до 788 наблюдений за это время, я много чего не доделала, но делаю и продолжаю красивую статистику собирать.
Анизотропия почему-то гриб, но мы ей это простим.
Залипать отсюда: https://ai-math-map.vercel.app/lab#genealogy
Добавила визуализаций и в свою карту — карту математических структур в модельках!
Теперь в ней тоже можно залипать!
Что за карта — писала тут: https://t.me/jdata_blog/551
Карта выросла до 788 наблюдений за это время, я много чего не доделала, но делаю и продолжаю красивую статистику собирать.
Анизотропия почему-то гриб, но мы ей это простим.
Залипать отсюда: https://ai-math-map.vercel.app/lab#genealogy
Please open Telegram to view this post
VIEW IN TELEGRAM
❤16🔥4👍3❤🔥1🌚1🦄1
Я со свеженьким, J++ Lens — апдейт к посту про J-Lens
Несколько месяцев назад писала про J-Lens — вышел он весьма громко. После по нему тоже выходили работы, в основном с применением и анализом границ метода.
Но! Теперь из вкусного на потрогать вышла интерактивная демка J++Lens от Kola Ayonrinde (Anthropic Fellows) и Jack Lindsey (Anthropic, один из основных авторов статьи про J-Lens).
Теперь содержательное.
Что было не так с J-Lens?
Напомню: J-Lens — это усреднённый якобиан. Для каждого слоя считаем, как малое изменение активации сдвигает финальный слой, усредняем по куче текстов и переводим результат в словарь.
Проблемы:
• осмысленные readouts (то, что мы можем читать и понимать) появлялись в основном во второй половине слоёв.
• многие промежуточные концепты, которые модель использует, линза не видела.
Это проверяли на задачах, где для ответа нужен промежуточный шаг, которого нет ни в промпте, ни в ответе. Например: «Число ног у животного, которое плетёт паутину, равно…» — чтобы ответить «8», модель должна сначала прийти к «паук». Что такой шаг модель действительно использует, проверяли вмешательствами (например подмена вектора «паук» на «муравей» меняла ответ с 8 на 6), а наличие нужного концепта смотрели в топе по readout по слоям.
• в топе было много пунктуации и мусора.
От чего проблемы (тут не от нервов 🙂 )
Авторы выдвинули гипотезу, что проблема в усреднении (все якобианы входят в среднее с одинаковым весом).
По теории выборочное среднее несмещённое и состоятельное (то есть с ростом выборки оно сходится к истинному среднему). Нюанс — к среднему чего.
В базовой постановке к среднему по всем позициям сразу, включая те, где якобиан плохо описывает модель. Случайный шум с нулевым средним при этом гасится. А систематический — когда целая группа активаций (часто — пунктуация) стабильно даёт «грязненькие» якобианы — остаётся.
Плюс к ранним слоям обычный градиент сильно раздувается. Якобиан от раннего слоя до выхода по цепному правилу — это произведение якобианов всех блоков между ними. Чем раньше слой, тем больше множителей и тем больше накопленной ошибки.
Отсюда идея: что делает J++
1. Jacobian Filtering. Активации слоя делят на 8 кластеров обычным k-means по геометрии (центрируют, нормируют и проецируют на 64 главные компоненты и кластеры подбирают на текстах из WikiText-103). На каждом кластере считают свой усреднённый якобиан — «эксперта». Потом на небольшом размеченном наборе задач учат веса, с которыми экспертов смешать.
И ещё прикольная для меня заметка, что когда миксовали экспертов, попробовали кусочно-линейную карту — свой якобиан на каждый кластер (то есть ИЛИ по экспертам). И такой подход работает хуже, поэтому именно нужно сделать линейную смесь экспертов.
2. LRP вместо обычного backward. LRP — классический метод атрибуции из XAI: вклад раздают от выхода назад по активациям по правилам, которые сохраняют суммарную «релевантность». Здесь от него берут правила обратного прохода. Через attention идёт обычный градиент (хотя, кстати, есть AttnLrp вариант).
3. Из readout убирают токены без букв и цифр.
Тут примечательно, что это было и так, на уровне фильтра для визуализаций J-Lens, но в J++ его сделали частью метода.
Вот таким методом везде получили приросты. Потрогать, потыкать, посмотреть тут:
Пост J++: LessWrong
Демо J-Lens vs J++: Neuronpedia
Код: GitHub
Линзы: HuggingFace
Пара мыслей вдогонку:
Мне очень приятно было увидеть тут классический метод интерпретабилити, если честно. Для меня это просто самое красивое, когда классика снова где-то возникает, а тут ещё и k-means, и ряд Тейлора, и эксперты! Ну восторг.
И опять чертова линейность! Она тоже шикарная (но на ранних слоях эксперты расходятся сильнее, и там связь заметно менее линейна, это тоже важно).
Ещё узнала для себя новую фразу, "эффект белого медведя". Это когда запрещаешь себе думать о чём-то, а мысль возвращается чаще. Формулировка от Достоевского, оказывается.
И всем отличного вторника.
Несколько месяцев назад писала про J-Lens — вышел он весьма громко. После по нему тоже выходили работы, в основном с применением и анализом границ метода.
Но! Теперь из вкусного на потрогать вышла интерактивная демка J++Lens от Kola Ayonrinde (Anthropic Fellows) и Jack Lindsey (Anthropic, один из основных авторов статьи про J-Lens).
Теперь содержательное.
Что было не так с J-Lens?
Напомню: J-Lens — это усреднённый якобиан. Для каждого слоя считаем, как малое изменение активации сдвигает финальный слой, усредняем по куче текстов и переводим результат в словарь.
Проблемы:
• осмысленные readouts (то, что мы можем читать и понимать) появлялись в основном во второй половине слоёв.
• многие промежуточные концепты, которые модель использует, линза не видела.
Это проверяли на задачах, где для ответа нужен промежуточный шаг, которого нет ни в промпте, ни в ответе. Например: «Число ног у животного, которое плетёт паутину, равно…» — чтобы ответить «8», модель должна сначала прийти к «паук». Что такой шаг модель действительно использует, проверяли вмешательствами (например подмена вектора «паук» на «муравей» меняла ответ с 8 на 6), а наличие нужного концепта смотрели в топе по readout по слоям.
• в топе было много пунктуации и мусора.
От чего проблемы (тут не от нервов 🙂 )
Авторы выдвинули гипотезу, что проблема в усреднении (все якобианы входят в среднее с одинаковым весом).
По теории выборочное среднее несмещённое и состоятельное (то есть с ростом выборки оно сходится к истинному среднему). Нюанс — к среднему чего.
В базовой постановке к среднему по всем позициям сразу, включая те, где якобиан плохо описывает модель. Случайный шум с нулевым средним при этом гасится. А систематический — когда целая группа активаций (часто — пунктуация) стабильно даёт «грязненькие» якобианы — остаётся.
Плюс к ранним слоям обычный градиент сильно раздувается. Якобиан от раннего слоя до выхода по цепному правилу — это произведение якобианов всех блоков между ними. Чем раньше слой, тем больше множителей и тем больше накопленной ошибки.
Отсюда идея: что делает J++
1. Jacobian Filtering. Активации слоя делят на 8 кластеров обычным k-means по геометрии (центрируют, нормируют и проецируют на 64 главные компоненты и кластеры подбирают на текстах из WikiText-103). На каждом кластере считают свой усреднённый якобиан — «эксперта». Потом на небольшом размеченном наборе задач учат веса, с которыми экспертов смешать.
И ещё прикольная для меня заметка, что когда миксовали экспертов, попробовали кусочно-линейную карту — свой якобиан на каждый кластер (то есть ИЛИ по экспертам). И такой подход работает хуже, поэтому именно нужно сделать линейную смесь экспертов.
2. LRP вместо обычного backward. LRP — классический метод атрибуции из XAI: вклад раздают от выхода назад по активациям по правилам, которые сохраняют суммарную «релевантность». Здесь от него берут правила обратного прохода. Через attention идёт обычный градиент (хотя, кстати, есть AttnLrp вариант).
3. Из readout убирают токены без букв и цифр.
Тут примечательно, что это было и так, на уровне фильтра для визуализаций J-Lens, но в J++ его сделали частью метода.
Вот таким методом везде получили приросты. Потрогать, потыкать, посмотреть тут:
Пост J++: LessWrong
Демо J-Lens vs J++: Neuronpedia
Код: GitHub
Линзы: HuggingFace
Пара мыслей вдогонку:
Мне очень приятно было увидеть тут классический метод интерпретабилити, если честно. Для меня это просто самое красивое, когда классика снова где-то возникает, а тут ещё и k-means, и ряд Тейлора, и эксперты! Ну восторг.
И опять чертова линейность! Она тоже шикарная (но на ранних слоях эксперты расходятся сильнее, и там связь заметно менее линейна, это тоже важно).
Ещё узнала для себя новую фразу, "эффект белого медведя". Это когда запрещаешь себе думать о чём-то, а мысль возвращается чаще. Формулировка от Достоевского, оказывается.
И всем отличного вторника.
Telegram
Data Blog
J-Lens или Джи — значит Jacobian.
Вчера Anthropic выпустили блог пост про рабочее пространство J-workspace внутри Claude. Они соотнесли его с глубокими рассуждениями, скрытыми в голове человека обычно. Красивые аналогии есть в видео (я приложила ссылку ниже).…
Вчера Anthropic выпустили блог пост про рабочее пространство J-workspace внутри Claude. Они соотнесли его с глубокими рассуждениями, скрытыми в голове человека обычно. Красивые аналогии есть в видео (я приложила ссылку ниже).…
🔥5❤3👍3
Вообще, сейчас сильно медленнее делаю все свои наполеоновские планы по туториалам и материалам, потому что в начале октября переболела какой-то болезненной болезнью, потеряла весь свой погресс на тренировках, расстроилась и основное количество времени сплю, тренируюсь обратно и ем = )
Но я даже что-то пишу! Вот обзор этот с недельку пекся.
И меня вообще невероятным образом поддерживают люди и работа (особенно то, что у меня конь не валялся на очередной статье, работу надо двигать, школу бы тоже допилить до лучшего state) — иначе я бы куда-то уронилась. Кажется, эта мысль тут уже проскальзывала много тысяч раз, но да — красота и люди спасают мир, как минимум внутренний.
Всем к отличному вторнику здоровья и лучистых пирожков ещё!🦄️️️️️️
Но я даже что-то пишу! Вот обзор этот с недельку пекся.
И меня вообще невероятным образом поддерживают люди и работа (особенно то, что у меня конь не валялся на очередной статье, работу надо двигать, школу бы тоже допилить до лучшего state) — иначе я бы куда-то уронилась. Кажется, эта мысль тут уже проскальзывала много тысяч раз, но да — красота и люди спасают мир, как минимум внутренний.
Всем к отличному вторнику здоровья и лучистых пирожков ещё!
Please open Telegram to view this post
VIEW IN TELEGRAM
❤23❤🔥7⚡3🔥3🎉1
У меня тут сегодня в звонке прозвучала фраза дня: пока у чего-то нет теории или упорядочивания — я не понимаю.
Фразу я вам, конечно, переврала, потому что забыла дословно, но смысл был такой. И это просто моя проблема/способ восприятия/другое словосочетение. Поэтому я люблю упорядочивать и смотреть на упорядоченное, так что собрала всякого, что у меня накидано в закладках в один пост, надеюсь, вы найдете для себя полезную штуку или, как минимум, вдохновитесь. Всё (почти) по XAI.
В чем история.
Область (вся) бежит безумно и наши словарные способности тоже — сколько новых терминов, описывающих старое, нагаллюициировано (много). Но если сильно замедлиться и посмотреть, как раньше было, то раньше все нудно пытались выделить категории и таксономии, свети их в одно и предложить лучшее. В таком подходе есть понятные характеристики и, по сути, дерево решений, сводящее в лист по вашей проблеме и её вводным.
📌️️️️️️ Так вот таких было (и есть) много и по XAI:
TEA Techniques — техники под проектированые "responsible data-driven technologies". Что бы ни значило тут слово "отвественный", здесь собраны методы по категориям из ответа на вопрос "Какой метод может сделать мою систему более интерпретируемой/безопасной в смысле safety/безопасной в смысле security/прозрачной/справедливой?" и так далее.
Методы интерпретирумости в ней собраны достаточно хаотично, но с примерами, отсюда можно смотреть, как како-либо метод поможет вам в обеспечении fairness.
Which LIME should I trust? — ресурс по методу LIME. Все варианты суррогатных моделей. Они собраны так, что отвечают на вопрос "На каком этапе реализации LIME я могу изменить что-либо, чтобы испрвить [название проблемы] базового LIME?".
Методы в том числе разложены по применимости суррогатов на разные модальности домен и по наличию кода.
What's in the Bottle? — аналогичный ресурс по Concept Bottleneck Models — моделям, у которых прогноз идёт через промежуточный слой человеко-понятных концептов, и общий вид модели — вход → концепты → ответ.
Здесь, как я вижу, агрегация отвечает на вопрос: "Кто какой вариант CBM уже пробовал?"
И старое, но сейчас уже таким не пользуются:
XNLP — агрегированные статьи по методам XAI для NLP. В нем за 2013-2019 всего лишь 52 работы (может в том числе потому что их размечали люди). Единицы деления работ: тип объяснения, операции, которыми оно получено, визуализация и метрики оценки.
Interactive-XAI — агрегированные статьи по методам XAI для CNN в задаче классификации изображений.
Единицы деления работ: scope, usage, aim, applicability, methodology, modality, type. Methodology делится на backpropagation, perturbation, prototype, rule-based и прочее.
xai-papers — просто XAI по типу данных, проблемы, объясняемой модели, задачи, объяснения, методу объяснения и венью конфы.
HERMES — аналогично, с разделением на характеристики модель, задача, домен, тип пользователей, модальность объяснения, техника XAI.
В этих нет явного вопроса, но есть задача — дать сводный взгляд на подобласть. Таким сейчас почти не пользуются (и сами эти ресурсы мертвы, как видите). Но я храню их как способ понять, по каким категориям мне может быть нужна сводка, если (когда) агент идет искать мне работы.
📌️️️️️️ Такие есть и начинают появлятся по сейфти:
здесь-могла-быть-моя-реклама-но я про свою карту писала, а тут ещё один красивый view — область AI Control/Alignment/ карты Лены (MrsWallbreaker).
В картах литература собрана так, что она позволяет видеть открытые Research Questions.
Помимо карт, есть словарь и генеалогия сейфти.
AI Safety Research Tracker — скринер с LLM разметкой — какие статьи относятся к сейфти на все опубликованные в период.
Вот, конец поста я не придумала, всем пятницы. В комментах, если у вас что-то есть подобное в карманах — призываю накидывать.
Фразу я вам, конечно, переврала, потому что забыла дословно, но смысл был такой. И это просто моя проблема/способ восприятия/другое словосочетение. Поэтому я люблю упорядочивать и смотреть на упорядоченное, так что собрала всякого, что у меня накидано в закладках в один пост, надеюсь, вы найдете для себя полезную штуку или, как минимум, вдохновитесь. Всё (почти) по XAI.
В чем история.
Область (вся) бежит безумно и наши словарные способности тоже — сколько новых терминов, описывающих старое, нагаллюициировано (много). Но если сильно замедлиться и посмотреть, как раньше было, то раньше все нудно пытались выделить категории и таксономии, свети их в одно и предложить лучшее. В таком подходе есть понятные характеристики и, по сути, дерево решений, сводящее в лист по вашей проблеме и её вводным.
TEA Techniques — техники под проектированые "responsible data-driven technologies". Что бы ни значило тут слово "отвественный", здесь собраны методы по категориям из ответа на вопрос "Какой метод может сделать мою систему более интерпретируемой/безопасной в смысле safety/безопасной в смысле security/прозрачной/справедливой?" и так далее.
Методы интерпретирумости в ней собраны достаточно хаотично, но с примерами, отсюда можно смотреть, как како-либо метод поможет вам в обеспечении fairness.
Which LIME should I trust? — ресурс по методу LIME. Все варианты суррогатных моделей. Они собраны так, что отвечают на вопрос "На каком этапе реализации LIME я могу изменить что-либо, чтобы испрвить [название проблемы] базового LIME?".
Методы в том числе разложены по применимости суррогатов на разные модальности домен и по наличию кода.
What's in the Bottle? — аналогичный ресурс по Concept Bottleneck Models — моделям, у которых прогноз идёт через промежуточный слой человеко-понятных концептов, и общий вид модели — вход → концепты → ответ.
Здесь, как я вижу, агрегация отвечает на вопрос: "Кто какой вариант CBM уже пробовал?"
И старое, но сейчас уже таким не пользуются:
XNLP — агрегированные статьи по методам XAI для NLP. В нем за 2013-2019 всего лишь 52 работы (может в том числе потому что их размечали люди). Единицы деления работ: тип объяснения, операции, которыми оно получено, визуализация и метрики оценки.
Interactive-XAI — агрегированные статьи по методам XAI для CNN в задаче классификации изображений.
Единицы деления работ: scope, usage, aim, applicability, methodology, modality, type. Methodology делится на backpropagation, perturbation, prototype, rule-based и прочее.
xai-papers — просто XAI по типу данных, проблемы, объясняемой модели, задачи, объяснения, методу объяснения и венью конфы.
HERMES — аналогично, с разделением на характеристики модель, задача, домен, тип пользователей, модальность объяснения, техника XAI.
В этих нет явного вопроса, но есть задача — дать сводный взгляд на подобласть. Таким сейчас почти не пользуются (и сами эти ресурсы мертвы, как видите). Но я храню их как способ понять, по каким категориям мне может быть нужна сводка, если (когда) агент идет искать мне работы.
здесь-могла-быть-моя-реклама-но я про свою карту писала, а тут ещё один красивый view — область AI Control/Alignment/ карты Лены (MrsWallbreaker).
В картах литература собрана так, что она позволяет видеть открытые Research Questions.
Помимо карт, есть словарь и генеалогия сейфти.
AI Safety Research Tracker — скринер с LLM разметкой — какие статьи относятся к сейфти на все опубликованные в период.
Вот, конец поста я не придумала, всем пятницы. В комментах, если у вас что-то есть подобное в карманах — призываю накидывать.
Please open Telegram to view this post
VIEW IN TELEGRAM
TEA Techniques
TEA Techniques - Responsible AI Design & Development
Explore techniques for evidencing claims about responsible AI design, development, and deployment.
❤8🔥5👍1🤔1🙏1
Мы снова попали в сингулярность — модель поправила модель!
Ссылки: статья, логи
I Think, что почти все видели новость про то, что Astra поменяла модели веса и улучшила качество модели на задаче по математике. У этой новости, на самом деле, интересный (!) теоретический аппарат (почему это работает) и простой (!) метод, примененный моделью (как это она так поменяла).
Как говорят, «без пива не разберешь», но давайте попробуем!
Что было:
Восемь экспериментов. Про математику был только последний, а так было ещё 7 задачек. Их можно разложить на три группы:
— прочитать: авторы обучали сеть на одной задаче, отдавали Astra только веса текстом и спрашивали, чему сеть научилась. Игру она назвала верно в 4 случаях из 4. Какую фигуру рисует диффузионная модель — в 3 из 3. На каком языке учили маленький трансформер (Python, английский или японский латиницей), по одним средним слоям — в 3 из 3. А вот в задаче «какая из двух Gemma сикофант» (то есть поддакивает пользователю даже в неверном ответе) по одним весам Astra ответить не смогла;
— починить: в физическом симуляторе машинка должна сдать назад, разогнаться и перепрыгнуть красную полосу. Сеть, обученная PPO, вместо этого въезжает на рампу и глохнет. Astra дописала в веса «подпрограмму»: сдай назад, дай газ, потом отдай руль старой сети. Изменено 3.5% весов, успех в 1024 эпизодах из 1024;
— написать: слепить сети для игр без единого шага обучения. В Breakout такая сеть набирает 517 очков против 25 у PPO на 500M шагах.
Ну, и математика на Qwen3.5-0.8B: MATH-500 с 7.9% до 48.1%, GSM8K с 13.8% до 67.1%, и IFEval с 21% до 62.3%.
Что сделала Astra для задачи математики:
Решила проблему. Qwen в thinking-режиме зицикливается (об этом предупреждает model card): 93% ответов на MATH-500 упираются в лимит 32k токенов. Astra сравнила активации на «продуктивных» и «зацикленных» кусках текста и нашла направление повтора u (своё для каждого слоя) в residual stream после слоёв 15 и 19.
Дальше для 64 нейронов down_proj в каждом из двух слоёв:
w ← w − 6·u(uᵀw)
Компонента вдоль u меняет знак и растёт, остальное не трогается. Это steering, но на уровне весов. Правка меняет 131 072 веса, 0.016% модели.
Почему это сработало?
Свойство «я повторяюсь» было закодировано направлением, и его видно разностью средних. Почему бы не применить! Отличие от обычного стиринга такое — сдвиг пропорционален активации этих 64 нейронов, то есть срабатывает, только когда модель начинает зацикливаться.
Почему это не сработало на Gemma?
Авторы объясняют это так: Gemma 3 270M почти не зацикливается — на MATH-500 в лимит 8 192 токена упираются только 8.5% её ответов против 93% у Qwen. Её ошибки — арифметика и неверные шаги в алгебре, и одного компонента, который можно выключить, у них нет.
А что по другим задачам? Как можно читать веса?
Как мне кажется, сработали три идеи:
— у входа и выхода известно, какой номер что значит («клетка (8,1)», «влево»), поэтому первый слой читается как картинка. По ней Astra и узнала игры. В Breakout веса «агента» собраны в нижней строке (ракетка), а «наград» — в верхних (кирпичи). В Pong ракетка — вертикальный столбец слева, и выход различает только «вверх» и «вниз». В Pac-Man веса агента рисуют коридоры лабиринта, и в ход идут все четыре направления. Во Freeway награда — верхняя строка, а движущиеся объекты разложены по горизонтальным полосам, как машины на дороге
— у найденных индукционных голов есть структура, для которой не нужны эмбеддинги. Её видно по весам самих голов, точнее по тому, как две головы стыкуются друг с другом.
— компиляция: нейрон с большими весами — это if, слой — шаг программы. Astra пишет эвристику по правилам игры и переводит её в веса. PPO учится по только награде (и может застрять в локальном минимуме), а модели дали правила и исходный код игры.
Что ещё важно:
— «Без градиентов» не значит «без обратной связи»! Было 50 прогонов до 512 генераций каждый и около 20 часов работы агента.
— Нет бейзлайнов вроде repetition penalty или того же diff-of-means скриптом, без LLM.
Ссылки: статья, логи
I Think, что почти все видели новость про то, что Astra поменяла модели веса и улучшила качество модели на задаче по математике. У этой новости, на самом деле, интересный (!) теоретический аппарат (почему это работает) и простой (!) метод, примененный моделью (как это она так поменяла).
Как говорят, «без пива не разберешь», но давайте попробуем!
Что было:
Восемь экспериментов. Про математику был только последний, а так было ещё 7 задачек. Их можно разложить на три группы:
— прочитать: авторы обучали сеть на одной задаче, отдавали Astra только веса текстом и спрашивали, чему сеть научилась. Игру она назвала верно в 4 случаях из 4. Какую фигуру рисует диффузионная модель — в 3 из 3. На каком языке учили маленький трансформер (Python, английский или японский латиницей), по одним средним слоям — в 3 из 3. А вот в задаче «какая из двух Gemma сикофант» (то есть поддакивает пользователю даже в неверном ответе) по одним весам Astra ответить не смогла;
— починить: в физическом симуляторе машинка должна сдать назад, разогнаться и перепрыгнуть красную полосу. Сеть, обученная PPO, вместо этого въезжает на рампу и глохнет. Astra дописала в веса «подпрограмму»: сдай назад, дай газ, потом отдай руль старой сети. Изменено 3.5% весов, успех в 1024 эпизодах из 1024;
— написать: слепить сети для игр без единого шага обучения. В Breakout такая сеть набирает 517 очков против 25 у PPO на 500M шагах.
Ну, и математика на Qwen3.5-0.8B: MATH-500 с 7.9% до 48.1%, GSM8K с 13.8% до 67.1%, и IFEval с 21% до 62.3%.
Что сделала Astra для задачи математики:
Решила проблему. Qwen в thinking-режиме зицикливается (об этом предупреждает model card): 93% ответов на MATH-500 упираются в лимит 32k токенов. Astra сравнила активации на «продуктивных» и «зацикленных» кусках текста и нашла направление повтора u (своё для каждого слоя) в residual stream после слоёв 15 и 19.
Дальше для 64 нейронов down_proj в каждом из двух слоёв:
w ← w − 6·u(uᵀw)
Компонента вдоль u меняет знак и растёт, остальное не трогается. Это steering, но на уровне весов. Правка меняет 131 072 веса, 0.016% модели.
Почему это сработало?
Свойство «я повторяюсь» было закодировано направлением, и его видно разностью средних. Почему бы не применить! Отличие от обычного стиринга такое — сдвиг пропорционален активации этих 64 нейронов, то есть срабатывает, только когда модель начинает зацикливаться.
Почему это не сработало на Gemma?
Авторы объясняют это так: Gemma 3 270M почти не зацикливается — на MATH-500 в лимит 8 192 токена упираются только 8.5% её ответов против 93% у Qwen. Её ошибки — арифметика и неверные шаги в алгебре, и одного компонента, который можно выключить, у них нет.
А что по другим задачам? Как можно читать веса?
Как мне кажется, сработали три идеи:
— у входа и выхода известно, какой номер что значит («клетка (8,1)», «влево»), поэтому первый слой читается как картинка. По ней Astra и узнала игры. В Breakout веса «агента» собраны в нижней строке (ракетка), а «наград» — в верхних (кирпичи). В Pong ракетка — вертикальный столбец слева, и выход различает только «вверх» и «вниз». В Pac-Man веса агента рисуют коридоры лабиринта, и в ход идут все четыре направления. Во Freeway награда — верхняя строка, а движущиеся объекты разложены по горизонтальным полосам, как машины на дороге
— у найденных индукционных голов есть структура, для которой не нужны эмбеддинги. Её видно по весам самих голов, точнее по тому, как две головы стыкуются друг с другом.
— компиляция: нейрон с большими весами — это if, слой — шаг программы. Astra пишет эвристику по правилам игры и переводит её в веса. PPO учится по только награде (и может застрять в локальном минимуме), а модели дали правила и исходный код игры.
Что ещё важно:
— «Без градиентов» не значит «без обратной связи»! Было 50 прогонов до 512 генераций каждый и около 20 часов работы агента.
— Нет бейзлайнов вроде repetition penalty или того же diff-of-means скриптом, без LLM.
rikiyat.github.io
Sparks of Weight-Space Programming: LLMs can natively read & write neural network weights
We find that frontier LLMs are surprisingly good at natively reading and writing neural network weights, using a variety of recent tools and algorithms or even via direct weight editing.
❤12🔥3❤🔥1👍1
Вообще, я прям в восторгах от этой работы. Она — очень (ОЧЕНЬ) хорошая точка входа на посидеть подокапываться до микро-архитектур и следствий в их постановках. И то, что результаты достигнуты агентно, показывает классный возможный потенциал для коллабораций с агентами для изучения моделей, как объекта, изнутри.
Я чувствую себя недостаточно прошаренной всё чаще, но мне нравится, куда мы идём!
Я чувствую себя недостаточно прошаренной всё чаще, но мне нравится, куда мы идём!
❤14👍2