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

Авторы:
@zzmtsvv
@maxnygma (AI4Science посты)
Download Telegram
Kinetix: Investigating the Training of General Agents through Open-Ended Physics-Based Control Tasks

продолжение истории, связанной с около In-Context RL и наметкам по фаундейшн рл моделям

оксфордская FLAIR лаба ююю запилила свой open-ended симулятор для получения general agents. наподобие XLand-MiniGrid’a, только здесь не гридворлд а physical control со своим движком 2д движком Jax2D

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

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

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

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

👀LINK
👍52
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