Concise Research
1.13K subscribers
242 photos
223 links
Исследования AI глазами исследователя
Автор: @snk4tr Сергей Кастрюлин
Download Telegram
On Improved Conditioning Mechanisms and Pre-training Strategies for Diffusion Models
[NeurIPS’24, кода/весов нет]

Одна из основных проблем в исследовании диффузионок - отсутствие полноценных сравнений между компонентами разных подходов. Большинство крупных релизов (SD разных версий, EMU, Imagen etc.) сопровождается тех. репортом, в котором поменяно всё сразу. В DL мы занимаемся построением моделей по данным и понятно, что они оказывают ключевое влияние. Но как быть с остальными компонентами системы: архитектурой, постановкой диффузии, кондишенингом?

Авторы воспроизводят кучу моделей для “наведения порядка” хотя бы на публичных датасетах, фиксируя компьют, постановку диффузии и гиперпараметры для честного сравнения. Далее основные выводы.

Архитектура
Сравнивали, выровняв по параметрам:
— U-Net из SDXL
Ванильный DiT
— Masked DiT (mDiT-v2)
PixArt DiT
— mmDiT из SD3
Все модели текст-кондишенили на CLIP ViT-L/14, обучение DiT’ов стабилизировали используя RMSNorm.
По FID почти всюду победила архитектура mmDiT. Интересно, что ранее в работе по Scaling Laws уже отмечали эффективность SDXL U-Net’a. Видимо, в Stability годные спецы по архитектурам.

Кондишенинг
Тут авторы наворотили знатно, адресуя сразу несколько вопросов:

1️⃣ Использование control conditions (это когда в модель подаётся доп инфа про размер картинки/кропа и тд).
— Лучше подавать не бинарно (обычно вес выставляют в 0 или 1), а по косинусному расписаню, где ближе к шуму вес максимальный
— Лучше не использовать сомнительные аугментации вроде флипов даже если вы явно даёте это знание модели потому что может ломаться сответствие картинки с текстом
— Аугментации кроппингом могут быть полезны если размер явно подать согласно расписанию

2️⃣ Текстовый conditioning.
— Стандартно CLIP кодирует в 77 токенов, некоторые тексты могут быть короче. Обычно, в таких случаях последовательность падят нулями. Предлагается noisy replicate padding - копируем (часть) токенов, чуть зашумляем, stonks 📈

Обучение
— Файнтюниться под целевое распределение полезно даже если у вас самый широкий и разнообразный претрен (ImageNet22k)
— Полезно разбивать претрен на стадии по разрешению: сначала учимся на лоу резах, потом на хай резах 🎵
— Кропать лоу резах и хай резах нужно по-разному из-за разного среднего размера объектов на картинке
— Для высоких разрешений полезно пошатать расписание шума (вспомнилась Simple Diffusion)
— Подбор позиционных эмбедингов улучшает динамику обучения

Итого
Аккуратное, в меру интересное сравнение разных компонентов диффузионного пайплайна. Как всегда не понятно насколько это переносимо на обучения с датасетами из О(1В) семплов и замерами на human eval вместо FID.
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥2❤‍🔥1👍1
Давайте поговорим про GAN.
В последнее время принято друг за другом повторять: GAN — парадигма прошлого, диффузия и авторегрессия рулят. Тем не менее, даже сейчас, не смотря на доминирование диффузии в text-to-image, GAN находят применение в Super Resolution и обучениях VAE, а также используются в методах дистилляции (ADD) и альтернативных архитектурах диффузии (PaGoDa). При этом, GAN имеют очевидные проблемы. Работы ниже конректизируют проблемы и предлагают способы их решения.

Towards a Better Global Loss Landscape of GANs
[NeurIPS 2020, код/веса]

Авторы выделяют две основные проблемы при обучении GAN:
1. Mode collapse —падение разнообразия генераций)
2. Divergence — расхождение процесса обучения

Для этого проводят анализ поверхности лоссов наиболее популярных вариантов GAN.
Предлагается поделить все GAN на два семейства по типу используемых лосс функций:
1. Separable-GAN — почти все популярные GAN, где D независимо оценивает правильность real/fake примеров. Сюда относят классические JS-GAN, W-GAN
2. Relativistic-GAN — модели, в которых D оценивает реальность fake примера относительно соответствующего ему real примера. Основной пример - RpGAN.

