Concise Research
1.13K subscribers
242 photos
223 links
Исследования AI глазами исследователя
Автор: @snk4tr Сергей Кастрюлин
Download Telegram
SANA 1.5: Efficient Scaling of Training-Time and Inference-Time Compute in Linear Diffusion Transformer
[код, веса]

Учить претрены text-to-image диффузии долго и дорого. Авторов SANA такое положение дел не устраивает. В прошлой серии (SANA 1.0) они флексили ускорением инференса ~x20 в разрешении 1024 и принципиальной возможностью генерировать 4k без super resolution моделей. В этот раз большее внимание уделяется эффективности обучения и дальнейшему скейлингу инференса.

Изменения относительно SANA 1.0

1️⃣ Увеличивают денойзер с 1.6B до 4.8В параметров. Обучение большой модели инициализируют с маленькой и экономят на этом 60% компьюта

2️⃣ Денойзер агрессивно прунят после обучения, получая модели в 1.5-2-3 раза меньше чем полная 4.8B модель. Для этого используют технику из Minitron: выкидывают трансформерные блоки, для которых похожесть активаций на входе и выходе выше порога. При этом качество сопоставимо с исходной моделью если сделать короткий (100 итераций) тюнинг. Получается своего рода аналог дистилляции перед продуктизацией модели

3️⃣ Inference-time scaling.
Вместо использования большой модели, на инференсе берут маленькую, делают пачку генераций, а потом отбирают лучшие с помощью VLM. Для этого используют специально дообученную версию NVILA-2B, про которую мы мало что знаем. Пачка большая - 2048 картинок, но они могут себе это позволить благодаря быстрому инференсу

4️⃣ Finetuning
Вместе с моделькой авторы делятся своей 8-bit реализацией оптимизатора CAME. Низкая битность позволяет тюнить 4.8В модель на одной консьюмерской GPU вроде RTX 4090. Для тюнинга предлагается использовать SFT датасет, состоящий из генераций, но больше деталей мы не знаем

Выводы
Фишка SANA 1.0 была в генерациях 4k, причем с достойным качеством. Эта модель про эффективность в разрешения 512 и 1024 и местами мы видим существенную просадку качества.

Высокие скоры GenEval говорят о хорошей релевантности, но генерации слишком дефектны чтобы воспринимать их серьезно. Мне работа интересна:
- Как фреймворк изучения диффузионных претренов
- Как кандидат для on-device геерации
👍82🔥1
The Best of Both Worlds: Integrating Language Models and Diffusion Models
for Video Generation

[кода и весов нет]

Не смотря на все успехи видео генерации, создание длинных роликов все еще остаётся сложной задачей. Основной формат ген видео сейчас - 3-5 секунд в 15/30 FPS, а хочется больше. Кажется логичным для этого использовать комбинацию диффузии с авторегрессией и мы уже разбирали такие работы.

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

1️⃣ Video Semantic Tokenizer
В основе лежит SSL претрен Theia - ViT на 100М параметров. Модель представляющая собой дистилл сразу нескольких качественных репрезентаций (CLIP, DINOv2, SAM), который учится одновременно предсказывать выходы моделей-учителей

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

Одним маппингом в Theia эмбеды x1400 сжатия не добиться, поэтому дальше авторы учат VQ-VAE на задачу реконструкции, конкатенируя эмбеды со случайно инициализированными query токенами.

Query токены нужны для того чтобы правильным обрабатывать кадры после группировки на важные и не важные фреймы. Дело в том, что мотивируясь MP4, авторы разделяют кадры на важные/опорные (IFrame) и вторичные (PFrame), которые кодируются как отличие от IFrame. Для того чтобы модель научилась различать IFrame и PFrame, для первых подается 3 токена, а для вторых - 1.

2️⃣ Language Model for Semantic Token Generation
Далее query токены предсказываются авторегрессионно моделькой с LLaMA-подобной архитектурой. Текстовый кондишен кодируют с помощью T5-XXL + по стандарту добавляют доп кондишены на длину видео и количество движения в нём и замешивают в генератор через cross-attn

3️⃣ Diffusion Model for Perceptual Feature Generation
Предсказанные авторегрессионно токены разворачиваются в непрерывные вектора с помощью VQ-VAE и подаются на вход MMDiT денойдеру. Кондишены прокидывают через Control Net, а сама генерация проводится по кусочкам. Результат разворачивают в последовательность кадров с помощью темпорального VAE

