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

Авторы:
@zzmtsvv
@maxnygma (AI4Science посты)
Download Telegram
Resurrecting Recurrent Neural Networks for Long Sequences

Относительно давняя статья, которую уже можно считать базой

дипмаинды решили освежить рннки и привнести в них заново жизнь. они смогли получить такой же скор на Long Range Arena, что и ссмки, не уступая по вычислительной эффективности

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

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

- диагонализуют обучаемые матрицы и часть обучения происходит в комплексно-диагональном пространстве, пространстве собственных значений
- заменяют HiPPO инициализацию на более легкую, известную всем формулу еще с первого курса университета (назвали ее stable exp parametrization)
- добавляют зависимую от “обучаемых eigenvalues” нормализацию, которая привносит постоянство, схожее с диффурами, которые стоят за ссм

И получается интересный Linear Recurrent Unit (LRU) 🫡

P.S. мы писали до этого про гибрид от тех же дипмаиндов, где они используют Real-Gated LRU, которые сами придумали. основное отличие - уходят от комплексных пространств, потому что по их опыту комплексные пространства плохо справляются с language modelling. pay attention to the evaluation protocol😎

👀LINK
👍4🔥31👀1
Learning from Active Human Involvement through Proxy Value Propagation

Еще одна крутая статья с крутой и одновременно простой идеей, которая расширяет границы привычного обучения с подкреплением

Общая проблема всех областей в рл - необходимость собрать огромный датасет, чтобы выйти хотя бы на субоптимальный уровень, а если и оптимальный, то потеть надо еще сильнее

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

А что если вообще не собирать огромный датасет, а посмотреть что выучит алгоритм, если человек будет постоянно “на связи” - сможет в любой момент перехватить контроль на себя и показать, как надо действовать? А сделаем это через модификацию Value functions ⇒ Proxy Value Functions, или PVP (уже похожее делали здесь)

И как ни странно, это работает! Вы только чекните графики - алгоритм таким образом в ГТА 5 может до конца маршрута в гонке доехать на ламбе (PVP выигрывает в гонках гта, interesting)

Помимо гта там еще авторы показывают анализ лосс функций и выводят связь с CQL, что нетривиально и вообще супер, тк говорит о том, что мы идем в правильную сторону

👀LINK
4
Mixture-of-Depths: Dynamically allocating compute in transformer-based language models

Заводить трансформер и ждать пока обучится - Как страшный сон порой, не правда ли? Все через это проходили и проходят

Но! авторы (дипмаинд, конечно же) призадумались и поняли, что не на все части входных последовательностей нужно одинаковое количество вычислительных ресурсов (ну это давно поняли до них, но они решили это элегантно). Формально говоря, не всем нужно такое же количество компьюта (ФЛОПов), а значит, этой вещью можно сэкономить. но как?

Вот здесь производят аналогию с МоЕ - а давайте динамически решать пропускать ли токен через весь слой трансформера или нет при помощи обучаемого роутера, который будет выдавать вес для каждого токена, а мы будем отсекать все кроме top-k ⇒ экономим в количестве вычислений, модель работает быстрее (да и по памяти последовательность меньшей длины по факту засовываем в трансформер)

Почему именно top-k? Ведь это по сути лишний гиперпараметр - да, но таким образом мы получим граф вычислений с заранее известными размерами тензоров, иначе без этого скорость была бы такой же + можно задаться вопросом, что выбор к токенов из последовательности нарушает каузальность трансформера, и это они тоже решают доп лоссом, который ставит все на свои места при инференсе

В общем статью не грех прочитать самому - довольно понятно и интересно все написано. особенно забавляет тот факт, что есть отдельный пункт Implementing Mixture-of-Depths Transformers, а кода нет

👀LINK
💯7👍4
Bootstrap your own latent: A new approach to self-supervised Learning

И хоть статья относительно старая и такие цифры на ImageNet’е не удивляют, идея все равно красивая

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

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

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