Авторы показывают, что эта разница принципиальна. Separable-GAN работает в предположении, что все real и fake данные можно разделить одной границей. Тогда задачей G становится минимальный перенос fake примеров за эту границу. Таких решений экспоненциально много, многие из них вырождены, что и приводит к проблемам. В то же время, авторы показывают, что обучение Relativistic-GAN такой проблемой не обладает, а каждый минимум является глобальным.

The GAN is dead; long live the GAN!
A Modern Baseline GAN

[NeurIPS 2024, код]

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

Вклад этой работы в том что авторы:
1️⃣ Анализируют то какие именно регуляризации полезны для RpGAN, получается, что это комбинация R1 + R2 (gradient penalty для D и G), называют модель R3GAN
2️⃣ Обнуляют все трюки из StyleGAN2, после чего заново подбирают и аблейтят архитектуру

На выходе получают модель с ResNeXt-ify архитектурой для G и D и отстутствием каких-либо трюков кроме RpGAN + R1 + R2 лосса. Финальная версия улучшает FID на FFHQ 256 c 7.52 до 7.05 при сохранении размеров G и D.

Итог
Очень нравятся работы про раздебаг и упрощение систем, когда вместо yet another заплатки находят и устраняют проблему. Переносимость результатов на смежные задачи и бОльшие масштабы требует доп. проверки.
🔥94❤‍🔥1👍1
Reconstruction vs. Generation: Taming Optimization Dilemma in Latent Diffusion Models
[код и веса]

Выбор представления для обучения латентной диффузии - важнейший фактор качества и скорости обучения модели.

Более высокая размерность
латентного пространства улучшает качество реконструкции. Обычно она достигается путём увеличения числа каналов. VAE первых моделей семейства SD имели 4 канала, у FLUX и SD3 уже 16, а SANA - 32.

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

Интересно, что проблемы связанные с большой размерностью ранее обсуждали в основном для дискретных токенизаторов. Для них известно, что большие кодбуки плохо утилизируются. Авторы этой работы анализируют распределение латентов непрерывных VAE и приходят к такому же выводу. Идея работы в том чтобы заалайнить латенты с фичами visual foundation model, тем самым улучшив их качество с точки зрения обучения на них генеративных моделей.

Метод
Основной вклад работы - двухкомпонентный лосс, который алайнит VAE латенты Z с фичами DINOv2 F. Для этого Z линейно отображают в размерность F получая Z’, после чего:
1️⃣ Поэлементно минимизируют косинусное расстояние между Z’ и F
2️⃣ Минимизируют разницу косинусных расстояний между элементами Z’ и F

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

Эксперименты
За основу берут ванильный LDM сетап с VQ-GAN токенизатором (f16d32, f16d16), но без квантизации. На его латентах учат DiTы от 0.1B до 1.6В c полным фаршем из RF, подбора adam.beta2, bfloat16 и RMSNorm для стабилизации, SwiGLU и RoPE. Полученная серия моделей LightningDiT сходится к FID 1.35 на ImageNet 256, причем значение 2.11 получается всего за 64 эпохи.

Выводы
В статье настораживает почти полное отсутствие примеров реконструкций предложенных VAE и аблейшенов влияния примочек для DiT на рост качества относительно бейзлайнов. Нравится движение в сторону недоизученной темы оптимальных пространств для обучения генеративок
👍42❤‍🔥1🔥1
Forwarded from CV Time
Недавно инженеры из Яндекса вместе со Школой анализа данных провели открытый онлайн-интенсив по компьютерному зрению и рассказали о генеративных диффузионных моделях.