Результаты
Авторы целятся в генерацию видео длительностью ~30 сек в 8 FPS. На странице проекта они сравниваниются с OpenSora, FreeNoise и StreamingT2V и показывают, что на их видео выше консистентность больше движения. Учитывая, что нам почти наверняка показывают чери пики, задача генерации длинных видео еще далека от решения. Также чуть смущает количество инженерных наворотов, делающее воспроизведение почти невозможным
👍31🔥1
Как научить LLM генерировать изображения?

Недавние релизы GPT-4o-Image, Aurora и Gemini 2.0 Flash породили много хайпа вокруг универсальных моделей генерации текстов и картинок. Развитие VLM показало, что можно заставить LLM понимать визуальную информацию. Так почему бы не пойти дальше и не научить LLM её генерировать? Для этого важно эффективно передавать, а потом извлекать виз фичи из языковой модели. Ниже я собрал известные на сегодня подходы к тому как это делать

Discretization with Vector Quantization (VQ-VAE/VQ-GAN)
Самая простая и распространенная схема. Изображения кодируются в непрерывные латенты, а затем дискретизируются в визуальные токены из некоторого словаря (кодбука). Визуальные токены подаются в языковую модель наравне с текстовыми. Для генерации, токены декодируются с помощью декодера исходного автоэнкодера

Примеры: мало кто помнит, но первая версия DALL-E была устроена именно так. Позже Google выпустил Parti, а экстремисты сделали Chameleon

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

Vision Encoder with Cross-Modal Alignment
Тоже распространенная схема, широко используется в VLM. Предобученный визуальный энкодер (CLIP, SigLIP, DINO) используют для извлечение эмбединга картинки. Далее эмбединг проецируется в пространство эмбедингов языковой модели с помощью линейного слоя или адаптера. Также информацию можно объединять через cross-attension

Примеры: LLM2CLIP, Flamingo, недавно вышедшая UniFluid
Позволяет использовать качественные визуальные энкодеры, нет потери информации из-за квантизации
Тяжелее напрямую генерировать картинки из-за отсутствия картиночного декодера в явном виде

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

Примеры: ILLUME и её недавно вышедшее продолжение ILLUME+

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

Какой метод лучше?
Дискретные токены - не естественное представление для концептуально непрерывных данных. С другой стороны, отсутствие хорошего inductive bias может компенсироваться данными и компьютом. В любом случае, нас точно ждёт интересное развитие области в ближайшие месяцы и годы
Please open Telegram to view this post
VIEW IN TELEGRAM
👍93🔥2🤩1
Channel photo updated
Transfusion: Predict the Next Token and Diffuse Images with One Multi-Modal Model
[ни кода, ни весов]

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

Модель
Авторы обучают линейку трансформеров с LLaMA 2 архитектурой и токенизатором на совместное решение задачи next token prediction и диффузионного расшумления патчей картинок

Помимо основного трансформера нам потребуются:
➡️Непрерывный VAE для получения латентов патчей картинок
➡️Линейный слой или U-Net encoder/decoder для отображения латентов в эмбеды генеративного транформера и обратно

Вся система кроме VAE учится end-to-end на смеси картиночных и текстовых данных общим размеров 2Т токенов. Для выделения картинок используются <BOI>/<EOI> токены, которые переводят авторегрессионную модель в диффузионный режим. Помимо механизма семплирования, перевод режима влияет на аттеншен. Для текстов используется causal attn, для картинок - intra-image attn и, судя по результатам, это очень важная деталь

Результат
➡️Transfusion круче Chameleon во всех постановках, включая text-to-text. Интуиция - непрерывной модели проще даётся text-to-image и больше капасити модели остаётся, например, для text-to-text
➡️Transfusion скейлится круче Chameleon на диапазоне размера моделей от 0.16В до 7В параметров
➡️Использование inductive bias из U-Net помогает даже на таком масштабе. Для отображения в эмбеды стоит использовать его. Усложняет он не сильно (~3.8% от общего числа параметров)
➡️Модель легко дообучается на редактирование изображений используя всего 8к семплов

(Неочевидные) минусы
Очень много форвардов на генерацию изображения: нужно не только сгенерировать картинку по латентным патчам (~256 форвардов на 256х256 картинку), но еще и сделать N шагов диффузионного семплирования всей моделью на каждый патч
Систему учат с нуля на 2Т токенах и это достаточно дорого. Как будет работать в режиме файнтюна в статье не исследовали
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61
Мы с ребятами долетели до Сингапура, а это значит, что астрологи объявили неделю фоток постеров с беглыми разборами