Что это значит? Мы создаем копию модели (назовем ее таргетом), через которую не будет проходить градиент, основная обучаемая модель будет онлайн моделью. Входную картинку аугментируем двумя разными способами, подаем в онлайн и таргет и минимизируем лосс между аутпутами

Дополнительно к этому таргет модель обновляется через exponential moving average (EMA) ⇒ стабилизируем получение эмбеддингов через придание “не столь резкого появления разницы” между аутпутами

Обогнали соту того времени, а какую цену заплатили? Всего лишь добавили один гиперпараметр - коэффициент, относящийся к ЕМА, а остальное в трейн лупе довольно дефолтно

И да, идею наверняка позаимствовали из рл, где почти всегда используют target Q-networks для подобной же стабилизации обучения через уравнение Беллмана. И мы писали, что от этого некоторые пытались отказаться

👀LINK
🤩3
CTRL-Adapter: An Efficient and Versatile Framework for Adapting Diverse Controls to Any Diffusion Model

Этот адаптер позволяет адаптить картиночные контролнеты под большие картиночные или видео диффузии. Решается проблема архитектурного несоответсвтия между адаптерами и разными моделями. CTRL-Adapter включает в себя spatial/temporal свертки/аттеншен, на входе юзают таймстеп, кондишен на картинку и текст. Во время адаптации контролнеты и генеративная модель заморожены

Есть также важные детали. В стандартных контролнетах латент также юзают на входе, однако тут это не делается в случаях i) большие скейлы шума мешают принимать кодишен и выход с контролнета получается неинформативным, ii) sparse фреймы для видео заставляют адаптер игнорировать отсутствующие кадры

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

Дополнительно можно подавать разные контролнеты с взвешивать их - получается типо MoE
👀 LINK
Please open Telegram to view this post
VIEW IN TELEGRAM
5
Tensorized NeuroEvolution of Augmenting Topologies for GPU Acceleration

Уверен, вы все перед сном задавались вопросом - а что происходит сегодня с эволюционными алгоритмами ? 🥴

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

Зачем это надо? поскольку топология сети в данном случае тоже не зафиксирована, то такие алгоритмы предоставляют нам более богатый класс моделей-аппроксиматоров, в отличие от классического дип лернинга. Все это, в общем и целом, называется NeuroEvolution of Augmenting Topologies (NEAT)

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

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

И у них это получилось! Теперь есть жесткая либа, она позволяет выстраивать “млпшки” с произвольной архитектурой. Не факт, что это сильно пойдет в народ и вообще побьет дефолт сетап, но мы можем такое сделать! пути ресерча неисповедимы

И да, написать они смогли такое на джаксе, чьи преимущества мы уже ни раз упоминали (здесь и здесь)

👀LINK
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2🥱1
The Hedgehog & the Porcupine: Expressive Linear Attentions with Softmax Mimicry

RuntimeError: CUDA error: out of memory. God please no

жиза при работе с трансформерами - не влезли по длине последовательности, ограничиваем видимость модели (и в частности аттеншна) 😟

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

а как? та давайте просто заменим софтмакс на dot product между какими-то фичами от query & key. опа - и все так просто. а в чем тогда подвох?

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

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

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

йо, и решается это не так сложно - зачем запариваться над тем, какими должны быть эти фичи над q & v, когда мы их можем представить в виде млпшек, а обучать будем так, чтобы аутпуты линейного аттна соответствовали классическому аттеншну

напоминает knowledge distillation, isn’t it? это оно и есть

👀LINK
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
2👀1
Unleashing the Power of Pre-trained Language Models for Offline Reinforcement Learning

мы уже упоминали о супер возможностях ЛЛМок в домене рля (здесь и здесь)

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

и получилось у них это при сочетании следующего

- в качестве претрена взяли трансформер который авторегрессионно моделировал английскую википедию
- поменяли начальные и конечные модули, которые энкодят и декодят токены слов, на млпшки, работающие с состояниями-ревардами-действиями
- обучали как DT при помощи ЛоРЫ
- оставили доп лосс на языковую составляющую

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

или отвечает за это все нечто подобное длани Господней, парящей над миром? 😭

👀LINK
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😁3👀1