Switti: Designing Scale-Wise Transformers for Text-to-Image Synthesis
📖Статья 🖥Код 📑Сайт проекта 🤗Демка
Введение
На текущий момент диффузионные модели уверенно занимают пьедестал почета в задаче генерации изображений по тексту. По заданному запросу, даже весьма нетривиальному, насыщенному нюансами и деталями, они способны генерировать разнообразные картинки хорошего качества. Однако, существенным и основным недостатком диффузионных моделей является их итеративная природа генерации: чтобы сгенерировать одно изображение, диффузионную модель приходится прогонять много раз, из-за чего приходится подождать некоторое время, прежде чем замечательная картинка явится на свет.
Наряду с диффузией существует альтернативная парадигма генерации - так называемые авторегрессионные модели, которые генерируют изображения последовательно патч за патчом (патч - маленький кусок изображения, скажем, 16x16 пикселей). Однако, они работают на практике еще медленнее для больших изображений, так как генерация каждого следующего патча требует прогона модели, а количество патчей может переваливать за тысячу. Кроме того, они уступают в качестве диффузионным моделям, поэтому долгое время считались неконкурентоспособными.
Однако, этой весной команда исследователей из ByteDance в работе VAR (Visual Autoregressive Modeling: Scalable Image Generation via Next-Scale Prediction) предложила модификацию авторегрессионной парадигмы, где за один проход предсказывается не один патч, а все разрешение целиком. С помощью специальной аамодели - Residual Quantization VAE (вариационно кодировщика с остаточной квантизацией) - изображение разбивается на разные уровни: нижние уровни соответствуют общей семантике изображения, а верхние уровни - тонким деталям и текстурам. На нижних уровнях немного патчей, поэтому прогон модели на них дешев, и стоимость прогона возрастает с переходом на каждое следующее разрешение. На этапе генерации модель смотрит на все прошлые разрешения и генерируют текущее. Полученная картинка получается посредством суммирования всех разрешений.
Данная работа смогла добиться качества генерации, сопоставимого с хорошими современными диффузионными моделями, при этом будучи значительно быстрее их, в задаче генерации, обусловленной на класс объекта из ImageNet.
Увы, генерация из фиксированного набора (1000 классов) не так интересна пользователям, как генерация по произвольным и разнообразным текстовым запросам. Поэтому для верификации жизнеспособности идеи последовательной генерации изображений по разрешениям требовалась проверка в более сложном и интересном сценарии.
Некоторое время спустя после выхода работы VAR вышли STAR и HART, которые адаптировали вышеупомянутый подход для генерации изображений по тексту. В этих работах удалось добиться сносного качества генерации и следования текстовому запросу, но все же далеко позади современных диффузионных генеративных моделей (таких, как SDXL, PixArt, Lumina).
Поэтому мы, исследователи из Yandex Research, решили обучить свою генеративную text-2-image модель.
В итоге, я настолько подавлена результатами дискуссии на openreview, что уже даже нет сил делать никаких оригинальных познавательных постов в паблик да и вообще что либо делать.
Я и коллеги, с которыми мы вместе писали статью, потратили реально много времени и сил на то, чтобы сделать все дополнительные эксперименты, которые просили ревьюеры, написать ответы этим самым ревьюерам и внести правки в статью (каждый из этих этапов подробно обсуждался на созвонах, а формулировки в ответах подолгу вылизывались).
Кроме того, я и как минимум ещё двое моих соавторов, которые сами были ревьюерами, параллельно внимательно разбирали ответы тех авторов статей, которые ревьюили мы и отвечали на них. Забавно, что в итоге мы все трое подняли оценки всем статьям, на которые делали ревью)) Ну а что делать, если авторы старались и исправили ряд недочётов, на которые им указали? Повышение оценки более чем справедливо в такой ситуации.
Но наши собственные ревьюеры, конечно, так не считали: ответом на наши собственные старания в ребаттле было в основном молчание.
Один ревьюер попросил сделать ещё один дополнительный эксперимент, а когда мы его сделали, никак это не прокомментировал и умолк навсегда. Другой в последний момент дискуссии ответил что-то похожее на генерацию LLMки, где было сказано, какие мы молодцы, но оценки не поднял. Двое остальных просто не реагировали, как будто умерли.
Когда соавтор решил написать об этой проблеме Area chair и senior area chair, они тоже ответили молчанием.
Я очень болезненно воспринимаю такие ситуация, когда так сильно стараешься, но тем, ради кого стараешься, на тебя настолько насратб, что лень даже два слова ответить... Руки опускаются...
#наука #о_себе
Безумно люблю челов которые делают rwkv/mamba. Второй год трогают архитектурные изменения, но не трогают данные.
А вообще там интересно, почитайте.
Наука это праздник! Все летит в аги
Судя по открытию офиса oai в цурихе, API будет работать с 10-17 on week и до 15 по воскресеньям.
Читать полностью…Сегодня поговорим про масштабирование моделей и данных в диффузии.
Scaling Laws For Diffusion Transformers
Несколько предыдущих работ (раз, два, три) уже в том или ином виде обсуждали масштабирование диффузионок в целом и DiT в частности. Однако построением предсказаний того как будет улучшаться модель при масштабировании они не занимались, то есть power law кривульки отсутствуют.
Зато они являются основным вкладом этой работы. Вдохновившись Шиншиллой, авторы проводят ряд экспериментов на небольших выч. бюджетах и строят sns.color_palette("mako”) 🌿isoFLOP кривые по числу параметров и лоссам, из которых далее получают кривые зависимости размеров моделей и необходимого на их обучение компьюта. Экстраполяцией графиков получают предсказание того каким будет лосс обучения (сравнительно скромного) 1B DiT.
Проблемой таких работ является опора на FID как основную метрику. Его корреляция с лоссом зависит от CFG scale, да и корреляция с оценками пользователей уже много раз ставилась под сомнение. Но анализ интересный.
Pruning then Reweighting: Towards Data-Efficient Training of Diffusion Models
Можно масштабировать модели по параметрам и компьюту, а можно по данным и их качеству. Авторы утверждают, что делают второе первыми в мире, что не совсем правда потом что есть Broken Neural Scaling Laws и исследование в YaART.
Интересна эта работа тем что авторы смотрят не только на увеличение красивости генераций в терминах FID или каких-то визуальных сравнений, а еще и стараются сохранить полноту знаний за счет поддержания баланса классов. На экспы с CIFAR не тригеримся, дальше есть SD и MDT хотя бы на ImageNet.
EvolveDirector: Approaching Advanced Text-to-Image Generation with Large Vision-Language Models
Известно, что если подмешать в обучающий/файнтюновый датасет немного синтетики из какой-нибудь JourneyDB, то это улучшит качество итоговой модели. Эффект похож на дистилляцию, только вместо прямого сигнала из модели-учителя вы используете результаты её работы.
Авторы спрашивают: если задаться целью обучить модель на синтетике порожденной другой моделью, сколько её понадобится и можно ли превзойти учителя по качеству? Сразу вспоминается работа про self-distill, где показывалось, что если делать self-distill итеративно, то модели коллапсируют.
Так вот, сначала авторы пробуют взять 11М промтов из SAM и нагенерить по ним синтетики через PixART. Так получается догнать сам PixART, учившийся на 14М пар. Проблема такой неэффективности в неинформативных и сильно повторяющихся промтах. Для устранения проблемы берут VLM, кепшенят картинки и по кепшенам снова деляют генерации. Показывают, что теперь уже 100к семплов становится достаточно чтобы догнать учителя. А если взять несколько топ моделей, сделать генерации каждой из них, а потом отобрать лучшие VLM’кой, то можно превзойти каждую из моделей в отдельности 👀
на hf произошло money обнова, теперь надо платить за место.
UPD если вы богатый господин и готовы задонитить 4320usd в вихри чтобы мы могли оплатить про акк всем участника орги на год, а мы не мигрировали артефакты - было б славно(на что я надеюсь)
Приму гуманитарную помощь(пиво и чипсы) в аэропорту цуриха, попал в евросовковый капкан(не работает нихуя)
Читать полностью…Вышли scaling laws для диффузий и оно не очевидное.
Paper
оставлю разбор от спиридона сонцеворота /channel/quant_prune_distill/234
Друзья ищут сильного community genai lead
Что нужно делать?
- общатся с аудиторией на русском и английском
- делать много итераций контента, предлагать идеи, смотреть что есть у конкурентов
- ti2i, t2v, i2v и это все - ваши лучшие друзья
- в идеале смотреть что происходит в индустрии, сидеть на тематических реддитах, бордах и сереверах
- Уметь делать хайповый контент, если вы часто делаете штуки которые вирусятся - велком.
Денег платят дохуя, а главное - в usdt хоть на луну, единственное чтобы у вас был хороший интернет и +-6 часов по CET
Если вы думаете что пиздатый кандидат - пишите мне в личку @transformerslovedeatch , с описанием опыта и почему вы пиздатый кандидат.
Шаг1 пишем свой фреймворк на jax
Шаг2 учим хуевую LLM со своей архитектурой. Данные? А зачем их чистить?
Шаг3 сосем у oss моделей(тут можно поднять 1б USD пол обещание что мы молодцы)
Шаг4 ✨вы прекрасны, Феррари доставят на следующей неделе✨
благодаря автору @plotquot теперь вихри стали ОЧЕНЬ быстрыми для мака
забрать для M серии мака тут
Привет!
Мы тут в соответствующем разделе на сайте Specmat2x2.ru затеяли математические онлайн-игры проводить с завидной регулярностью. Ну и дела идут вроде в гору. Три игры из очередного цикла "Математического тетриса" прошли. Кто участвовал — пишите обратную связь @NikitaMikhaylovskiy, вдруг что-то не понравилось или, наоборот, понравилось. Будем работать над улучшениями.
Вообще-то, хотелось порекламировать это дело еще раз, потому что на следующей неделе для 3 и для 7 класса будут две игры. Если есть команды — приводите, да и друзей зовите! Все бесплатно, конечно.
Ссылка на регистрацию та же: https://specmat2x2.ru/igra
Ещё один multi cloud proof of concept pretraining. Теперь от nous research.
Модель говно, важен опыт обучения с low bandwidth + высокими задержками сети.
Paper
#чтивонаночь
BALROG: Benchmarking Agentic LLM and VLM Reasoning On Games
Статья про то как решают игры с помощью агентов, сравнивают агенты поверх VLM и поверх LLM
Выясняется что модели с vision решают хуже на 30-40%
Ну те когда состояние арены кормится через текст вида
Current Observation:
statistics:
Strength: 14/14
Dexterity: 9
Constitution: 11
Intelligence: 8
inventory:
a: a +1 long sword (weapon in hand)
message:
Salutations Agent, welcome to NetHack! You are a lawful female human
Knight.
language observation:
vertical closed door far east
dark area far east
- Устраиваешься в NDA HFT.
- Получаешь задачу: поднять "купленную" инфраструктуру.
- Пишешь новые коннекторы для этой инфры.
- Через комменты находишь компанию-автора инфры.
- Закидываешь к ним резюме на кванта, получаешь оффер.
- Получаешь доступ к стратегиям, но без инфры.
- Уходишь, записав адреса кошельков компании.
- Замечаешь, что стратегии приносят бешеную прибыль.
- Решаешь запустить их на старой инфре.
- Понимаешь, что не хватает коннектора для нужной биржи.
- Осознаешь, что именно ты писал этот коннектор раньше.
Learned Embedding Propagation (LEP) + анонс релиза RuadaptQwQ-32B
Расскажу немного подробнее про идею, которая стоит за текущими версиями Ruadapt моделей. Наше предыдущее решение требовало после адаптации базовых версий моделей дополнительно их дообучать по сути с “базы”, из-за чего терялись многие успешные инструктивные версии моделей, которые нельзя просто взять и воспроизвести из-за отсутствия обучающих данных (те же 10 миллионов инструкций LLaMa-3 не были открыты комьюнити). Другим ярким примером может послужить недавняя Qwen/QwQ-32B-Preview, так как не понятно как ее учили и на каких данных.
Тут то на помощь и приходит предложенный нами метод Learned Embedding Propagation (LEP). Идея метода состоит из 3 шагов:
1. На первом шаге мы также адаптируем исходную базовую модель
2 . На втором шаге мы рассчитываем проекцию из исходной базы в целевую исходную инструктивную версию (например, из Qwen/Qwen2.5-32B 🔜 Qwen/Qwen2.5-32B-Instruct)
3. На третьем шаге мы применяем данную проекцию 🔜на Ruadapt версию базы!
4. На самом деле есть еще 4-й шаг, по сути очень важный, это шаг калибровки / дообучения, но он “опционален”
В итоге, после 3 шага мы по сути имеем адаптированную инструктивную версию модели, и при этом она не сломалась и работает весьма успешно уже на новой токенизации, но из-за неточностей отображения качество несколько просаживается и могут быть новые артефакты. Поэтому все модели, которые мы выкладывали ранее, дополнительно калибровались/дообучались на открытых инструктивных данных, таких как saiga_scored.
А теперь обращу внимание вот на что.
Самое дорогое - это как раз первый шаг, адаптация базовой версии модели и в этом шаге нигде не используется никакая информация о будущей инструктивной версии, а значит, адаптировав базу и применяя LEP, мы можем адаптировать модель на любую инструктивную версию с этой базы!
И вот возьмем, недавно вышедшую Qwen/QwQ-32B-Preview, несмотря на то, что мы вообще не знаем как и на чем она обучалась, мы знаем, что ее базой является, Qwen/Qwen2.5-32B, поэтому мы легко можем сделать версию RuadaptQwQ-32B-Preview-LEP. С шагом 4 тут посложнее, так как хороших данных для подобного типа моделей я пока что не видел. На текущий момент предлагаю попробовать RuadaptQwQ-32B-Preview-LEP в поднятом Space (https://huggingface.co/spaces/RefalMachine/RuadaptQwen2.5), но обращаю внимание, это модель сразу после LEP, без дополнительных шагов дообучения, да и тестирования особо никакого с этой моделью пока не производилось.
Соответственно релиз RuadaptQwQ в планах, но через какое-то время. Буду рад фидбеку по любой из наших моделей в комментариях к посту или другим любым способом.
The Super Weight in Large Language Models
Mengxia Yu, De Wang, Qi Shan, Colorado Reed, Alvin Wan
Статья: https://arxiv.org/abs/2411.07191
Код: https://github.com/mengxiayu/LLMSuperWeight
Очень прикольная работа про то, что внутри LLM можно найти один единственный вес, зануляя который мы обрушиваем качество работы модели в пропасть. Такие параметры авторы называют супер весами (super weights) и предлагают метод их нахождения за один forward pass.
Внутри обученных LLM находится группа весов-аутлаеров с большой магнитудой, они могут составлять порядка 0.01% от всех весов модели, что в случае миллиардных моделей всё равно сотни тысяч. Это было известно ранее. В текущей работе показывают, что внутри этой группы находится один единственный вес (тот самый super weight, SW), не обязательно самый большой, важность которого превышает суммарную важность тысяч других аутлаеров. Он необходим для качества, без него LLM не может генерить нормальный текст. Перплексия вырастает на несколько порядков, а точность на zero-shot задачах падает до рандома.
Ранее (https://arxiv.org/abs/2402.17762) были найдены супер-активации, критичные для качества. Они существуют в различных слоях, имеют константную магнитуду и всегда обнаруживаются в одинаковой позиции несмотря на вход. Текущая работа находит, что канал активации совпадает с оным для супер веса и сперва активация обнаруживается сразу после супер веса. Прунинг этого супер веса значительно уменьшает активацию, так что вероятно активация вызвана им, а не просто скоррелирована. Такие активации называются супер активациями (super activations, SA).
Предыдущая работа объясняла супер активации через bias terms, но не объясняла как они получаются и почему на одних и тех же местах. Сейчас авторы эмпирически нашли, что до down проекции (down_proj) произведение Адамара (Hadamard product) gate и up проекций (gate_proj, up_proj) создаёт относительно большую активацию. Супер вес далее усиливает её ещё и даёт супер активацию.
Напомню, что MLP блок в Ламе выглядит так:
out = down_proj( act_fn(gate_proj(input)) x up_proj(input) )
SW можно найти, анализируя спайки в распределениях входов и выходов down_proj. Для этого достаточен прямой проход с одним промптом. Авторы нашли супер веса для Llama (7B,13B,30B), Llama 2 (7B,13B), Mistral-7B, OLMo (1B,7B), Phi-3.
Провели эксперименты по обнулению SW, в том числе с восстановлением SA до исходного значения, чтобы проверить влияние SW на другие активации. Это восстанавливает 42% потери, то есть влияние SW на качество выше, чем просто через SA.
По анализу 500 различных промптов из Lambaba validation set видно, что при убирании SW вероятности стоп-слов сильно возрастают (а обычные слова соответственно занижаются). Для “the” это 2×, для “.” -- 5×, и для “,” -- 10×. То есть наличие SW как бы подавляет стоп-слова и позволяет генерировать осмысленный текст.
Другой интересный эксперимент скейлит супер веса с коэффициентами от 0 до 3 (где оригинальный режим работы соответствует значению 1) и оказывается, что при увеличении SW качество модели ещё немного возрастает. Это забавный результат.
Имея это знание, можно предложить специальный метод квантования: Super-outlier aware quantization. Стандартные механизмы квантизации могут быть недостаточно хорошими, так как аутлаеры искажают распределение, влияя на размер шага и увеличивая ошибки квантования. Здесь под super outliers подразумеваются и SW, и SA. Предложенные методы восстанавливают SW и SA после квантований с клиппингом и заменами на медианное значение. Это всё работает лучше дефолтных методов, главный вывод -- надо защищать супер веса. В статье есть подробный разбор экспериментов, кому интересно поглубже. Также новый метод меньше теряет в качестве с увеличением размера блока.
Прикольный результат в общем. Это всё несколько перекликается с темой про лотерейные билеты (/channel/gonzo_ML/21), там внутри большой сети обнаруживалась сильно разреженная подсеть, обучая которую можно было достигать качества исходной сети (или даже выше). Интересно, входят ли супер-веса в лотерейный билет? Наверняка.
Адаптация для языков шагает по планете
В самом начале вихрей у нас была амбиция делать модели в том числе для казахского, но мы отказались от этой идеи в связи с трудоемкостью и отсутствием ресурсов. А один из подписчиков решил делать хорошо, позвал друзей, сели и напереводили датасетов на казахский!
kz mmlu
gsm8k
constituion похож на наш датасет из шлепы Law mc
Вопросы к книгам
Обучили роберту
Ждем свои llm для казахского, рад что наш проект вдохновляет других людей делать что то!
linkedln post
автор @stringersolo
Загадка на тему инфры: допустим у нас есть Nvidia gb200 nvl72. Ака стойка на 72 карты. И вот вопрос: а как на нем запускатся? Как на 18 отдельных нодах или как на одной? Если как на одной то как это реализовано системно?
Аппаратно это 18 нод по 4 карты, у них есть обычное количество маршрутиризаторов.
Вероятно лучший конспект по reinforcement learning который я видел и неожиданно на русском (!)
Читать полностью…На кейсах со сложным движением нескольких объектов выглядит слегка лучше gen3 и прочих. Вероятно за счёт 4о и прочего будет лучше.
Забейте эта модель все ещё текущего поколения, откровений по качеству генераций не будет.