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

Авторы:
@zzmtsvv
@maxnygma (AI4Science посты)
Download Telegram
π0.5: a VLA with Open-World Generalization

so, физикал интеллиженс сделал следующую версию своей general-purpose роботик модели

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

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

важный момент еще есть в комбинации обучения между действиями на уровне токенов (1) и через флоу матчинг (2) - фаст (1) позволяет модели сойтись заметно быстрее и в принципе легче тренируется, в то время как (2) на инференсе в данном сетапе авторов будет быстрее. решили это довольно прямолинейно - через гиперпараметр, который контролирует значимость флоу матчинг лосса во время обучения. начинается с 0, и затем постепенно увеличивается → мульти-модальный трансформер в начале обучения фиттится на маппинг из токена в токены, а затем и постепенно вливается консерн на непосредственное предсказание непрерывных действий. может выглядеть довольно топорно, but it works for them though

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

пока авторы назвали это версией 0.5 → можно предположить судя по размышлениям авторов, что версия 1.0 будет решать задачи о помощи во время выполнения задачи (хотя что-то такое уже было решено в Hi Robot но видимо не до конца) или большей агентности в плане меньшего количества супервайзд данных, as an example

или это будет версия 0.7 если им нравятся нейминги от антропиков

👀 link, demo, код отсутствует
3
Practical Efficiency of Muon for Pretraining

мы уже очень вскользь упоминали относительно нашумевший оптимизатор muon, который появился в принципе из соревнования кто быстрее обучит гпт (а еще и получит норм лосс на цифар-10)

теперь же essential.ai (где сейчас есть и vaswani) решили провести евал на более значимом скейле моделек и датасете, чтобы посмотреть, есть ли действительно эмпирическое преимущество муона (в данном случае, над AdamW)

и они провели такие экспы для гемма 2 & 3 на датасетах под обычный текст и код (чтобы учесть момент гетерогенности распределения данных) на скейле по моделям от 100М до 3.7B параметрам и по датасету от 10B до 160B токенам, при том начиная от 1B до ~2B модели тренились на 50B, а самая большая модель на самом большом скейлее соответственно (хотя в некоторых местах статьи написано что и 3.7B была натренирована на 50B)

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

из огромного количества ранов с девайсами от 8 до 128 (TPUv5, some google legacy stuff) muon всегда сходился на 10-15% быстрее чем adamw. для моделей от 1B это составляло экономию в примерно 2B токенов (кода, однако, нет, кроме реализации муона на джаксе в аппендиксе)

более того, с ним и сохраняются power laws (хотя и если считать по ним, то бюджет по шиншилле превышает бюджет в 2.2, тут не оч понял) + авторы представляют свой момент трансфера гиперпараметров на увеличение скейла, основываясь на mup, где делают геометрические шаги по увеличению скейла модели и сжиманию сетки свипов по гиперпараметрам (псевдокод прилагаем)

говорят про какие-то сохранения компьюта на >50%, но кода все-таки нет

👀 link

касаемо имплементации muon для торча

original code

cuda/triton code
8👍3
Transformers for Supervised Online Continual Learning

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

в этой статье дипмаинды попытались подогнать трансформер под такой сетап на примере континуал емнист и цифар10. нету привычного батчированного предобучения (разве что используются предобученные картиночные feature extractors), а есть кое-что другое

что же все-таки смогли учудить авторы?

- обновляют модель в онлайн формате, чтобы соответствовать ограничениям задачи
- при этом сохраняют в КВ кэше предыдущие вычисления в sliding window стиле. да и кв кэш не один, а их несколько таких буферов (которые, видимо, рандомно сменяют друг друга, здесь авторы не совсем ясно расписали)
- таким образом и аттеншн утилизируется более стандартным способом, как мы привыкли, так еще и имитирует момент обучения по эпохам ввиду попеременной смены кв кэшей при градиентном обновлении. еще конечно интересно, как они реализовали online gradient шаг в комбинации с кв кэшами, поскольку к этому надо подойти аккуратно (и еще аккуратнее, чтобы достичь минимального оверхеда по обновлению состояний), но этого мы видимо не узнаем
- так же они попробовали 2 подхода по вставке лейблов - просто в контекст (и при next-token prediction задаче моделировать надо только их) или как доп проекция для kv, которые показывают себя примерно одинаково на существующих бенчмарках

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

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

так что да, очередная статья про интересные свойства трансформера

👀LINK
6👍2
Hardware-Efficient Attention for Fast Decoding

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


короче да, Три Дао пошел в оптимизацию латентного аттеншна (который мы упоминали вот здесь)

и начинают авторы, отталкиваясь от анализа arithmetic intensity, которая показывает отношение арифметических операций к каждому байту доступной памяти (что пропорционально group size - отношению q голов к головам kv в аттеншне), и это может подтолкнуть к моменту группировки

хоть кернел от дипсик реализован в манере флеш аттеншна и cutlass, но есть нюанс(ы)

- может происходить репликация кв кэша при тензор параллелизме (up-проекции параллелятся по колонкам и, когда пасьянс по размерностям не сходится, то происходит неприятное)
- из-за чего выигрыш (по задумке) должен быть, а его нет
- → надо грамотно отшардировать латентные головы по девайсам
- что может быть как раз достигнуто при обобщении на понятие GQA (оригинальный латент аттеншн больше похож на multi-query attention, где все q вливаются в одну голову kv, а не по группам)
- при том еще и сохранить то же количество параметров: добавляется понятие kv групп, а латентная размерность урезается вдвое. в остальном повторяется идея MLA

и получился Grouped Latent Attention (GLA)

но на GLA авторы не остановились, а еще и предложили свой Grouped-Tied Attention (GTA)

- подметили, что роуп далеко не всегда стоит применять (и качество может быть даже лучше). в принципе из-за этого в МЛА и по половине размерности применяется только это позиционное кодирование (и здесь будет так же)
- так еще и в k присутствует низкоранговая природа: амплитуда сингулярных значений жестко летит вниз почти в самом начале, и тем самым вариативность заключается в нескольких первых компонентах
- отчего и вышла сюрреалистическая идея: пусть не будет отдельных проекций под K & V, а будет единая KV, где значения полностью равны этой проекции,
- а первая половина берется для ключей. вторая же часть покрывается другой проекцией, которая одинакова для всех голов и к ней применяется роуп
- звучит супер нетривиально, но видимо работает😱

все это так же реализовано в io aware манере, от которой и старается не отставать ветка с линейным аттеншном + есть совместимость с paged attention за счет асинхронного копирования и расчета адрессов по потокам в одном варпе, что вообще на мой взгляд супер мега круто выглядит

по скейлам моделек от ~180М до ~1.5B параметрах, от 25 до 50 миллиардов токенов в соответствии в размером гпт3 и ллама3. по метрикам стандарт - от перплексии до ММЛУ. репортят ожидаемые результаты о сохранении (иногда и улучшении на таком скейле) перформанса при более эффективном сжигании карточек + еще в DeepSeek Coder V2 Base заменили MLA → GLA в фп8 и посчитали пропускную способность (вкусно)

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

👀 paper, code с пылу с жару
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥3
Memory Mosaics

хоть недавно и вышла альтернатива трансформеру от саканы, она все равно использует аттеншн как основной механизм и не выглядит как вывод из bitter lesson

здесь же хочется написать про айклировские 2025 мозаики памяти, которые базируются на ассоциативной памяти (да, она мне нравится и я про нее уже писал здесь и здесь + китай тоже что-то пытается с ней делать, разбавляя текст цитатами из goodreads)

вместо селф аттеншна идет же база на основе Надарая-Ватсона [1], [2]
- где моделируют необходимые ключи k и значения v для ассоциаций
- при том ключи вычисляются по токенам вплоть до данного таймстепа, а значения же на один шаг вперед (хотя можно в теории сделать и на большее количество шагов + нам еще так не придется вставлять позиционное кодирование), а на инференсе получается путем интерполяции
- и итоговый аутпут вычисляется через Надарая-Ватсона (который в теории должен сходиться к истинному какому-то там условному мат ожиданию значений v от ключей k)
- и поскольку теоретически один такой модуль сходится, то и интерпретация его (по словам авторов) лучше, чем один модуль селф аттеншна, да и даже эффективнее. так они эмпирически показывают, что inductive bias может появиться уже с одним таким блоком памяти, в то время как аттеншну нужно минимум 2 слоя
- для того, чтобы хендлить длинные последовательности и больше укрепить вопрос о позиционности токенов в архитектуре, авторы добавили нормализацию и leaky average, которую можно реализовать через свертку
- если же наслаивать эти модули друг на друга, каждый в отдельности будет отвечать за свой кусок меморизации, нужный для цельной картины - отсюда и название мозаик памяти (а и еще это наводит на мысли о связи мета-лернинга и градиентного обучения, про которое мы и тут упоминали)

что по экспам?
- супер-пупер маленький скейл (сравнивают с маленькой гпт2)
- игрушечные датасеты (3 луны) + языковое моделирование как BabiStories + in-context learning on RegBench
- обгоняет по перплексии, обгоняет в ин-контекст лернинг сетапе + нужно меньше слоев (в том числе в сравнении и с рнн и ссм)
- добавляют еще аналог FFN в виде Persistent Associative Memory (где количество kv фиксировано и они побольше подходят с теории кернел регрессии)
- но масштабируемо ли?

seems like not. иначе их predictive disentanglement (свойство мозаики) сравнивался с бОльшим скейлом моделек + были бы аблации на чувствительность к гиперам

но материал хорош для повторения всей этой теории и нового взгляда на аттеншн

👀 paper, code
🔥3👍1