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 другой, но все еще ограниченный набор данных. Детерменированные представлерия такие как вейвлеты, в свою очередь, таким недостатком не обладают, да и считать их быстрее
Автор очень топит за свой подход и явно верит в то что сделал что-то полезное. Код выложен, можно на досуге попробовать, имея ввиду то что метрика будет более чувствительна к высокочастотным деталям. А ещё из-за этого её можно использовать как детектор сгенерированного контента
Ниже основные идеи нескольких заинтересовавших меня работ и комментариев от их авторов. Самое ценное для меня - понять интуицию, на которой базируется статья и ограничения, о которых не всегда пишут в тексте
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
👍10❤2
Если мотивация вашей работы выгляди не так - даже не зовите меня
ZooProbe: A Data Engine for Evaluating, Exploring, and Evolving Large-scale Training Data for Multimodal LLMs
ZooProbe: A Data Engine for Evaluating, Exploring, and Evolving Large-scale Training Data for Multimodal LLMs
😁4❤2
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 семплах и сравнить качество. Не отличается? Значит семпл бесполезный, выкидываем. Беда в том что провернуть такое для всего датасета - вычислительно неподъемная задача. Вместо этого авторы предлагают аппроксимацию такого процесса, позволяющий оптимизационно получить приближение модели без конкретного семпла.
Обсуждая работу с автором я уже довольно тёр ладошки думая как прилечу и задистиллю претрен данные, а потом понял, что для больших моделей их выражение просто не вычислимо. Чтож, хотя бы поговорили хорошо
Не все сессии одинаково информативны, но всегда находится что-то любопытное
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. Более того, вариации дисперсии на разных шагах позволяет моделировать разные плотности вероятности (красивые картиночки с облаками на постере и в статье). Практических выводов не будет, мы просто преисполнились пониманием и можем идти дальше
Хозяйке на заметку, в этот раз добавил пару статей которые интересные, но со спорной практичностью
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👍5❤1
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 моделей. Ещё в их опыте релевантность почти всегда главная характеристика качества, хорошо коррелирующая с другими характеристиками, например эстетичностью. Звучит чуть необычно
Тот случай, когда заболтался с авторами любимых статей и к нескольким отобранным постерам просто не успел подойти
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. Во-вторых, полезно для задач планирования, когда нужно предсказывать не только следующий, но и некоторые промежуточные токены
Проснулись, потянулись, пошли читать новую порцию постеров
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. Во-вторых, полезно для задач планирования, когда нужно предсказывать не только следующий, но и некоторые промежуточные токены
👍5❤1
ICLR’25 poster session 6
Заключительная постерная сессия этой конференции. На мой вкус самая слабая: большинство статей про очень небольшие трюки, несколько авторов не пришло, на месте одного из выбранных мной постеров вообще висела другая работа😳 Тем не менее, пару прикольных статей найти удалось. Дальше воркшопы, писать о которых, скорее всего, не буду
HD-Painter: High-Resolution and Prompt-Faithful Text-Guided Image Inpainting with Diffusion Models
Plug and play улучшения картиночного инпейнтинга с обуславливанием на текст и маску. Предлагается:
1. Перевзвештвать self-attn между замаскированным и не замаскированным регионом. Интуиция в том что обычно фон тянет на себя слишком много внимания, такой небольшой трюк это лечит
2. Регулировать степень стохастичности во время семплирования. По сути, найти некий режим между DDPM и DDIM
Проверяют на большинстве современных моделей. Для ребаттла даже Flux Inpainting завели. А еще ребята активно внедряют это в прод продуктов PixArt, что увеличивает шансы на то что у метода хороший баланс между сложностью реализации и приростом качества
Rare-to-Frequent: Unlocking Compositional Generation Power of Diffusion Models on Rare Concepts with LLM Guidance
Немного игрушечная работа про улучшение генерации редких концептов, допустим животных, изображения которых у вас в train датасете встречаются не часто. Предлагается на первых шагах генерации просто подменять концепт на любой более частный, с генерацией которого модель справляется хорошо. После нескольких шагов семплирования (на практике 5-6) можно обратно подменить концепт на исходный и завершить семплирование
Интуиция метода в том что на первых шагах важно направить генерацию по какой-то вероятной траектории, чтобы получить хотя бы отдаленно похожий низкочастотный образ результата. Далее можно его зарефайнит и модель может справиться с этим лучше просто потому что это более легкая задача
Интересно можно ли так же делать с текстами на редких языках: семплировать несколько шагов на английском, а потом переходить, например, на русский
Заключительная постерная сессия этой конференции. На мой вкус самая слабая: большинство статей про очень небольшие трюки, несколько авторов не пришло, на месте одного из выбранных мной постеров вообще висела другая работа
HD-Painter: High-Resolution and Prompt-Faithful Text-Guided Image Inpainting with Diffusion Models
Plug and play улучшения картиночного инпейнтинга с обуславливанием на текст и маску. Предлагается:
1. Перевзвештвать self-attn между замаскированным и не замаскированным регионом. Интуиция в том что обычно фон тянет на себя слишком много внимания, такой небольшой трюк это лечит
2. Регулировать степень стохастичности во время семплирования. По сути, найти некий режим между DDPM и DDIM
Проверяют на большинстве современных моделей. Для ребаттла даже Flux Inpainting завели. А еще ребята активно внедряют это в прод продуктов PixArt, что увеличивает шансы на то что у метода хороший баланс между сложностью реализации и приростом качества
Rare-to-Frequent: Unlocking Compositional Generation Power of Diffusion Models on Rare Concepts with LLM Guidance
Немного игрушечная работа про улучшение генерации редких концептов, допустим животных, изображения которых у вас в train датасете встречаются не часто. Предлагается на первых шагах генерации просто подменять концепт на любой более частный, с генерацией которого модель справляется хорошо. После нескольких шагов семплирования (на практике 5-6) можно обратно подменить концепт на исходный и завершить семплирование
Интуиция метода в том что на первых шагах важно направить генерацию по какой-то вероятной траектории, чтобы получить хотя бы отдаленно похожий низкочастотный образ результата. Далее можно его зарефайнит и модель может справиться с этим лучше просто потому что это более легкая задача
Интересно можно ли так же делать с текстами на редких языках: семплировать несколько шагов на английском, а потом переходить, например, на русский
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤2🤔1
Как адаптировать LLM под генерацию картинок?
После того как мы поняли как интегрировать визуальную информацию в языковую модель (пост) и разобрали основные подходы для использования непрерывных представлений картинок такие как Fluid/UniFluid (ICLR’25 пост) и Transfusion (ICLR’25 пост + разбор), обсудим то как эффективно переиспользывать веса уже обученной LLM. Нашей целью будет получение максимального качества text-to-image (t2i) при минимальной потере качества text-to-text (t2t) генерации. Все это желательно за минимальное вычислительное время и без необходимости сильно тюнить гиперпараметры
Файнтюним предобученную LLM
В UniFluid так и делают, не приводя замеров того как падает t2t качество. В Transfusion учат модель с нуля на смешенных данных, но после разговора с автором (см. ICLR пост) стало понятно, что файнтюнить можно. Это более эффективно чем учить с нуля, но, к сожалению, для этого нужно аккуратно подбирать гиперпараметры: длительность файнтюна, оптимальное соотношение t2t и t2i данных, гиперпараметры обучения
Ниже две последовательно вышедшие, минимально отличающиеся работы. Воспринимаю это как знак того что в идее есть здравое зерно
LMFusion: Adapting Pretrained Language Models for Multimodal Generation
Работа развивает идею Transfusion и показывает как именно нужно допиливать предобученную LLM так чтобы не потерять качество t2t генерации. Файнтюном подход трудно назвать, поскольку на обучение LMFusion затрачивают ~50% костов претрена Transfusion, при этом качество t2i не портится и даже улучшается
Метод
▶️ Берём предобученную Llama-3 8B
▶️ Делаем полную копию весов, модифицируем self-attn так чтобы он был общим для обеих копий
▶️ Замораживаем текстовую часть, размораживаем картиночную
▶️ Учим как Transfusion:
1️⃣ Картинки нарезаем на кропы и переводим в латенты с помощью предобученного VAE
2️⃣ Латенты подаём в обучаемый эмбедер, переводящий латенты в размерности трансформера
3️⃣ После прохода через трансформер, мапим полученные картиночные эмбединги в латенты и декодируем VAE
4️⃣ Учим на взвешенную сумму авторегрессионного и диффузионного лоссов
А еще авторы пробуют использовать VLM (Llava) в качестве инициализации и это оказывается их лучшим подходом с точки зрения понимания и генерации картинок
X-Fusion: Introducing New Modality to Frozen Large Language Models
Чуть позже вышедшая статья с очень похожей идеей: давайте скопируем и заморозим веса LLM претрена, после чего разморозим и обучим один из них как Transfusion для генерации картинок. Отличие этой работы в том что они
▶️ Не делают shared self-attn между копиями весов и воспринимают их как полностью отдельные модели
▶️ Сравнивают разные варианты похожих схем инициализации и взаимодействия весов, то том числе вариант из LMFusion (называют его Dual Projection)
Интересное про последний пункт: FID в предложенном тут подходе сильно лучше чем в Dual Projection при почти полном совпадении остальных метрик, что чуть странно. Отсутствие прямой связи между моделями продают как увеличение гибкости подхода, что лично я не особо покупаю, потому что нам все равно нужно инициализироваться с LLM претрена. При этом удивительно, что за большую гибкость расплаты нет, метрики тоже лучше
Опционально авторы предлагают X-Fuse layer — прогоняем текстовые токены не только через текстовые, но и через картиночные веса. Это замедляет работу, но немного улучшает качество в терминах FID
После того как мы поняли как интегрировать визуальную информацию в языковую модель (пост) и разобрали основные подходы для использования непрерывных представлений картинок такие как Fluid/UniFluid (ICLR’25 пост) и Transfusion (ICLR’25 пост + разбор), обсудим то как эффективно переиспользывать веса уже обученной LLM. Нашей целью будет получение максимального качества text-to-image (t2i) при минимальной потере качества text-to-text (t2t) генерации. Все это желательно за минимальное вычислительное время и без необходимости сильно тюнить гиперпараметры
Файнтюним предобученную LLM
В UniFluid так и делают, не приводя замеров того как падает t2t качество. В Transfusion учат модель с нуля на смешенных данных, но после разговора с автором (см. ICLR пост) стало понятно, что файнтюнить можно. Это более эффективно чем учить с нуля, но, к сожалению, для этого нужно аккуратно подбирать гиперпараметры: длительность файнтюна, оптимальное соотношение t2t и t2i данных, гиперпараметры обучения
Ниже две последовательно вышедшие, минимально отличающиеся работы. Воспринимаю это как знак того что в идее есть здравое зерно
LMFusion: Adapting Pretrained Language Models for Multimodal Generation
Работа развивает идею Transfusion и показывает как именно нужно допиливать предобученную LLM так чтобы не потерять качество t2t генерации. Файнтюном подход трудно назвать, поскольку на обучение LMFusion затрачивают ~50% костов претрена Transfusion, при этом качество t2i не портится и даже улучшается
Метод
А еще авторы пробуют использовать VLM (Llava) в качестве инициализации и это оказывается их лучшим подходом с точки зрения понимания и генерации картинок
X-Fusion: Introducing New Modality to Frozen Large Language Models
Чуть позже вышедшая статья с очень похожей идеей: давайте скопируем и заморозим веса LLM претрена, после чего разморозим и обучим один из них как Transfusion для генерации картинок. Отличие этой работы в том что они
Интересное про последний пункт: FID в предложенном тут подходе сильно лучше чем в Dual Projection при почти полном совпадении остальных метрик, что чуть странно. Отсутствие прямой связи между моделями продают как увеличение гибкости подхода, что лично я не особо покупаю, потому что нам все равно нужно инициализироваться с LLM претрена. При этом удивительно, что за большую гибкость расплаты нет, метрики тоже лучше
Опционально авторы предлагают X-Fuse layer — прогоняем текстовые токены не только через текстовые, но и через картиночные веса. Это замедляет работу, но немного улучшает качество в терминах FID
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13❤3👍1😁1
Fast Autoregressive Models for Continuous Latent Generation
[кода нет, весов тоже]
Выше мы разобрались как обучать LLM-like модели для мультимодальной генерации, теперь поговорим про инференс. Дело в том что все современные подходы так или иначе используют диффузию для генерации и/или семплирования картинок. При этом:
▶️ В Transfusion (разбор), X-Fusion (разбор) и подобных семплированием занимается весь трансформер
▶️ В MAR, Fluid (ICLR постер) и UniFluid (обзорный пост) за семплирование отвечает только отдельная диффузионная голова
Обычно, диффузионная голова представляет собой всего несколько MLP слоёв, но даже в этом случае многошаговый денойзинг может занимать существенную часть времени на инференс.
В этой статье авторы показывают, что в ванильном MAR денойзинг занимает 63% общего компьюта на генерацию картинки. При этом, мы уже давно знаем как бороться с проблемами долгого инференса диффузии - например, с помощью consistency обучения или дистилляции. Весь пафос работы сводится к обучению головы на взвешенную сумму flow matching и consistency лоссов. Это позволяет сократить число шагов семплирования на инференсе со 100 до 8.
К экспериментам и результатам нужно относиться с долей скепсиса.
Во-первых, столь большая доля компьюта на семплинг получается из-за крошечного по современным меркам трансформера в MAR - всего ~600M параметров.
Во-вторых, всё это про генерацию в разрешении 256 и без обобщения на генерацию текстов.
В-третьих, авторы почему-то не выкладывают код/веса, хотя дифф относительно открытых артефактов MAR минимальный.
Также известно, что consistency дистилляция может давать более хорошие результаты чем обучение. Интересно будет посмотреть на первые дистиллы, когда они появятся
[кода нет, весов тоже]
Выше мы разобрались как обучать LLM-like модели для мультимодальной генерации, теперь поговорим про инференс. Дело в том что все современные подходы так или иначе используют диффузию для генерации и/или семплирования картинок. При этом:
Обычно, диффузионная голова представляет собой всего несколько MLP слоёв, но даже в этом случае многошаговый денойзинг может занимать существенную часть времени на инференс.
В этой статье авторы показывают, что в ванильном MAR денойзинг занимает 63% общего компьюта на генерацию картинки. При этом, мы уже давно знаем как бороться с проблемами долгого инференса диффузии - например, с помощью consistency обучения или дистилляции. Весь пафос работы сводится к обучению головы на взвешенную сумму flow matching и consistency лоссов. Это позволяет сократить число шагов семплирования на инференсе со 100 до 8.
К экспериментам и результатам нужно относиться с долей скепсиса.
Во-первых, столь большая доля компьюта на семплинг получается из-за крошечного по современным меркам трансформера в MAR - всего ~600M параметров.
Во-вторых, всё это про генерацию в разрешении 256 и без обобщения на генерацию текстов.
В-третьих, авторы почему-то не выкладывают код/веса, хотя дифф относительно открытых артефактов MAR минимальный.
Также известно, что consistency дистилляция может давать более хорошие результаты чем обучение. Интересно будет посмотреть на первые дистиллы, когда они появятся
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥1
Не всё коту масленица
Недавние посты были посвящены MLLM через комбинирование авторегрессии (AR) и диффузии. Может показаться, что эта парадигма полностью универсальна и без своих минусов. Это не так. Уже понятны как минимум две потенциальные проблемы:
1️⃣ Компьют.
Инференс таких моделей из коробки дороже чем у традиционных диффузионок, а их за не эффективность не пнул только ленивый
2️⃣ Exposure bias.
Разница на входе модели между реальными данными на обучении и синтетикой на инференсе создаёт сдвиг распределений
Проблему эффективности уже немного обсудили на примере статьи FAR постом выше.
Проблема exposure bias же давно известна как в AR, так и в диффузионных моделях, но имеет разный эффект:
➡️ AR в основном применяется на текстах, а в этом домене предсказанные моделью эмбеды всегда дискретизуются в токены. Дискретизация сглаживает мелкие ошибки в предсказании эмбедов и для современных моделей exposure bias - не большая проблема
➡️ В диффузии ошибка накапливается по шагам семплирования. Борьбу с ними мы обсуждали выше (раз, два). Сейчас нам важно, что простейший метод борьбы - просто дополнительно шумить входы модели во время обучения. Такая аугментация сглаживает ошибки и увеличивает робастность
Теперь две работы, которые борются с exposure bias в MLLM
Beyond Next-Token: Next-X Prediction for Autoregressive Visual Generation
[код и веса]
Делают очень похожее на то что описано выше для диффузии. Разница в том что вместо впрыскивания шума как аугментации подают на вход зашумленную картинку не только для текущего, но и для всех предыдущих уровней шума. Получается а-ля не марковская диффузия (flow matching)
Помимо этого в статье занятный аблейшен того как лучше патчевать и подавать картинки в модель. К теме поста не относится, но внимания стоит
Nexus-Gen: A Unified Model for Image Understanding, Generation, and Editing
[кода/весов нет, но обещают]
Метод в этой статье еще проще. Утверждение такое: мы же можем нормально сгенерировать эмбединг самого первого патча чисто из текстового контекста - значит и второй и все последующие сможем. Тогда давайте их просто маскировать. Уйдет источник сдвига (ошибки в предсказаниях) - уйдёт и сдвиг☕️
А вообще, это тех. репорт про новую мультимодалку на основе Qwen2.5-VL от Alibaba с описанием данных, архитектуры и стратегии обучения, но novelty тут именно в простом хаке для борьбы с exposure bias
Недавние посты были посвящены MLLM через комбинирование авторегрессии (AR) и диффузии. Может показаться, что эта парадигма полностью универсальна и без своих минусов. Это не так. Уже понятны как минимум две потенциальные проблемы:
Инференс таких моделей из коробки дороже чем у традиционных диффузионок, а их за не эффективность не пнул только ленивый
Разница на входе модели между реальными данными на обучении и синтетикой на инференсе создаёт сдвиг распределений
Проблему эффективности уже немного обсудили на примере статьи FAR постом выше.
Проблема exposure bias же давно известна как в AR, так и в диффузионных моделях, но имеет разный эффект:
Теперь две работы, которые борются с exposure bias в MLLM
Beyond Next-Token: Next-X Prediction for Autoregressive Visual Generation
[код и веса]
Делают очень похожее на то что описано выше для диффузии. Разница в том что вместо впрыскивания шума как аугментации подают на вход зашумленную картинку не только для текущего, но и для всех предыдущих уровней шума. Получается а-ля не марковская диффузия (flow matching)
Помимо этого в статье занятный аблейшен того как лучше патчевать и подавать картинки в модель. К теме поста не относится, но внимания стоит
Nexus-Gen: A Unified Model for Image Understanding, Generation, and Editing
[кода/весов нет, но обещают]
Метод в этой статье еще проще. Утверждение такое: мы же можем нормально сгенерировать эмбединг самого первого патча чисто из текстового контекста - значит и второй и все последующие сможем. Тогда давайте их просто маскировать. Уйдет источник сдвига (ошибки в предсказаниях) - уйдёт и сдвиг
А вообще, это тех. репорт про новую мультимодалку на основе Qwen2.5-VL от Alibaba с описанием данных, архитектуры и стратегии обучения, но novelty тут именно в простом хаке для борьбы с exposure bias
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥2❤1
Forwarded from CV Time
Yandex Alchemist: открытый датасет для буста text-to-image генерации
Раньше T2I-модели обучали в один этап — претрейн на большом, довольно грязном датасете интернет-данных. В 2023 году Meta в техрепорте EMU предложили делать файнтюн на маленьком датасете исключительного качества и за счёт этого существенно бустить результат генерации. Правда, они ничего не сказали о том, как такой датасет собрать.
Команда YandexART тоже занималась этой задачей, и сегодня мы делимся результатами своей работы — датасетом Alchemist. Он состоит из 3 350 пар «картинка-текст» и имеет лицензию Apache 2.0, пользуйтесь.
Alchemist сокращает дистанцию между крутыми потюненными закрытыми моделями и открытыми, для которых такой тюнинг недоступен. Ранее сообществу был доступен только пофильтрованный на эстетичность кусочек LAION и файнтюн-датасеты под узкий домен, например аниме или живопись. LAION часто не давал существенного прироста качества, а файнтюны под узкий домен ограничивали возможности генерации за его пределами.
Ниже мы подробно рассказываем, как получить датасет уровня Alchemist, имея лишь сырой набор интернет-данных. Отметим, что весь пайплайн — про картинки. Мы считаем, что так правильно: тексты потом лучше сгенерировать синтетические.
Итак, стартуя с датасета на 10 млрд примеров, мы выбрали картинки высокого разрешения без NSFW-контента и удалили те, что содержали вотермарки, имели низкое качество и были неэстетичны. Когда осталось примерно 300 млн изображений, дальнейшее выкручивание порогов фильтрации не помогало: модели недостаточно чувствительны, чтобы отделять хорошие картинки от великолепных. Выбирать руками лучшее из такого большого набора — тоже сомнительная затея.
На этом этапе мы предположили, что предобученная диффузионка может сама знать, какие картинки хорошие, а какие — не очень. Пробовали подходы из области dataset pruning, например, пропускать картинки через модель и смотреть на значение лосса. Оказалось, что так отбираются только самые простые изображения — абстрактные иллюстрации, вроде обоев на рабочий стол. В них немного деталей и их легко моделировать, но на файнтюне от них мало толку.
В итоге нам пришлось придумать свой метод, суть которого в следующем.
1. Возьмём 1000 картинок из наших 300 млн и разметим на условно плохие (LQ) и хорошие (HQ). Хорошими будем считать те, у которых высокие эстетичность и техническое качество, умеренная наполненность контентом.
2. Смастерим общий промт, который будет содержать перечисление желаемых характеристик: “aesthetic”, “high quality” и т. д.
3. Дальше будем брать LQ- и HQ-картинки, зашумлять их до какого-то t, подавать в нашу предобученую диффузионку вместе с промтом и смотреть, что происходит со значениями в cross-attention.
Оказывается, что на основе нашей небольшой и грубой разметки можно выделить комбинации активаций в cross-attn и токенов, которые будут хорошо отделять изображения с нужными нам свойствами. Если просуммировать эти значения, получим скаляр, который и будет нашим скором качества изображения. Проскорив таким образом 300 млн картинок, мы выбрали топ-3350 — это картинки из нашего датасета.
Дальше осталось сделать тексты — исходные из интернета могут быть ошибочны, содержать лишнюю или упускать нужную информацию. Наше наблюдение: лучше всего работают умеренно подробные промты, похожие на те, которые пишет скорее увлечённый пользователь, чем профессиональный промпт-инженер. YandexVLM как раз умеет подстраиваться под нужный формат. С её помощью мы сгенерировали тексты для каждой картинки, получив датасет Alchemist.
Чтобы убедиться в обобщаемости датасета и метода, мы сделали и выложили файнтюны SD 1.5, SD 2.1, SDXL-base 1.0, SD 3.5 Medium и Large. У всех файнтюнов растёт эстетичность и наполненность генераций, которую мы называем “image complexity”. Подробнее о методике и экспериментах читайте в препринте.
Статью подготовили❣ Валерий Старцев, Александр Устюжанин, Алексей Кириллов, Дмитрий Баранчук, Сергей Кастрюлин
CV Time
___
Meta признана экстремистской организацией, а Facebook и Instagram запрещены на территории РФ
Раньше T2I-модели обучали в один этап — претрейн на большом, довольно грязном датасете интернет-данных. В 2023 году Meta в техрепорте EMU предложили делать файнтюн на маленьком датасете исключительного качества и за счёт этого существенно бустить результат генерации. Правда, они ничего не сказали о том, как такой датасет собрать.
Команда YandexART тоже занималась этой задачей, и сегодня мы делимся результатами своей работы — датасетом Alchemist. Он состоит из 3 350 пар «картинка-текст» и имеет лицензию Apache 2.0, пользуйтесь.
Alchemist сокращает дистанцию между крутыми потюненными закрытыми моделями и открытыми, для которых такой тюнинг недоступен. Ранее сообществу был доступен только пофильтрованный на эстетичность кусочек LAION и файнтюн-датасеты под узкий домен, например аниме или живопись. LAION часто не давал существенного прироста качества, а файнтюны под узкий домен ограничивали возможности генерации за его пределами.
Ниже мы подробно рассказываем, как получить датасет уровня Alchemist, имея лишь сырой набор интернет-данных. Отметим, что весь пайплайн — про картинки. Мы считаем, что так правильно: тексты потом лучше сгенерировать синтетические.
Итак, стартуя с датасета на 10 млрд примеров, мы выбрали картинки высокого разрешения без NSFW-контента и удалили те, что содержали вотермарки, имели низкое качество и были неэстетичны. Когда осталось примерно 300 млн изображений, дальнейшее выкручивание порогов фильтрации не помогало: модели недостаточно чувствительны, чтобы отделять хорошие картинки от великолепных. Выбирать руками лучшее из такого большого набора — тоже сомнительная затея.
На этом этапе мы предположили, что предобученная диффузионка может сама знать, какие картинки хорошие, а какие — не очень. Пробовали подходы из области dataset pruning, например, пропускать картинки через модель и смотреть на значение лосса. Оказалось, что так отбираются только самые простые изображения — абстрактные иллюстрации, вроде обоев на рабочий стол. В них немного деталей и их легко моделировать, но на файнтюне от них мало толку.
В итоге нам пришлось придумать свой метод, суть которого в следующем.
1. Возьмём 1000 картинок из наших 300 млн и разметим на условно плохие (LQ) и хорошие (HQ). Хорошими будем считать те, у которых высокие эстетичность и техническое качество, умеренная наполненность контентом.
2. Смастерим общий промт, который будет содержать перечисление желаемых характеристик: “aesthetic”, “high quality” и т. д.
3. Дальше будем брать LQ- и HQ-картинки, зашумлять их до какого-то t, подавать в нашу предобученую диффузионку вместе с промтом и смотреть, что происходит со значениями в cross-attention.
Оказывается, что на основе нашей небольшой и грубой разметки можно выделить комбинации активаций в cross-attn и токенов, которые будут хорошо отделять изображения с нужными нам свойствами. Если просуммировать эти значения, получим скаляр, который и будет нашим скором качества изображения. Проскорив таким образом 300 млн картинок, мы выбрали топ-3350 — это картинки из нашего датасета.
Дальше осталось сделать тексты — исходные из интернета могут быть ошибочны, содержать лишнюю или упускать нужную информацию. Наше наблюдение: лучше всего работают умеренно подробные промты, похожие на те, которые пишет скорее увлечённый пользователь, чем профессиональный промпт-инженер. YandexVLM как раз умеет подстраиваться под нужный формат. С её помощью мы сгенерировали тексты для каждой картинки, получив датасет Alchemist.
Чтобы убедиться в обобщаемости датасета и метода, мы сделали и выложили файнтюны SD 1.5, SD 2.1, SDXL-base 1.0, SD 3.5 Medium и Large. У всех файнтюнов растёт эстетичность и наполненность генераций, которую мы называем “image complexity”. Подробнее о методике и экспериментах читайте в препринте.
Статью подготовили
CV Time
___
Meta признана экстремистской организацией, а Facebook и Instagram запрещены на территории РФ
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥24