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

Авторы:
@zzmtsvv
@maxnygma (AI4Science посты)
Download Telegram
Emerging Properties in Self-Supervised Vision Transformers

🕔 RIZZEARCH THROWBACK 🕔

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

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

Еще вишенка, что признаки SSL ViTа классно подходят для downstream задач, что авторы показывают в статье. Вообще эта работа (и скажем BYOL) положила некое начало методам self-distillation и до сих поря влияет на современные методы SSL

👀 LINK
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
5411
Recurrent Drafter for Fast Speculative Decoding in Large Language Models

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

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

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

по скорости превосходит медузу, правда нету экспериментов с моделью размером 33b

код кстати очень даже хороший

👀LINK
4311
Offline Regularised Reinforcement Learning for Large Language Models Alignment

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

авторы решили свести данные к single-trajectory сеттингу, когда у нас есть промпт-ответ-человеческая_оценка. последнее подразумевает лайк/дизлайк или что поинтереснее по сравнению с желаемым и нежелаемым ответами

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

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

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

красивых графиков нет, только сухие таблички с репортами результатов, как они обыгрывают KTO на UltraFeedback датасете, ну и не поставлен вопрос скейла ллмок, но это как обычно future work

👀LINK
🔥3111
Preference Learning Algorithms Do Not Learn Preference Rankings

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

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

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

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

👀LINK
4👍111
xLSTM: Extended Long Short-Term Memory

make LSTM great again 😎😎😎

как бы ни был крут лстм по заверениям Шмидхубера, которому мы обязаны за все современные методы во всех областях дл :roflanebalo:, эта рнн неидеальна в связи с проблемами, который каждый знает по первым урокам в дл

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

что же они добавили? заменили нелинейность в forget gate и input gate на экспоненту и добавили матричную память, которая обновляется по covariance update rule

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

2) а матричная память сделана довольно интересно - это не что иное, как ассоциативная память (посты о которой вы можете найти здесь). аналогично терминологии трансформера, создают запросы, ключи и значения qkv и получают хидден стейт в качестве значени v наиболее близких к запросу q (есчо смотрите формулы). кстати в формулу обновления ассоциативной памяти так же включены инпут и форгет гейты чтобы сделать ее более “lstm-like” + это все параллелизуется

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

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

👀LINK

P.S в абстракте пишут “LSTM constituted the first Large Language Models (LLMs)”. имхо спорно, по мне первые большие языковые модели были оч объемные н-граммы от гугла
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
554👍11
ORPO: Monolithic Preference Optimization without Reference Model

кому в алайменте жить хорошо

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

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

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

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

результаты выглядят более-менее сносно, мб и на большом скейле моделек может заработать + выложили код и веса

👀LINK

пока читал статью, понял, что не умею в школьную математику - на последних 2 картинках выводят градиент reference penalty и пишут, что чем меньше P(y|x), тем больше коэффициент для градиента. имхо это не так - чем меньше P(y|x), тем больше выражение в знаменателе и значит коэффициент этот для градиента уменьшается [то есть надо наоборот бОльший P(y|x), но я редко хожу на пары по математике и могу ошибаться]
433👍1🔥1
RWKV: Reinventing RNNs for the Transformer Era

уже упоминали эту интересную статью, своего рода тоже база

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

so, авторы отталкиваются от идеи attention-free трансформеров, где outer product (per-token attention) между запросами и ключами заменяют на сумму между обучаемой матрицей W и ключами K - якобы предполагают, что в этой матрице и так может содержаться вся релевантная инфа, которую просто надо сложить с ключами (что уже не так конечно, ибо произведение в линале куда мощнее сложения)

сначала они добавляют относительное позиционное кодирование в вычислении “attention-free аттеншна” к этой обучаемой матрице W, а затем добавляют новые понятия, аналогичные ключам K и значениям V + receptance вектор R как приемник информации прошлого (не путать с хидден стейтом, тут он комплексный и зависит от всех этих терминов) → метод и назвали по первым буквам этих модулей - RWKV

разделяют на два подэтапа - где time mixing & channel mixing (хотя и там и там миксуют каналы но не суть), не что иное, как FFN, в которые скармливаем токены на данном и предыдущем таймстепах + разные нелинейности применяем. а в качестве хидден стейта работает WKV operator, который очень хитровыделанно оперирует над предыдущими таймстепами и сохраняет идею attention-free трансформеров

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

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

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

👀LINK
4🔥2211