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

Авторы:
@zzmtsvv
@maxnygma (AI4Science посты)
Download Telegram
QuIP#: Even Better LLM Quantization with Hadamard Incoherence and Lattice Codebooks

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

сейчас расскажем про второй - QuIP# (который по таймлайну и перформансу между QuIP и QTIP)

1. КуИП#, как и первый КуИП (который кстати теоретически оптимален для методов адаптивного раундинга), основываются на том факте, что веса в ллмках жестко дисбалансны по распределению и есть выбросы (которые оч сильно влияют на аутпуты) → плохо квантуется моделька. но по закону архимеда свойствам математики оказывается, что можно веса домножать на рандомные ортогональные матрицы, магнитуды будут растекаться более-менее равномерно по всем весам матрицы [т.е. эйгенвектора будут нормализованы и значения будут концентрироваться относительно 1/sqrt(in_features)]. и кстати говоря quadratic proxy objective с гессианом, который и минимизируют при квантизации, инвариантен относительно таких рандомных матриц. так что все супер ок

в первой работе они получали эти матрицы через кронекер матрицы, а в # версии через адамаровы (для которых даже отдельный сайт есть) - и быстрее вычислять, и качество не снижает. это называется incoherence pre- and post-processing

2. еще и накидывает в метод с решеткой векторную квантизацию (VQ), а не скалярную, чтобы квантовать веса не в пределах гиперкуба (когда идет округление к целому числу соответствующей битности), а в пределах шара. да и VQ не самый то и обычный гауссовский (к means), а по решетке E8 с оптимальным упаковыванием в группы по 8 весов. это может казаться контринтуитивно, тк квантовать весы распределенные по шару легче при помощи гауссиан по идее, но эмпирически это не так. приводят интересный инсайт, что выделение инфы на краю распределения (что и позволяет делать решетка, но не метод к средних), даже после incoherence processing, намного полезнее
3. завершают это все вишенкой на торте в виде доп файнтюна (который оценивается примерно 50 гпу-часами) который подсмотрели у AQLM: неквантованную модель тюнят на уровне трансформер блоков, а дальше уже минимизируют разницу между исходной моделью в фп16 и квантованной версией

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

make RTX and colab great again, как говорится

но это еще все без PV-tuning & QTIP, про которые мы тоже скоро напишем

👀LINK
73
QTIP: Quantization with Trellises and Incoherence Processing

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

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

и так появился Trellis Codebook Quantization (TCQ), который основан на концепции trellis coding, где закодированная последовательность (каждый элемент может принимать 2^num_bits значений) представляется не в виде полносвязного графа, по которому происходит блуждание, а в виде неполносвязного :troll:

каждая вершина соединяется только 2^k ребрами с другими вершинами. при k < num_bits расход памяти меняется так: seq_len * num_bits → num_bits + (seq_len - 1) * k. немного можно подумать и понять что в определенных сценариях это выгоднее

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

а сама треллис решетка оптимизируется по витерби

в итоге авторы заверяют, что ultra-high-dimensional метод для квантизации, где оценка по мсе близка к теоретически минимальной, работает

по экспам вроде как вырывается вперед что на 2, что на 4 битах (при том на 4 битах без просадки) по сравнению с их методами + AQLM & PV-Tuning, но это надо уточнять ибо они могли налажать с воспроизведением яндексовских статей (3 версии как никак именно из-за сравнения с этими методами, если вы знаете побольше то поделитесь, интересно почитать)

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

👀LINK
2👍1
π0: A Vision-Language-Action Flow Model for
General Robot Control**

robot foundational models go brrrr

Sequioa Capital и многие другие крутые компании решили влить деньги в ресерчеров Беркли, и таким образом появился physical intelligence

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

ВЛМка основана на гемме, а вот в качестве акнш эксперта решили нетривиально для рл и роботики выбрать Diffusion Transformer (DiT) на основе флоу матчинга. таким образом предиктятся действия не авторегрессивно, а вся последовательность (в этом случае 50 действий) сразу, что имхо решает проблему с разными герцовками во время обучения от датасетов под разных роботов (с чем уже боролся Сережа Левин) и убирает проблему накопления ошибки (которую мы упоминали и здесь)

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

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

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

есть еще вопросы, насколько применимы недавние рассуждения Суцкевера к фаундейшн претрейн в роботике, ибо там и много-много других проблем, которые можно бесконечно решать. we’ll see

👀 link, blog
6🔥3👍2
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