Получилась крепкая база для ML`щика — с понятными видеолекциями и практическими разборами.

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

Приятного чтения и увлекательного просмотра!
🔥7👍63❤‍🔥1
Goku: Flow Based Video Generative Foundation Models
[страница проекта, код модели]

Партия выдать одна кошка жена новый техрепорт по text-to-image+video от небезызвестных ByteDance. У ребят не очень получается определиться с тем как называть свою компанию в разных pdf’ках, но чтиво они выдают занятное. Сначала хайпанули на Infinity (рекомендую разбор КПД), теперь решили не отставать от тренда на joint image+video который мы обсуждали выше.

Goku сочетает в себе набор уже известных лучших практик:
Массивные фильтрации данных включая эстетичность и техниеское качество для получения видео и картиночных претрен датасетов с Tarsier2 и InternVL2.0 текстами на 36М и 160М пар соответственно
2B и 8B трансформеры на базе GenTron с full cross attn обученные с Rectified Flow (как в SD3) и FLAN-T5 XL текстовым энкодером. Основной профит от увеличения размера модели - улучшение консистентности и уменьшение дефектности генераций
3D VAE от CogVideoX (да, я тоже впервые про них слышу) с х8 пространственным и х4 темпоральным скейлинг фактором. Как и в случае MovieGen, картинки рассматривают как видео из 1 кадра
Отдельное внимание ByteCheckpoint и оптимизированному пайплайну MegaScale, позволившим достигнуть высокой стабильности и утилизации железа

Само обучение разбивают на стадии по целям и разрешениям:
1️⃣ Сначала выучивают базовую семантику и понимание концептов на картинках
2️⃣ Продолжают претрен в joint image+video режиме
3️⃣ Завершают отдельными файнтюнами на генерацию картинок и видео.

В подготовке данных меня заинтересовал процесс перебаллансировки. Видео данные классифицируют на 9 классов и 86 подклассов. Авторы видят, что клипы включающие позы человека моделировать сложнее всего, поэтому датасет перебалансируют так чтобы классы относящиеся к людям были более представлены. Видео из менее приоритетных классов андерсемплят.

Круто видеть как ByteDance создают свою Open Source инфраструктуру. Бóльшая часть использованных в этой работе составных частей сделана ими же и выложена в открытый доступ.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥105❤‍🔥1👍1
Step-Video-T2V Technical Report: The Practice, Challenges, and Future of Video Foundation Model
[код, веса]

Моделей генерации видео становится всё больше, постоянные новые релизы уже вызывают путаницу. Этот тех. репорт мне понравился тем что авторы сделали обзор последних работ в области, после чего продвинулись по самым приоритетным направлениям. В результате получилась самая большая (30В параметров) и, при этом, довольно эффективная open source система. Рассмотрим ключевые элементы системы.

🔜Video-VAE
SOTA модели генерации видео (Hunyuan, CogVideoX, MovieGen) используют VAE с x8 пространственным и х4/х8 темпоральным scaling factor (SF). В целом, про х8 пространственный SF ничего плохого сказать нельзя, это наиболее частый выбор и в картиночной генерации. Если повысить SF, то можно ускорить генерацию и увеличить размер модели-денойзера благодаря уменьшению размера активаций. Это уже было замечено в работе DC AE, который использовался в SANA.

Основная фишка для стабилизации обучения глубокого автоэнкодера - residual connections к энкодере и декодере для “проброса” высокочастотной ближе к ботлнеку. Этот трюк из DC AE используется и здесь для получения VAE с x16 пространственным и x8 темпоральным SF. Обучают в несколько этапов, постепенно увеличивая разрешение и добавляя в конце GAN лосс

🔜Архитектура и обучение
Тексты кодируются двумя энкодерами:
- CLIP-like моделька с ограничением в 77 токенов умная, но не поддерживает длинные последовательности
- Проприетарная LLM с 3D-RoPE для всего что подлиннее

Сам денойзер - это DiT с full cross-attn для эффективности, AdaLN и QK-Norm для стабилизации обучения. Модельку на 30В параметров предобучают несколько месяцев на тысячах H800 на Flow Matching, после чего тюнят с DPO. Примечательно, что реворд модели переобучают несколько раз в ходе одного RLHF цикла по мере “устаревания” их сигнала.

🔜Инфраструктура обучения
Работы по моделями LLaMA задали тренд на включение секций про инфраструктурные навороты, позволяющие собирать и хорошо утилизировать большие GPU кластера. На моей памяти, этот тех. репорт первый в таком роде в области картинок и видео, вопросам инфры посвящено 7 страниц довольно детализированного описания того как достигали 99% uptime обучений в течение нескольких месяцев. Всё описывать не берусь, но особенно мне понравилась часть про автоматическое детектирование и вывод фейлящихся нод из обучения, что устраняет >80% падений и рестартов обучений.

🔜Данные и стратегия обучения
Пайплайн подготовки данных изобилует разного рода фильтрациями и, в целом, напоминает Goku, которую разбирали выше. Выбивается эта работа количеством данных - “2B video-text pairs and 3.8B image-text pairs” 🤯. Обучение же стандартно бьется на несколько стадий, где сначала учатся на лоу рез картинках, потом лоу рез видео и в конце на хай рез видео. Вопросы вызывает то как денойзер после x16 даунскейла 192px видео вообще понимает что там в этом видео происходит 🤔

🔜Discussion
Интересно, что не смотря на крутую инфру и кучу данных, авторы заморочились про компьют эффективность и многие решения (например выбор DiT вместо MMDiT) приняли на основании более высокой эффективности. А еще, не смотря на большой размер модели, данных и компьюта, модель все равно фейлится на комплексных промтах с несколькими концептами и не очень понимает физику сложных процессов (например, последовательные отскоки мяча от пола). Авторы считают прогресс по этим направлениям наиболее насущными в ближайшем будущем.

Работа оч классная, а open source релиз модельки должен двинуть область вперед
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83❤‍🔥1🔥1
Diffusability of Autoencoders

Латентная диффузия (LDM) - доминирующая парадигма генерации картинок и видео. Фреймворк LDM состоит из автоэнкодера (AE), кодирующего картинки или видео в латенты и диффузионного денойзера, который учат эти латенты расшумлять, а после - генерировать.

Большинство работ в контексте LDM посвящены диффузии, однако АЕ - не менее важный компонент системы. Энкодер АЕ задаёт распределение, которое выучит диффузия, а декодер определяет верхний предел качества реконструкции.

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

Improving the Diffusability of Autoencoders

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

Инструменты анализа
Для оценки количества высоких частот авторы используют discrete cosine transform (DCT). Этот метод позволяет закодировать информацию последовательностью, каждый элемент которой хранит информацию о том сколько блоков картинки (или латента) содержат ту или иную частоту. Результат очень напоминает кодирующую матрицу JPEG, а её линеаризованный вариант - основа для большинства графиков в статье.

Анализ
Используя DCT, авторы показывают что:
🔜Современные картиночные (FluxAE, CMS-AE) и видео (CogVideoX-AE, LTX-
AE
) АЕ делают латенты более высокочастотными чем исходные картинки
🔜Использование KL этому никак не препятствует
🔜Увеличение числа каналов в латентах делает проблему более выраженной

Метод
Авторы считают, что моделям АЕ выгодно амплифицировать высокие частоты в латентах потому что качество их декодирования - ключевой критерий успеха обучения моделей. Для борьбы с этим предлагается простая регуляризация: давайте одновременно с подсчетом L1 и KL делать даунсемплинг (интерполяцию вниз) картинки и добавлять L1 для её реконструкции слагаемым в лосс. Таким образом зафорсится Scale Equivariance, которая будет мешать амплификации высоких частот

Эксперименты
Обучая разноразмерные DiT’ы поверх нескольких АЕ потюненных с регуляризацией, существенно снижаются FID/FDD и выравниваются DCT спектры. Сам тюн занимает всего 10к итераций с bs=32, что реально быстро и не дорого.

EQ-VAE: Equivariance Regularized Latent Space for Improved Generative Image Modeling

Интуиция
Авторы также замечают, что у современных АЕ отсутствует scale и rotation equivariance, однако их интуиция о том почему это плохо заключается в том что семантически близкие картинки не переводятся в семантически близкие латенты, что усложняет структуру латентного пространства, на которой учится диффузия

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

Эксперименты
Сетап и результаты похожи на описанные в предыдущей статье, хотя значения прироста FID чуть менее громкие. В сапмате интересные визуализации того как после файнтюна латенты становятся более гладкими

▶️ Discuss?
Всегда интересно, когда одновременно выходит несколько работ про примерно одно и то же. Это сильно повышает вероятность того, что в сказанном что-то есть
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥122❤‍🔥1👍1
VaViM and VaVAM: Autonomous Driving through Video Generative Modeling
[код и веса]

Окей, мы научились генерировать видосики, но нужны ли они кому-то кроме Тиктока? Оказывается, агенты-планировщики для автономного вождения можно обуславливать на предсказания следующих кадров, насыщая тем самым perception-to-action pipeline. Повосхищаться тем как это может быть устроено предлагаю на примере тех. репорта от valeo.ai (о которых я тоже слышу первый раз)

Метод
В основе системы лежат две модели:
- VaVAM - авторегрессионная трансформерная моделька покадровой генерации видео. Она обучается первым делом, после чего её предсказания используют в качестве условия для работы следующей модели
- VaViM - трансформерная flow matching моделька, которая предсказывает траекторию движения на основании предшествующих действий с и окружения О. Часть О - это кадры проезда несколькими секундами ранее, а часть - предсказанные с помощью VaVAM

Механизм работы системы представлен на приложенной к посту схеме:
▶️Action Encoder в виде MLP объединяет в себе траекторию на предыдущих шагах, соответствующие команды (поворот направо, поворот налево и тд) и диффузионный timestep t
▶️Action Transformer замешивает полученные эмбединги с увиденными и предсказанными кадрами, используя схему маскирования нарисованную справа
▶️Action Decoder - линейный слой, отображающий эмбеды в итоговую траекторию — набор координат (x, y), соответствующих положению автомобиля

Обучение
VaViM сначала обучают на OpenDV — наибольшем из доступных датасетов с записями проездов машин без какой-либо доп разметки. Затем генеративку тюнят на смеси OpenDV с nuPlan и nuScenes, которые сильно меньше, но содержат доп разметку о действиях и траекториях

Перед обучением использовали mu-P для исследования scaling laws видео модели. Всего за 10k GPU часов авторы подбирают коэффициенты степенной функции для масштабирования архитектуры, данных, LR и BS, с которыми далее проводят все эксперименты

Закончив обучения видео модели, переходят к обучению агента VaViM, используя данные о действиях, окружении и траекториях из nuPlan и nuScenes. Здесь используется ванильный flow matching для предсказания координат траектории движения.

Использование одних и тех же датасетов на финальной стадии обучения обеих моделей позволяет минимизировать сдвиг распределения между ними.

Замеры и результаты
О качестве генерации авторы судят по покадровому FID, что вызывает некоторые вопросы, особенно учитывая схожесть и однообразие последовательных кадров.

Также смотрят на пригодность фичей модели-агента для семантической сегментации. По качеству они все еще проигрывают DINO, но все же выделяют что-то разумное

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

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

А еще к таким работам всегда возникает вопрос: действительно ли важна в данной системе генеративная компонента? Может быть аккуратное использование self-supervised фичей или дискриминативной авторазметки поверх прошлых кадров. К сожалению, в статье это не исследовалось
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥21
Do generative video models
understand physical principles?

[бенчмарк]

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

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

Один из подходов к решению проблемы — сделать такой тест, который сделает невозможным правильный ответ без понимания общих принципов.

Созданием такого теста (бенчмарка) и методологии его использования описаны в этой работе. Авторы предлагают набор из 396 аккуратно собранных видео длиной 8 сек, покрывающих 66 физических сценариев и принципов от оптики до термодинамики и магнетизма. Фишка бенча в том что состоит не из синтетических видео. Сдвиг распределения между реальными видео и синтетикой вносил много шума в попытки сделать подобное исследование в прошлом

Методология
▶️Для video2video моделей, первые 3 сек видео подаются как условие и дальше модель генерит оставшиеся 5 сек
▶️Для image2video, берётся некоторый опорный кадр, который должен быть достаточно информативен для продолжения видео
▶️В обоих случаях, генерация сопровождается промтом, который описывает происходящее, но не говорит про исход

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

Замеры
Качество генераций замеряют у 2 video2video (VideoPoet, Lumiere) и 6 image2video (Runway Gen 3, VideoPoet, Lumiere, SDVideo, Pika 1.0, Sora) моделей

Физичность предсказаний оценивают по совпадению генераций с реальными видео автоматически. Метрики основаны на аккуратно подобранных вариациях IoU, которые проверяют, что в ходе видео в нужное время в нужной степени меняются нужные объекты

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

Выводы
▶️Современные модели, в целом, плохо понимают физику
▶️Video2video модели понимают физику лучше чем image2video
▶️Наиболее реалистично и наименее физично генерирует Sora
▶️Реалистичность генераций и понимание физики антикоррелированны

В целом, авторы верят в то что в будущем удастся понять физику через предсказание следующего кадра
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥91
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