rizzearch
1.01K subscribers
988 photos
11 videos
320 links
Кайфули на каждый день

Авторы:
@zzmtsvv
@maxnygma (AI4Science посты)
Download Telegram
Llamba: Scaling Distilled Recurrent Models for Efficient Language Processing

Аттеншн - та же добыча радия.
В грамм добыча - в год труды.
Изводишь единого токена ради
Тысячи тонн словесной руды.

Маяковский (Поэзия - та же добыча радия)


мы уже упоминали как картезиа дистиллирует трансформеры в ссм, правда прошлая статья вызывала некоторые вопросы с точки зрения реализации

на этот раз получилось у них еще круче - в лламе 3.1 заменили аттеншн блоки на mamba блоки и получилась лламба (1б 3б и 8б параметров)

обучали в стиле MOHAWK по разным стадиям, где в knowledge distillation манере постепенно фиттили блоки все бОльшего размера: от выхода аттеншна (ссм) до конечных логитов модели

теперь только на замену аттеншну пришел дискретный блок мамбы 2, а дискретный он потому, что получает матрицу А напрямую из инпута, без махинаций с параметров дельта (который теоретически и дискретизирует стейт спейс модели для непрерывного потока времени), потому что задача здесь заключается в дистилляции аттеншна, который умеет оперировать только над дискретными объектами (токенами). короче подогнали

ну и здесь еще есть отличие от классической мамбы 2 в том, что оригинал является multi-value, а здесь же опять из-за подгона сделали multi-head + в оверолл архитектуре получается меньше мамба 2 блоков → больше батч сайз и меньше оверхеда на лаунч кернелов

по результатам даже у 8б модели потребовалось 12б токенов чтобы выдавать сравнимый результат на дефолтных бенчмарках (намного меньше (0.1%) чем у других гибридных или около того методов, из интересного есть еще наверное lolcats от Christopher Re, которые сворачивают софтмакс аттеншн в линейный через свд разложения)

еще через MLX погоняли модели на айфоне и макбуке что прикольно

судя по всему этот стартап в ближайшее время будет показывать много интересного своими on-device подходами

👀 link, code
👍5
N-Gram Induction Heads for In-Context RL: Improving Stability and Reducing Data Needs

появление inductive bias следует в том числе считать за счет н-грамм паттерна в аттеншн мапах, потому авторы в прошлом году уже проворачивали явную вставку н грамм слоя в sequence модели для задачи языка

раз с ними ин-контекст способности появляются быстрее и “эффективнее” (что бы то ни значило) → может ли такое появиться в (ин-контекст) рл сетапе

ну и вот авторы заимплементили

- н грамм слой с внедрением н грамм матчинга из кода вышеупомянутой статьи (где вообще blyat ниче непонятно)
- который нативно работает в дискретном пространстве для игрушечных сред как даркрум и key-to-door. при том как матчинг на уровне state токенов, так и state-action-reward токене
- если же брать pixel-based среду (в данном случае MiniWorld), то здесь не обойтись без какой-либо дискретизации. здесь авторы реализовали в виде VQ квантизации, предобученной заранее (видимо на все том же мини ворлде)

тогда получается, что для сходимости нужно в ~30 раз меньше данных (вау! что довольно критично для ин-контекст рл) с учетом добавления двух гиперпараметров, которые несильно добавляют сложностей в переборе. в принципе вся сила экспериментального превосходства метода заключается в понятии expected maximum performance, который показывает ожидаемый максимальный перформанс при ограниченном вычислительном бюджете, нежели просто черри пик

теперь к непонятным моментам (много собственных предположений и спекуляций)

- критичным в мета-рл и частности ин-контекст рл является вопрос количества эпизодов, за которое сходится к оптимальному перформансу агент. есть графики только по поводу бейзлайна → можно спекулировать, что н-граммы в этом моменте не лучше
- нету непрерывного домена + экспериментальные среды являются довольно простыми в сравнении с остальными (на что авторы и сами указали). видимо не скейлится. но почему?
- может не так просто далось обучение резнета (который упоминается в статье), к кому самому возникает вопрос: почему он? там есть много моментов, в том числе и батчнорм, которые считаются out-of-fashion либо же оптимизированы под частные случаи
- либо же какой-то сбой дает сама векторная квантизация: происходит ли в используемости кодбука какие траблы в плане утилизации или разреженности


👀 link, где код лебовски
👍2
An Evolved Universal Transformer Memory

часто sakana.ai делает что-то интересное

недавно в transformer-squared они уже занимались махинациями с адаптацией на тест тайме, в этой же статье (которая хронологически вышла раньше) они явно размышляют над концепцией внешней памяти

и если сейчас, когда речь идет про память которая помогает адаптироваться на инференсе, в голове всплывает что-то типа недавних титанов или ТТТ. но тут авторы формулируют кв кэш (про который мы писали в последний раз здесь) как форму внешней памяти, которую можно оптимизировать, что интересно

короче говоря, статья не про мемори а про компрессию кв кэша

и реализуют они это через единую модельку всех слоев трансформера, которая выдает для каждого токена скор, оставлять ли токен в кеше или нет

