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

Авторы:
@zzmtsvv
@maxnygma (AI4Science посты)
Download Telegram
Compressing Large Language Models using Low Rank and Low Precision Decomposition

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

только они решили подойти со стороны объединения низкоранговости и лоу пресижна: W ~= Q + LR (для каждого sub), где Q получаем через LDLQ (который экивалентен OPTQ, он же GPTQ) из QuIP#, а L и R с заранее выбранным рангом итеративно обновляем друг за другом вместе с квантизацией

инициализируют эти матрицы через svd, при том на каждом так называемом outer iteration. outer iterations - сколько раз запускать LDLQ, inner iterations - сколько раз внутри каждой внешней итерации аппроксимировать L & R. при том это 2 гипера, что немножко как будто weird, но видимо сценария лучше и не придумать в таком сетапе

квантизация всех матриц кстати все равно происходит не без помощи E8 решетки, так и до этого еще веса на ортогональные рандомные домножают, все как по QuIP#

но основной импакт метода в том, что дальше можно тюнить в ЛоРА режиме только две лоуранговые матрицы → сохранение по памяти и (видимо) легче тренить в пресижне в 16 бит

по перформансу вроде как обыгрываем этот метод (но тут перплексия as always, неидеальность которой очень хорошо чувствует один из наших читателей), хоть и average bits чуть больше, но на 70б сравниваются с КуИП# будучи не файнтюня его + по времени где-то чуть-чуть побольше обучается (по заверениям авторов КуИП# примерно 50 гпу-часов, в то время как здесь 59) + еще есть вопросы как они меряли throughput - почему на сек лене 1?

так же еще есть момент, что появляется 3-4 параметра к каждой матрице весов (даже не каждому слою или блоку, в том же трансформер леере может находиться query, key, value, out, gate, up, down, что так-то много). и может outer & inner iterations можно зафиксировать для всех, то гипер в ранге матрицы (и потом ранг с которым надо файнтюнить) желательно по науке подбирать для каждой матрицы. а тут уже появляются проблемы, ибо в дело вмешивается каждый раз итеративная квантизация

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

👀LINK
🔥31
Transformers Can Navigate Mazes With Multi-Step Prediction

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

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

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

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

в итоге обходит этот метод searchformer довольно уверенно, как и по аккураси, так и по скейлу модели, хоть и самая большая 175М размером. так же для полноты картины авторы расширили датасет до ДФС лабиринтов, где планировать надо на еще бОльший горизонт степов, чтобы повысить вес такой идеи

👀LINK
4👍2
Zero-Shot Whole-Body Humanoid Control via Behavioral Foundation Models

another one attempt to foundation model in rl. в этот раз от меты фаундейшн для виртуального гуманоида

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

делают это все через ансупервайзд сетап с forward-backward representations ( нет, это не ebany idea, а эмбеддинги, которые объединяют выражение произвольной q функции и покрытие пространства стейтов → выход на zero-shot rl [1, 2] )

но в итоге они сделали Forward-Backward representations with Conditional Policy Regularization (FB-CPR), где лосс как из имитейшн лернинг (потому что берется неразмеченный датасет), который дополняется дискриминатором на экспертные неэкспертные действия (через который потом можно вывести ревард функцию для zero-shot fashion’a) + подкрепляется это все актором который учится на онлайн датасете (чтобы скрепить таким образом Forward & Backward embeddings с актором не через градиент хотя бы, а через репрезентацию динамики среды). в коде и алгоритме еще упоминается ансамбль сетей для диверсификации предиктов (которая относительно популярна в оффлайн рл)

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

👀LINK
42
Revisiting In-Context Learning with Long Context Language Models

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

раз контекст больше → примеров больше можно вместить → какие примеры лучше всего запихнуть в промпт?

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

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

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

но все-таки результаты можно улучшить - не надо отходить от рандомного взятия примеров (тем более что так их можно закешировать), а давайте нагенерим еще примеров и потом просто отфильтруем → получаем прирост в резах. правда дипмайнд как обычно не разглашает, как именно они производили фильтрацию, кроме как магической фразы
To do this, we design a function f

+ добавляют трешхолд (как это делали здесь, но еще добавили оценку по Ликерту)

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

👀LINK
Forwarded from TGStat Bot
Итоги года для канала "rizzearch" от @TGStat
🔥26
Спасибо, что вы с нами!
🔥143
Training-Free Long-Context Scaling of Large Language Models

в связи с репортом квена 2.5, напишем обзор на Dual Chunk Attention (DCA), который как раз в семействе новых моделей и используется

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

и это делают через разбитие аттеншна по двум (трем) чанкам (держим в голове что chunk_size < pretrain_seq_len)

- intra-chunk attn: в нем позиционируем информацию внутри искусственно обособленного чанка → позиции принимают значения от 0 до chunk_size - 1 включительно. при том стоит уточнить также, что такой рейндж значений сохраняется у всех ключей. (0, 1 … pretrain_seq_len - 1) % chunk_size → (0, 1, … chunk_size - 1, 0, 1, … ) (и при том необязательно pretrain_seq_len % chunk_size == 0)
- inter-chunk attn: с первым “внутричанковым аттеншном” еще понятно что делать, но вот как выходить за его пределы, чтобы не поломать основную концепцию каузальности (q_position_ids ≥ k_position_ids) и в перформансе не потерять? да авторы просто для таких queries делают позиционные индексы как pretrain_seq_len - 1. и все? и все (почти).
- достаточно грубая концепция интер-чанка приводит к successive-chunk attn: чтобы поболе сохранить понятие локальности для аттеншна, между соседними чанками для первых pretrain_seq_len - chunk_size позиций значение pretrain_seq_len - 1 заменяют на [chunk_size, chunk_size + 1, … pretrain_seq_len - 1]

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

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

👀LINK
👍332
Zero-Shot Reinforcement Learning from Low Quality Data

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

но дело не заканчивается только на Forward-Backward (FB) Representations, которые относятся к successor measures, интуитивно замеряющие дисконтированную “будущую покрытость” (future occupancy) состояний при данной полиси

а авторы так же замеряют расширение идеи successor measures → (universal) successor features, которые фокусируются более на репрезентациях, способных (по ходу обучения на практике) смоделировать эту дисконтированную сумму (покрытость) фичей. а универсальными эти фичи (USF) делают тем, что их расширяют на семейство политик (вместо одной конкретной). обычно это выглядит так что просто полиси pi дополнительно параметризуется латентом z

ну в сущности и то, и то позволяет разъединить динамику среды/сред в наиболее общем смысле этого слова от ревард функции, которую тем не менее потом на тест тайме при помощи определений и формул можно выразить через FB и USF

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

окей, а что по резам? на не очень данных обгоняет стандартные зеро-шот + goal-conditioned подходы (Goal-Conditioned IQL) + на стандартных “больших” датасетах перформанс не херит. есть разве что вопросы (скорее всего касательно future work или теории за successor stuff), что фичи обгоняют measures на ExoRL & D4RL as well. интуитивно, как и заверяют авторы, это может быть связано с тем, что фичи просто более универсальны (латент семплируется, будучи не приуроченным никак к датасету и оттого степень покрытия просто может быть больше)

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

👀LINK
1