😣 -5 к подготовке постов
👓 +10 к инсайтам и комментариям из первых рук
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3114
ICLR’25 poster session 1

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

Precise Parameter Localization for Textual Generation in Diffusion Models

С помощью перебора и OCR можно найти cross-attn слои, которые отвечают исключительно за то какой текст нарисован на картинке. После этого можно подавать промт с измененным текстом только в эти cross-attn слои, а исходный промт генерации - во все остальные слои и получать почти идеальное редактирование нарисованного текста

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

A Spark of Vision-Language Intelligence: 2-Dimensional Autoregressive Transformer for Efficient Finegrained Image Generation

Работа основывается на наблюдении о том, что основная проблема квантизации картинок в том что при кодировании-декодировании теряется слишком много информации. Действительно, классический VQ-VAE для каждого вектора выдаёт некоторый ближайший, часто очень не похожий вектор из кодбука. Предлагает делать residual дискретные токены, то есть стакать пирамидкой по частотам информацию о патчах. Дальше будем делать генерацию авторегрессионным трансформером. Он будет предсказывать все N токенов отвечающие за основной контент кропа картинки + уточнения (residuals) за раз. Это позволяет бустануть качество реконструкции до уровня средненького VAE и не особо потерять в скорости.

Автор говорит, что учить VQ-VAE не особо тяжело. Просто надо много раз реинициализировать и делать заново обучение до тех пор пока не получится автоэнкодер, использующий все элементы кодбука 😂

VILA-U: a Unified Foundation Model Integrating Visual Understanding and Generation

Одна из многих статей по мультимодальной генерации с расширением словаря дискретными токенами картинок. Отличается от предыдущей и многих других статей тем что латенты VQ-VAE «притягиваются» к токенам текстового энкодера contrastive лоссом, что постфактум улучшает качество генерации. Звучит вполне разумно

Но интересна статья не этим, а тем что автор поделился своей интуицией по поводу подобных систем в целом
- Во-первых, использование именно contrastive лосса для объединения картиночного и текстового представлений не обязательно. Даже лучше работает captioning loss, просто они не успели добавить это перед сабмитом
- Во-вторых, они явно ставили своей целью буст качества внутри фреймворка дискретной картиночной генерации. Сам он больше верит в непрерывные представления картинок для этой задачи

Fréchet Wavelet Distance: A Domain-Agnostic Metric for Image Generation

У работы очень понятная мотивация - использование Frechet Distance с любым картиночным энкодером будет иметь баес на train распределение этого энкодера. Для Inception это Imagenet, для DINO другой, но все еще ограниченный набор данных. Детерменированные представлерия такие как вейвлеты, в свою очередь, таким недостатком не обладают, да и считать их быстрее

Автор очень топит за свой подход и явно верит в то что сделал что-то полезное. Код выложен, можно на досуге попробовать, имея ввиду то что метрика будет более чувствительна к высокочастотным деталям. А ещё из-за этого её можно использовать как детектор сгенерированного контента
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍102
Если мотивация вашей работы выгляди не так - даже не зовите меня

ZooProbe: A Data Engine for Evaluating, Exploring, and Evolving Large-scale Training Data for Multimodal LLMs
😁42
ICLR’25 poster session 2

Не все сессии одинаково информативны, но всегда находится что-то любопытное

Meissonic: Revitalizing Masked Generative Transformers for Efficient High-Resolution Text-to-Image Synthesis

Развитие идеи MaskGIT для high rez генерации. Добавляют дополнительный compression модуль после токенизации и усложняют процедуру обучения, развивая её на аж 4 стадии. Последние, ожидаемо, тюнят модель на генерацию в разрешении 1024

В целом, работа инкрементальная. Интересно, что авторы, использующие VQ-VAE от Muse, не видят ограничений со стороны автоэнкодера и атрибутируют текущие пробелы в качестве недообученному генеративному трансформеру. А еще автор сказал, что high quality data на последних стадиях обучения - это прокачанный с huggingface датасет прокачек MidJourney 😂

Add-it: Training-Free Object Insertion in Images With Pretrained Diffusion Models

