Sharing my thoughts, discussing my projects, and traveling the world.
Contact: @borz
Last updated 1 week, 4 days ago
Telegram stands for freedom and privacy and has many easy to use features.
Last updated 1 week, 5 days ago
Official Graph Messenger (Telegraph) Channel
Download from Google Play Store:
https://play.google.com/store/apps/details?id=ir.ilmili.telegraph
Donation:
https://graphmessenger.com/donate
Last updated 5 months ago
До начала октября 2024, генерация картинок и видео существовали как области, которые не объединяло ничего кроме вялого перетекания идей. Одновременное появление сразу трёх работ на стыке модальностей намекает на актуальность. Подходы разные, давайте разбираться.
Movie Gen: A Cast of Media Foundation Models
Топовый тех. репорт от экстремистов с кучей технических подробностей. Детали разобраны тут и в подробном повторении не нуждаются. Сейчас нам интересно, что этот подход наиболее простой и естественный: чуть адаптируем LLAMA трансформер, обучаем Video-VAE, а дальше учим end-to-end диффузию сначала на картинках (воспринимая их как видео из одного кадра), потом на видео с постепенным увеличением разрешения. Минус в том что подход для богатых: предлагается учить 30В модельки на 6500 H100.
JVID: Joint Video-Image Diffusion for Visual-Quality and Temporal-Consistency in Video GenerationАкадемические исследователи предлагают разменять баснословный компьют на усложнение семплирования. Вместо обучения единой модели предлагается отдельно учить картиночную и видео модели и комбинировать за счет предложенного механизма попеременного семплирования. Работает это в случае если для обеих моделей прямой процесс задан одинаково. Для обучения используют всего 64 A100, но и качество/разрешение тут более скромные. Насколько хорошо подход обобщается на масштабы SOTA моделей не ясно.
Pyramidal Flow Matching for Efficient Video Generative Modeling
[код, веса]~~Вижу флоу матчинг - ставлю лайк~~. Хайпанувшая работа где китайский студент за ~~плошка риса~~ 20к ГПУ часов собирает космолёт, порождающий весьма консистентные видосики. В методе есть всё:
- Модная диффузия позволяет интерполировать между разрешениями. Это позволяет экономить на расшумлении близких к полному шуму латентов низком разрешении и только финальных шагах в высоком
- Авторегрессионная компонента позволяет лучше сохранять консистентность кадров. Для этого прошлые кадры в низком разрешении используются в качестве условия для генерации текущего кадра.
Благодаря такой архитектуре можно воспринимать отдельные кадры как картинки или подавать в модель в качестве первого кадра произвольное изображение и делать image-to-video.
- Трансформеры, эффективность, код, аблейшены.
Опыт говорит, что простота метода побеждает оптимизацию вычислительной сложности, но время покажет.
Deep Compression Autoencoder for Efficient High-Resolution Diffusion Models
[код обучения и инференса, веса]
Вслед за КПД, уже разобравшим эту работу с акцентом на мотивацию и эксперименты, предлагаю свой взгляд.
Прежде, основной фокус диффузионных команд был направлен на улучшение генеративной модели, а латентное пространство всегда формировали с помощью x8 SD-like автоэнкодера (АЕ). Вообще, х8 - это уже довольно много, но все же 4к генерации не сделаешь из-за того что латентной диффузии прийдется работать в разрешении 512, что долго/дорого.
Работа хороша тем что предлагаются фиксы конкретных проблем, а не просто yet another модель, которая почему-то магически работает.
Хотелки, проблемы и решения
1️⃣ Хотим х32, х64, х128 АЕ
Проблема: если наивно настакать слоёв, возникают проблемы с оптимизацией: добавление каждого следующего блока ухудшает качество реконструкции по rFID
Решение: добавим space-to-channel операцию и residual connection.
Суть в том что обычный residual connection - это сложение или конкатенация с активацией с тем же пространственным разрешением. Но в AE разрешение изменяется х2 после каждого upsample/downsample блока. Поэтому предлагается делать reshape + поканальное усреднение чтобы получить отображение: [H, W, C] \-> [H/2, W/2, 2C]
. Сами по себе residuals добавлять нужно, но открытым остаётся вопрос насколько важно использовать именно такую реализацию (ablations нету)
2️⃣ Хотим хорошую обобщаемость между разрешениями. То есть наш АЕ должен одинаково хорошо реконструировать и 512 и 4к картинки
Проблема: дорого (или даже невозможно) адаптировать через обучение на 4к картинках, а по-другому не обобщается (низкое качество реконструкции)
Решение: разобьем обучение на три стадии:
- Учим всю сеть С L1 + perceptual лоссами на low rez картинках
- Учим всю нижние блоки АЕ с L1 + perceptual лоссами на high rez картинках
- Учим последнюю свертку декодера с GAN лоссом
У каждой стадии своя цель, но сводится всё к тому чтобы избежать обучения всей модели с GAN лоссом потому что, по утверждениям авторов, это плохо влияет на латентное пространство.
В экспериментах, авторы учат class-cond и text-cond генерацию на разрешениях 512 и 1024, получают не идеальные, но достойные картинки при ускорении up to x19 за счет снижения размерности лантентов. Особенно сильно это бустит трансформерные архитектуры денойзеров, ведь теперь не нужно выбрать большой patch size для того чтобы удешевить attention.
Очень любопытно сменит ли эта модель тренд на то за счет чего достигается ускорение в диффузионках.
Sample what you can’t compress
[Google и xAI код не выкладывают]
Картиночные автоэнкодеры (АЕ) используются для обучения диффузионных и авторегрессионных моделей на их скрытых представлениях. При этом, для обучения самих АЕ, обычно используют комбинацию реконструкционных лоссов (L1, L2, LPIPS, DreamSIM, DISTS etc.) и GAN лосса. Добавление GAN лосса делают для увеличения четкости и реалистичности, без него реконструкции получаются размытыми.
Авторы задаются вопросом: если диффузия сейчас основная генеративная парадигма, почему мы все еще учим АЕ с GAN лоссом?
Может показаться, что статья просто про замену GAN на диффузию -> stonks 📈 (зумеры переизобрели писксельную диффузию в пространстве высокой размерности).
На самом деле это не совсем так. Обратим внимание на основную схему: на ней есть два декодера и оба важны для качества и сходимости. D_refine - это U-Net, действительно представляющий собой пиксельную диффузию. Но важно, что он также обуславливается на выход D_refine, то есть на результат кодирования-декодирования AE. Мне это напоминает то как работают диффузионные SR модели (SR3), в которых к основному входу x_t приконкачивают бикубик апскейл LR картинки y.
Использование условия на выход D_init имеет и другой плюс - можно использовать CFG. Для этого в ходе обучения условие дропают в 10% случаев, а на инференсе экспериментально подбирают оптимальный CFG scale, что в итоге улучшает качество.
В экспериментах авторы проверяют, что их AE приводит:
- К более хорошим реконструкциям, особенно на высоких степенях компрессии (когда мало каналов в латентах);
- К более качественным (по FID) class-cond диффузионкам, обученным на этих латентах.
У подхода есть очевидный минус связанный с применением диффузии - увеличение стоимости обучения и инференса. А еще совершенно не ясно почему такое обучение даёт более хорошие латенты.
Еще несколько достойных внимания постеров с ECCV.
Появившаяся на архиве год назад и явно принятая с ресабмита аналитическая работа про то что методы удаления небезопасных данных (например NSFW контент) из диффузионок все еще несовершенны. Авторы показывают, что с помощью адверсариал атак можно доставать из моделей нежелательный контент даже если они был удален ранее каким-то простым методом.
Занятно, что совсем недавно мы разбирали статью, в которой авторы как раз предложили дообучать модели на семплах полученных адверсариал атаками, за счет чего лучше удаляли небезопасные данные и увеличивали робастность модели к генерациям подобного контента.
You Only Need One Step: Fast Super-Resolution with Stable Diffusion via Scale Distillation
Мы уже делали разбор этой статьи сразу после её выхода. На конфе удалось пообщаться с автором и узнать почему они все-таки делают диффузионный Super Resolution, а не дальше учат GAN’ы, ведь для этой задачи разнообразие генераций и равномерное покрытие мультимодальных распределений как будто не обязательно.
Интуиция в том что исходно диффузия дает более смазанные картинки. При этом, они могут выглядеть более естественно, особенно SR in the wild задачах где модель деградации сложная или неизвестная. Автор топит за то чтобы использовать диффузию для начального обучения и потом дотюнивать с GAN лоссом для комбинирования лучшего из двух миров, что звучит весьма разумно.
TIBET: Identifying and Evaluating Biases in Text-to-Image Generative Models
Метод оценки и выявления байесов генеративной модели. Основан на генерации концептных промтов LLM’кой и выглядит примерно так:
1. Определяем набор концептов (как правило, существительные)
2. Промптим LLM сделать нам промты для генераций с использованием концептов
3. Оцениваем результаты генераций с помощью VQA модели.
От себя добавлю, что с практической точки зрения перед тем как использовать VQA модель как метрику, хорошо бы убедиться, что она сама знает все нужные концепты :)
Это и подобные исследования интересны тем что помогают понять чему выучилась модель обучавшаяся на сотнях миллионах пар картинка-текст.
Кстати, если вам было бы интересно заняться подобным исследованием в топовой научной группе для SOTA text-to-image модели - приходите за деталями ко мне @snk4tr.
Sharing my thoughts, discussing my projects, and traveling the world.
Contact: @borz
Last updated 1 week, 4 days ago
Telegram stands for freedom and privacy and has many easy to use features.
Last updated 1 week, 5 days ago
Official Graph Messenger (Telegraph) Channel
Download from Google Play Store:
https://play.google.com/store/apps/details?id=ir.ilmili.telegraph
Donation:
https://graphmessenger.com/donate
Last updated 5 months ago