- для этого они вычисляют спектрограмму (STFT) от аттеншн мап + делают EMA с гиперпараметром относительно оси времени (чтобы сжать ее). эта эвристика исходит не из какого-то profound факта, а просто потому что такая предобработка лучше всего у них заработала (по сравнению с сырым аттеншном и прочим) + еще добавляют поз эмбеды на основании “старости” каждого токена в кв кеше
- и затем эти фичи идут на вход модели, где работает Backward Attention Memory - аттеншн с не нижне-, а верхнетреугольной каузальной маской, таким образом эта внешняя легкая моделька настроена “в противоположном плане” фиттить свой аттеншн по сравнению с трансформером, что в совокупности должно давать прирост + есть резидуал коннекшны
- периодически эта модель выдает скоры, какие токены откидывать из кэша. сама же она обучалась при помощи эволюционного алгоса CMA-ES, который безградиентно обучает эту модель на селекцию токенов

на ЛонгБенче по сравнению с бейз лламой результат получше, а кэш сильно так пониже (для конкретных чисел можете посмотреть картинки) + из интересного еще применили это для ВЛМ на зеро-шот трансфер для ЛЛаВы и РЛ для десижн трансформера (который встроен в хф и последний раз мы его упоминали здесь)

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

еще момент требования всей аттеншп мапы сильно ставит палки в колеса использованию флеш аттеншна

в принципе работа получилась интересной еще одним примером как грамотно можно эволюционные алгоритмы юзать для ллм и это не будет выглядеть сильно странно + унификация моментов внешней памяти и кв кэша тоже хороша

👀LINK
5
Why do LLMs attend to the first token?

Федерико Барберо, с которым недавно вышел подкаст по одноименной статье о нестабильных репрезентациях в каузальных трансформерах, решил в этот раз получше в своей манере прочувствовать феномен аттеншн синков (кстати о них мы уже достаточно много писали - и тут и тут и тут)

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

и если раньше интуитивно объясняли аттеншн синки как место, где скапливается “избыточная аттеншн энергия”, то здесь же Барберо говорит, что они решают 2 вида коллапса в трансформере

- representation collapse - эмбеддинги текущего и предыдущего токенов становятся все более неотличимы (особенно к концу последовательности)
- rank collapse: эмбеддинги токенов в последовательности становятся неотличимы от “среднего” эмбеддинга (становятся полностью гомогенными и неинформативными). терминология может намекать на ранги матриц, но это не связано

из ранк коллапс следует репрезентейшн коллапс, да и в принципе первый коллапс больше связан с длиной последовательности, в то время как второй говорит о размывании (или же так называемом over-mixing) информации с бОльшей глубиной модели

проверяли же они это с геммой 7б и лламами 3.1 (8б 70б 405б) по оценке синк метрики (которая по трешхолду замеряет насколько эмбеддинги активируются почти всегда), аттеншн мапам и нормам эмбеддингов

из интересного еще есть эксп, где они составляли пертурбацию в токенах (например поменяли best на greatest) в промпте. по теоретическим прикидкам авторов через Липшицеву константу, аттеншн синки помогают контролировать чувствительность модели к промпту, которая еще к тому же зависит от трейн длины контекста, глубины и количества голов → чем больше модель, тем более должно появляться якорей для стабилизации

также подтвердили зачем-то многие тейки из предшествующих статей (видимо чтобы потом и их цитировали побольше в том числе помимо первопроходцев) - например, что первому токену необязательно быть <bos>, а решает только позиция, и все равно появится синк, или как они могут помогать выставлять что-то вроде if-else утверждений в модели на проверку промпта (если в тексте есть апостроф, то соответствующая голова в соответствующем слое отреагирует, иначе же все уйдет в синк)

👀LINK
🔥5👍2
When Attention Sink Emerges in Language Models: An Empirical View

снова про аттеншн синки

сингапурские авторы, где вот-вот закончился iclr, провели очень много экспериментов по влиянию разных компонент моделей на динамику якорей и сделали свое овервью

эту эмпирику провели по лламе2, лламe3, мистралю, гпт, pythia, opt, и в аппендиксе даже написали про гибридную джамбу. скейл по параметрам варировался от 10м до 13б

из оптимизации
- weight decay способствует появлению якорей (интуитивно потому что помогает со стабилизацией при обучении)
- меньше лр → медленнее появляются синки (+ аргумент к тому, что если добавлять SinkKV нативно, то может улучшиться перформанс при том же бюджете обучения)

по части данных
- если аттеншн исполняется со скользящим окном (Shifted Window Attention), то якори образуются как первые токены общей последовательности, а не каждого контекстного окна
- синки сдвигаются в зависимости от префикса: если они есть, то якорь появляется не только на первом токене
- у базовых и инструктированных моделей примерно одно и то же соотношение по синкам
- якори продолжают быть даже если на вход идут рандомная последовательность токенов вместо natural language (правда меня смущают в Table 1 меня очень смущают показатели в 99% синков по метрике), но если просто дублировать один токен, то все пропадает

архитектура
- во многом (формульно и по результатам экспов) синки напоминают концепцию Key & Value Biases, где добавляются в соответсвующие места обучаемые или необучаемые параметры. и видимо поэтому синки иногда могут быть связаны с оверфитом: переобучаются под трейн как биасы (на маленьком скейле)
- аттн синки появляются при всех позиционных кодированиях, и даже если оного нет
- если заменить софтмакс на другие кернелы а-ля линеаризовать аттн → синки останутся но их станет существенно меньше (только если не играть ?зачем-то? с сигмоидой, то тогда станет больше якорей)
- ни пре-норма, ни пост-норма не убирают полностью аттеншн синки

вообще в аппендиксе авторы дают еще интересные размышления по поводу общей картины исследования нестабильностей в трансформерах и пытаются найти свое место аттеншн синкам в ней - и что есть конкретные аутлаеры (в том числе и в вижн моделях), да и как будто есть какая-то связь с энтропией в аттеншне или qk-нормой

👀 link, code
6👍5