Допустим, мы хотим добавлять объекты на реальные изображения. Если взять картинку, инвертировать её диффузионкой в шум (DDIM inversion), а потом просто перегенерировать с новым промтом качество такого редактирования будет низким. Вместо этого возьмем новый шум и будем генерировать из него с промтом - описанием нового объекта. Чтобы обеспечивать связанность новой генерации с исходной картинкой будем делать аттеншен и на её траектории тоже. Для получения идеального баланса где фон остаётся, а новый объект добавляется, нужно взвешивать силу аттеншена между старой и новой траекторией

Автор говорит, что вес не сильно зависит от картинки и каждый раз подбирать его не надо. Если так, то такое редактирование стоит всего х2 от стоимости генерации, что часто приемлемо

Diffusion Attribution Score: Evaluating Training Data Influence in Diffusion Model

Допустим мы хотим найти самые информативные семплы в нашем обучающем text-to-image детасете. Как это сделать? Например, можно было бы обучить одну модель на всех М семплах, другую на М-1 семплах и сравнить качество. Не отличается? Значит семпл бесполезный, выкидываем. Беда в том что провернуть такое для всего датасета - вычислительно неподъемная задача. Вместо этого авторы предлагают аппроксимацию такого процесса, позволяющий оптимизационно получить приближение модели без конкретного семпла.

Обсуждая работу с автором я уже довольно тёр ладошки думая как прилечу и задистиллю претрен данные, а потом понял, что для больших моделей их выражение просто не вычислимо. Чтож, хотя бы поговорили хорошо
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
7😁4👍1
ICLR’25 poster session 3

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

Boosting Latent Diffusion with Perceptual Objectives

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

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

Transfusion: Predict the Next Token and Diffuse Images with One Multi-Modal Model

Недавно уже подробно разбирали эту работу. Есть несколько важных дополнений от авторов:
- Можно учить в fine tuning режиме. В работе это не указано, но на практике они пробовали и работает хорошо
- Исходная формулировка лосса важна. Нужно всегда учить на диффузионный лосс вместе с LLM лоссом, иначе сильно просачивается качество text-to-text
- Можно брать MoE претрен для ещё большего увеличения эффективности тюнинга
- По параметром система масштабируется хорошо, все приложения (в том числе диалоговый режим) поддерживаются через сравнительно небольшие доливки данных

Generalization through variance: how noise shapes inductive biases in diffusion models

Теоретическая работа о том почему диффузия обобщается. Почему, хорошо обучившись, модель просто не семплит данные из train датасета? Основной вывод в том то обучая скор функцию мы в общем случае приближаем некоторое матожидаемое представление шумной картинки на шаге t. Более того, вариации дисперсии на разных шагах позволяет моделировать разные плотности вероятности (красивые картиночки с облаками на постере и в статье). Практических выводов не будет, мы просто преисполнились пониманием и можем идти дальше
🔥6👍51
ICLR’25 poster session 4

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

SANA: Efficient High-Resolution Text-to-Image Synthesis with Linear Diffusion Transformers

Одна из моих любимых работ прошлого года. По сути, это тех. репорт про первую text-to-image модель от Nvidia, в которой сделали ставку на скорость генерации и возможность делать 4к картинки «из коробки». Во время выхода я сделал фокус на Deep Compression Autoencoder (разбор), постер с которым будет завтра

Сегодня же наконец спросил у авторов почему у них все-таки трансформерный денойзер. Свёртки по-прежнему учатся быстрее, а ведь это то что надо для эффективной модели! В ответ получил что-то вроде «трансформеры - хайп, плюс решили не париться и делать как другие». Чтож, ресерчеры тоже люди, простим эту маленькую слабость

Eliminating Oversaturation and Artifacts of High Guidance Scales in Diffusion Models

Делая Classifier-Free Guidance, мы комбинируем результаты conditional и uncodnditional генерации. Авторы замечают, что повышение значений CFG увеличивает амплитуду значений латентов, что вызывает широко известную проблему oversaturation. Поняв проблему, авторы предлагают алгебраическое решение - разложим разложим добавку на параллельную и ортогональную матрицы и проанализируем что они делают. Оказывается, что параллельная общего качества не добавляет и как раз, в основно, отвечает за oversaturation. Решение - элегантно выкинуть её и дело с концом. Также в работе предлагается небольшой тюнинг оставшейся добавки, но я не вникал, кажется не критично

Бедолагу у постера было даже чуть жалко. Метод так прост, что все врубались и уходили за пару минут и ему оставалось стоять в гордом одиночестве ☔️

