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

Авторы:
@zzmtsvv
@maxnygma (AI4Science посты)
Download Telegram
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
Transformers learn to implement preconditioned gradient descent for in-context learning

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

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

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

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

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

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

👀LINK
🤯4👀2
HyperLLaVA: Dynamic Visual and Language Expert Tuning for Multimodal Large Language Models

Yet another MLLM, but with stuff from 2017 🔕

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

Есть два модуля: картиночный и текстовый эксперт 😓. Эксперты эти представляют из себя гиперсети, которые генерируют параметры сети для динамически меняющихся эмбеддингов. Такого эксперта вставляются на каждом слое проектора для картинок, и обучают на фичах конкретного слоя. Сами гиперсети генерят параметры для upsample и downsample модулей, по сути имитируя адаптер

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

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

LINK 👀
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥2
Transformers Learn Temporal Difference Methods for In-Context Reinforcement Learning

И снова теория! и снова рл! и снова теория ин-контекст рл! на этот раз дополняющая возможности трансформера еще круче

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

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

И он не просто может, а именно и воспроизводит их во время обучения. при том могут воспроизвести не только TD, но и

- residual gradient (когда берем полный градиент в уравнении Беллмана)
- TD(lambda) - взвешенное среднее между обычным TD и Monte Carlo Policy Evaluation с полным вычислением ретернов
- недисконтированный случай ревардов - Average Reward TD

Стоит отметить, что в качестве данных они принимают не MDP, а Markov Reward Process - убирают действия из уравнений, чтобы все зависело только от состояний. облегчили себе работу, поскольку статья нацелена на моделирование трансформером value function, а не актора/control algorithm + анализ опять проведен над линейным аттеншеном. а что будет дальше - не знаем, но скорее всего будет еще жарче 😈

👀LINK
2👍2