Fluid: Scaling Autoregressive Text-to-image Generative Models with Continuous Tokens

Мульти-модальная моделька с непрерывным кодированием картинок. По сути, это MAR с несколькими хаками вроде изменения порядка генерации картиночных эмбедов. У работы уже успел выйти сиквел UniFluid с достойным качеством генерации. Его мы вспоминали в обзоре подходов к мульти-модальной генерации (тык)

Подтверждает, что основная интуиция проблем с токенизацией VQ-GAN компьютом не лечится: compression ratio такого кодирования слишком высок, из-за чего становится просто невозможным нормально реконструировать изображения. Это вносит ограничения на качество генерации. Также обсудили архитектурный момент с использованием линейной головы для диффузионного семплирования. На практике, есть смысл использовать голову побольше и мб даже сверточную (а-ля U-Net), но начинается размен скорости на качество. Касательно замеров в статье, просил на GenEval не смотреть потому что он слишком плохо коррелирует с реальностью 🫡

Revisiting text-to-image evaluation with Gecko: on metrics, prompts, and human rating

Аналитическая статья про метод и датасет для оценки качества сгенерированных картинок. Основной фокус делается на текстовой релевантности. Помимо side-by-side сравнений предлагается использовать разметку по отдельным словам и ответы на вопросы. Утверждается, что сам процесс разметки хорошо масштабируется через Gemini, а предложенный бенчмарк имеет иерархическую структуру и задачи разной сложности, что может быть интересно для эвала более мощных моделей.

Автор говорит, что они сами использовали этот бенчмарк для обучения своих text-to-image моделей. Ещё в их опыте релевантность почти всегда главная характеристика качества, хорошо коррелирующая с другими характеристиками, например эстетичностью. Звучит чуть необычно
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍3🔥1
ICLR’25 poster session 5

Проснулись, потянулись, пошли читать новую порцию постеров

HART: Efficient Visual Generation with Hybrid Autoregressive Transformer

Развивают идею MAR в сторону ортогональную Fluid (см. обзор poster session 4). Вместо того чтобы полностью отказываться от дискретизации картинок, авторы предлагают учить residual добавку с дискретным токенам, которая будет помогать восстанавливать высокочастотные детали. Сама генеративная модель все еще предсказывает дискретные картиночные токены, которые далее доуточняются отдельной диффузионной головой.

У подхода есть плюсы и минусы относительно ветки развития Fluid. С одной стороны, диффузионное предсказание только residuals упрощает задачу и уменьшает компьют на её решение. С другой стороны, это не сильно важно из-за того что основная тяжесть инференса все равно лежит на авторегрессионном генераторе, при этом текущая схема инженерно сложнее

Deep Compression Autoencoder for Efficient High-Resolution Diffusion Models

Когда в первый раз увидел статью (разбор), мне было не понятно несколько технических моментов, которые теперь прояснились. Ниже Q&A с автором:

Q: почему не релизнули f16 версию модели?
A: потому что в голове держали диффузионные трансформеры, которые на входе бьют картинку на патчи размером 2х2, то есть уже делают как бы f2 даунскейлинг. Они же делали автоэнкодер для SANA где этот блок убрали, поэтому формально модель стала f16

Q: как поняли, что надо делать именно такие residual connections?
A: в статье на графике 2а показано как разменивая глубину на число каналов при сохранении числа вокселей падает качество. Это дало интуицию о том что проблема текущих архитектур, скорее всего, в оптимизации

Q: почему дообучали с GAN лоссом только верхний кусочек декодера?
A: потому что настрадались со стабилизацией обучения + относятся к адверсариальному лоссу как к способу улучшения прорисовки мелких деталей

Scaling Diffusion Language Models via Adaptation from Autoregressive Models

Внимание, статья не про картинки. Авторы задают простой вопрос: если мы хотим обучать дискретную диффузию для генерации текстов, полезно ли стартовать с LLM претрена? Трудно удивиться тому что да, полезно. Замеры показывают, что дообученная на диффузию модель все ещё проигрывает бейзлайну на некоторых бенчмарках, однако качество получается более-менее разумное

Зачем нужна диффузия для генерации текстов? Во-первых, она позволяет генерировать сразу много токенов за раз, что теоретически должно уменьшать test time compute. Во-вторых, полезно для задач планирования, когда нужно предсказывать не только следующий, но и некоторые промежуточные токены
👍51