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❤2👍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
👍5🔥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
🔥23
DiSA: Diffusion Step Annealing in Autoregressive Image Generation
[есть код и веса]
Ранее разбирали работу FAR, в которой ванильный MAR ускоряли дистилляцией диффузионной головы. Тут метод еще проще. Авторы замечают, что для денойзинга разных патчей нужно разное число шагов семплирования
- Первый патч авторегрессионно сгенерировать сложно. У его предсказаний самая высокая дисперсия. Поэтому его семплим как MAR (50-100 шагов диффузионной головой)
- Второй и последующие сгенерированный патчи в этом смысле проще, можно сократить число шагов вплоть до 5
Сколько шагов денойзинга нужно на каждый патч подбираем эмпирически так чтобы не просаживать качество. На MAR и Harmon ускорение 1.4 - 2.5×
По духу работа напоминает Your Student is Better Than Expected, только там использовали малошагового студента для генерации простых семплов в чисто диффузионной t2i генерации
[есть код и веса]
Ранее разбирали работу FAR, в которой ванильный MAR ускоряли дистилляцией диффузионной головы. Тут метод еще проще. Авторы замечают, что для денойзинга разных патчей нужно разное число шагов семплирования
- Первый патч авторегрессионно сгенерировать сложно. У его предсказаний самая высокая дисперсия. Поэтому его семплим как MAR (50-100 шагов диффузионной головой)
- Второй и последующие сгенерированный патчи в этом смысле проще, можно сократить число шагов вплоть до 5
Сколько шагов денойзинга нужно на каждый патч подбираем эмпирически так чтобы не просаживать качество. На MAR и Harmon ускорение 1.4 - 2.5×
По духу работа напоминает Your Student is Better Than Expected, только там использовали малошагового студента для генерации простых семплов в чисто диффузионной t2i генерации
👍3🔥1
Forwarded from CV Time
Improving the Diffusability of Autoencoders
Сегодня разбираем статью, в которой обсуждается то, что авторы называют diffusability латентного пространства: насколько легко диффузионной модели учиться на латентах автоэнкодера.
В латентных диффузионных моделях (например, Stable Diffusion) генерация происходит не в пикселях, а в сжатом представлении. Это ускоряет обучение, но вводит зависимость от свойств автоэнкодера. Обычно смотрят только на качество реконструкции: насколько хорошо декодер восстанавливает изображение. Но есть вторая характеристика — diffusability, и именно её авторы рассматривают в этой работе.
Что такое diffusability и почему это важно
Если латенты имеют сложное распределение или содержат неинформативные шумовые компоненты, диффузии приходится подстраиваться под это распределение — обучаться дольше и потенциально упираться в потолок качества. Поэтому автоэнкодер задаёт не только качество реконструкции, но и удобство обучения вместе с последующей генерацией.
Авторы смотрят на латенты от обычных автоэнкодеров и замечают, что они визуально шумные: в них много высокочастотных деталей, особенно в фоне. Чтобы разобраться, применяют дискретное косинусное преобразование (DCT), как в JPEG. Разбивают картинку или латент на блоки 8×8, считают DCT по каждому из них, усредняют спектры и строят частотный профиль.
Выясняется, что латенты содержат больше высокочастотных компонентов, чем изображения, и это особенно заметно при увеличении числа каналов. Даже если латент визуально похож на картинку, его частотный профиль сильно отличается. А если обнулить высокие частоты и попробовать восстановить изображение, латент теряет качество гораздо сильнее, чем обычное изображение — там такие потери почти незаметны. Это говорит о том, что латенты слишком зависят от высокочастотной части и не обладают масштабной эквивариантностью.
Тогда авторы добавляют к лоссу автоэнкодера простую компоненту: берут исходное изображение и соответствующий латент, уменьшают их разрешение (в 2 или 4 раза), затем реконструируют картинку из сжатого латента и считают дополнительный лосс между даунскейленным изображением и полученной реконструкцией.
Таким образом они обеспечивают соблюдения свойства масштабной инвариантности (потому что лосс буквально это и делает), что, в свою очередь, регуляризует латенты, убирая из них лишние высокие частоты.
Результат — латенты становятся менее шумными, частотные профили ближе к тем, что у изображений. И, что важно, визуально структура латента сохраняется. Согласно метрикам, качество реконструкции почти не падает.
Эксперименты
Метод протестировали на ImageNet-1K (изображения) и Kinetics-700 (видео). Сравнивали обучение диффузионной модели на обычных и исправленных латентах.
В статье diffusability измеряют через скорость обучения: берут автоэнкодер, обучают на нём диффузионную модель и смотрят, насколько быстро растёт метрика качества (например, FID для изображений и FVD для видео). Сравнивались базовые модели и те же архитектуры, но обученные на автоэнкодерах с исходным и улучшенным diffusability. Оказалось, что последние учатся быстрее и дают лучшее финальное качество.
Результаты:
— генерация изображений: FID улучшился на 19%;
— генерация видео: FVD улучшился на 44%;
— модели обучаются быстрее;
— PSNR немного растёт (за счёт блюра), но визуально картинки выглядят нормально.
Визуализация того, как выглядят латенты до и после (см. картинку), взята из другой работы, посвященной этой же теме: шум действительно уходит, но структура остаётся. Частотные кривые тоже приближаются к тем, что у изображений.
В целом статья посвящена довольно локальной проблеме, но в ней есть понятная идея и измеримый эффект.
Разбор подготовил❣ Сергей Кастрюлин
CV Time
Сегодня разбираем статью, в которой обсуждается то, что авторы называют diffusability латентного пространства: насколько легко диффузионной модели учиться на латентах автоэнкодера.
В латентных диффузионных моделях (например, Stable Diffusion) генерация происходит не в пикселях, а в сжатом представлении. Это ускоряет обучение, но вводит зависимость от свойств автоэнкодера. Обычно смотрят только на качество реконструкции: насколько хорошо декодер восстанавливает изображение. Но есть вторая характеристика — diffusability, и именно её авторы рассматривают в этой работе.
Что такое diffusability и почему это важно
Если латенты имеют сложное распределение или содержат неинформативные шумовые компоненты, диффузии приходится подстраиваться под это распределение — обучаться дольше и потенциально упираться в потолок качества. Поэтому автоэнкодер задаёт не только качество реконструкции, но и удобство обучения вместе с последующей генерацией.
Авторы смотрят на латенты от обычных автоэнкодеров и замечают, что они визуально шумные: в них много высокочастотных деталей, особенно в фоне. Чтобы разобраться, применяют дискретное косинусное преобразование (DCT), как в JPEG. Разбивают картинку или латент на блоки 8×8, считают DCT по каждому из них, усредняют спектры и строят частотный профиль.
Выясняется, что латенты содержат больше высокочастотных компонентов, чем изображения, и это особенно заметно при увеличении числа каналов. Даже если латент визуально похож на картинку, его частотный профиль сильно отличается. А если обнулить высокие частоты и попробовать восстановить изображение, латент теряет качество гораздо сильнее, чем обычное изображение — там такие потери почти незаметны. Это говорит о том, что латенты слишком зависят от высокочастотной части и не обладают масштабной эквивариантностью.
Тогда авторы добавляют к лоссу автоэнкодера простую компоненту: берут исходное изображение и соответствующий латент, уменьшают их разрешение (в 2 или 4 раза), затем реконструируют картинку из сжатого латента и считают дополнительный лосс между даунскейленным изображением и полученной реконструкцией.
Таким образом они обеспечивают соблюдения свойства масштабной инвариантности (потому что лосс буквально это и делает), что, в свою очередь, регуляризует латенты, убирая из них лишние высокие частоты.
Результат — латенты становятся менее шумными, частотные профили ближе к тем, что у изображений. И, что важно, визуально структура латента сохраняется. Согласно метрикам, качество реконструкции почти не падает.
Эксперименты
Метод протестировали на ImageNet-1K (изображения) и Kinetics-700 (видео). Сравнивали обучение диффузионной модели на обычных и исправленных латентах.
В статье diffusability измеряют через скорость обучения: берут автоэнкодер, обучают на нём диффузионную модель и смотрят, насколько быстро растёт метрика качества (например, FID для изображений и FVD для видео). Сравнивались базовые модели и те же архитектуры, но обученные на автоэнкодерах с исходным и улучшенным diffusability. Оказалось, что последние учатся быстрее и дают лучшее финальное качество.
Результаты:
— генерация изображений: FID улучшился на 19%;
— генерация видео: FVD улучшился на 44%;
— модели обучаются быстрее;
— PSNR немного растёт (за счёт блюра), но визуально картинки выглядят нормально.
Визуализация того, как выглядят латенты до и после (см. картинку), взята из другой работы, посвященной этой же теме: шум действительно уходит, но структура остаётся. Частотные кривые тоже приближаются к тем, что у изображений.
В целом статья посвящена довольно локальной проблеме, но в ней есть понятная идея и измеримый эффект.
Разбор подготовил
CV Time
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍2
Are Unified Vision-Language Models Necessary: Generalization Across Understanding and Generation
[кода/весов нет и не надо]
В последнее время выходит много работ про объединение image understanding и image generation моделей с гордым названием MLLM. Большинство из них про архитектуру и оптимизацию процесса обучения. Это, конечно, всё интересно, но возникает вопрос - а правда ли, что унифицированная модель будет лучше, чем understanding и generation модели по отдельности?
В 2017👴 в CV профит от унификации детекции и сегментации показала работа MaskRCNN. Теперь настал черёд VLM и диффузии
Сразу оговорюсь, что всё ниже описанное проверено, в основном, на синтетических, данных и может не переноситься на большие масштабы. С другой стороны, благодаря синте эксперименты контролируемы и интерпретируемы. Давайте посмотрим сразу на выводы:
1️⃣ Understanding и generation действительно помогают друг другу, в том числе при масштабировании размеров датасета
2️⃣ Хорошее соответствие между входным и выходным представлением для изображений помогает. Это объясняет почему, например, в UniFluid, Janus-Pro, BAGEL и многих других моделях используют два картиночных энкодера
3️⃣ Знания полученные при обучении генерации помогают в понимании картинок
В статье много любопытных деталей, вот некоторые из них:
▶️ Пункт 2️⃣ подтверждают тем что делают случайное аффинное преобразование после энкодера и показывают, что это никак не мешает выучить модели understanding, но generation в итоге работает хуже
▶️ Для 3️⃣ конструируют сетап в котором модель просто не видела некоторые данные в обучении задаче understanding, но видела в generation. В итоге на инференсе она правильно отвечает на вопросы
В конце есть небольшая секция про обучение LLAVA в сетапе Janus, которая явно для галочки, её не стоит воспринимать всерьез. В целом, работа очень достойная с грамотным дизайном гипотез и экспериментов, советую к ознакомлению
[кода/весов нет и не надо]
В последнее время выходит много работ про объединение image understanding и image generation моделей с гордым названием MLLM. Большинство из них про архитектуру и оптимизацию процесса обучения. Это, конечно, всё интересно, но возникает вопрос - а правда ли, что унифицированная модель будет лучше, чем understanding и generation модели по отдельности?
В 2017
Сразу оговорюсь, что всё ниже описанное проверено, в основном, на синтетических, данных и может не переноситься на большие масштабы. С другой стороны, благодаря синте эксперименты контролируемы и интерпретируемы. Давайте посмотрим сразу на выводы:
В статье много любопытных деталей, вот некоторые из них:
В конце есть небольшая секция про обучение LLAVA в сетапе Janus, которая явно для галочки, её не стоит воспринимать всерьез. В целом, работа очень достойная с грамотным дизайном гипотез и экспериментов, советую к ознакомлению
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍3🔥2
A Comprehensive Study of Decoder-Only LLMs for Text-to-Image Generation
В области text-to-image генерации давно стоит вопрос: какой текстовый энкодер использовать лучше? Сейчас каждый делает на свой лад: кто-то по инерции использует CLIP и T5 (как в DALL-E и Imagen), кто-то переходит на LLM decoder-only трансформеры (Lumina, SANA) без особой экспериментальной аргументации
В этой работе авторы:
▶️ Берут 12 текстовых энкодеров, включая CLIP, T5, Mistral разных размеров + instruct версию, Gemma и Qwen, а также эмбедеры на их основе
▶️ Учат 27 SDv2-like диффузионок к U-Net архитектурой на семпле 46М из LAION-Aesthetics
▶️ Замеряют результаты на GenAI-Bench — это такой набор 1,600 очень подробных промтов, после генераций по которым VLM оценивает навыки генератора
Для контекста важно вспомнить, что для использования CLIP и T5 обычно берут эмбединг их последнего слоя. Ранние работы по использованию LMок для диффузии делали также
Итак, что удалось выяснить:
▶️ У LLMок эмбед последнего слоя плохой из-за оверфита под задачу предсказания последнего токена. Эмбеды средних слоёв существенно информативнее и дают лучшее качество обученной с их использованием диффузии
▶️ Если комбинировать несколько средних слоёв, то это ещё сильнее бустит качество и позволяет обгонять T5 и CLIP
▶️ Выходы моделей-эмбедеров бывают разного качества: bge-Gemma2 — крутая, остальные рассмотренные — не очень. По умолчанию лучше использовать обычные LMки
▶️ Для моделей-эмбедеров тоже можно комбинировать несколько средних слоёв, это тоже улучшает качество
▶️ Модели большего размера (7B или 9B против 1.5B или 2B) работают лучше, но буст не драматический
А еще авторы говорят, что было бы классно комбинировать представления эмбедеров и обычных LM’ок для дальнейшего улучшения качества, но оставляют верификацию этого на future work
В статье очень мало картинок, но те что есть показывают, что модели на основе правильно использованных представлений LMок лучше справляются с учётом мелких деталей промтов и отрицаниями
В области text-to-image генерации давно стоит вопрос: какой текстовый энкодер использовать лучше? Сейчас каждый делает на свой лад: кто-то по инерции использует CLIP и T5 (как в DALL-E и Imagen), кто-то переходит на LLM decoder-only трансформеры (Lumina, SANA) без особой экспериментальной аргументации
В этой работе авторы:
Для контекста важно вспомнить, что для использования CLIP и T5 обычно берут эмбединг их последнего слоя. Ранние работы по использованию LMок для диффузии делали также
Итак, что удалось выяснить:
А еще авторы говорят, что было бы классно комбинировать представления эмбедеров и обычных LM’ок для дальнейшего улучшения качества, но оставляют верификацию этого на future work
В статье очень мало картинок, но те что есть показывают, что модели на основе правильно использованных представлений LMок лучше справляются с учётом мелких деталей промтов и отрицаниями
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤1
Короткие разборы
Когда я только задумывал канал, в голове представлялся формат — ёмкие разборы длиной в абзац, описывающие только суть. Меня самого привлекает максимальная плотность информации, потому что читаю много и расписывать всё нет времени. Во время ICLR’25 (серия постов) вам такое заходило. Давайте пробовать еще раз (но уже без фотографий постеров😫 )
1. Ambient Diffusion Omni:
Training Good Models with Bad Data
Замечают, что при высоких уровнях шума, картинки разного технического качества выглядят одинаково. Это наблюдение помогает улучшить качество диффузионного претрена. Для этого IQA классификатором оценивают качество картинок прямо во время обучения. Если картинка хорошая - семплим как обычно шум равномерно на отрезке [0, 1]. Если картинка плохая - только на некотором отрезке [t_min, 1], где t_min - параметр, подбираемый экспериментально (на глазок или учим классификатор)
2. Angle Domain Guidance: Latent Diffusion Requires Rotation Rather Than
Extrapolation
Очень похожа на Adaptive Projected Guidance (APG), где гайденс раскладывали на линейную комбинацию скор функций и выкидывали компоненту параллельную conditional генерации, оставляя только ортогональную. Авторы говорят, что предположение линейности может плохо работать при высоких значениях guidance scale и может в целом ограничивать качество. Вместо стандартной CFG добавки, увеличивающей нормы, предлагается вращать и далее комбинировать матрицы cond и uncond генераций
3. Decouple-Then-Merge: Finetune Diffusion Models as Multi-Task Learning
Во время обучения диффузии, градиенты модели на разных t отличаются. Предполагается, что это может мешать оптимизации. Предлагается делать следующую процедуру SFT:
- Берем претрен
- Берем наш диапазон t in [0, 1] и разбираем на N не пересекающихся отрезков
- Учим N файнтюнов, каждый на своем отрезке t
- Используем несколько техник (Consistency, Probabilistic sampling, Channel-wise projection) чтобы каждый файнтюн совсем уж не забыл про другие t
- После обучения мерджим веса файнтюнов
4. Advancing Compositional Awareness in CLIP with Efficient Fine-Tuning
Год назад был предложен SUGARCREPE++ Dataset, на котором в том числе показали, что CLIP-like модели плохо понимают отношения между объектами в промте. В этой работе предлагается:
- Собирать синтетический датасета негативных примеров из уже существующего путём комбинации кусочков промтов
- Учить CLIP с доп компонентами в лоссе про то чтобы форсить акцент на эти негативные примеры
Когда я только задумывал канал, в голове представлялся формат — ёмкие разборы длиной в абзац, описывающие только суть. Меня самого привлекает максимальная плотность информации, потому что читаю много и расписывать всё нет времени. Во время ICLR’25 (серия постов) вам такое заходило. Давайте пробовать еще раз (но уже без фотографий постеров
1. Ambient Diffusion Omni:
Training Good Models with Bad Data
Замечают, что при высоких уровнях шума, картинки разного технического качества выглядят одинаково. Это наблюдение помогает улучшить качество диффузионного претрена. Для этого IQA классификатором оценивают качество картинок прямо во время обучения. Если картинка хорошая - семплим как обычно шум равномерно на отрезке [0, 1]. Если картинка плохая - только на некотором отрезке [t_min, 1], где t_min - параметр, подбираемый экспериментально (на глазок или учим классификатор)
2. Angle Domain Guidance: Latent Diffusion Requires Rotation Rather Than
Extrapolation
Очень похожа на Adaptive Projected Guidance (APG), где гайденс раскладывали на линейную комбинацию скор функций и выкидывали компоненту параллельную conditional генерации, оставляя только ортогональную. Авторы говорят, что предположение линейности может плохо работать при высоких значениях guidance scale и может в целом ограничивать качество. Вместо стандартной CFG добавки, увеличивающей нормы, предлагается вращать и далее комбинировать матрицы cond и uncond генераций
3. Decouple-Then-Merge: Finetune Diffusion Models as Multi-Task Learning
Во время обучения диффузии, градиенты модели на разных t отличаются. Предполагается, что это может мешать оптимизации. Предлагается делать следующую процедуру SFT:
- Берем претрен
- Берем наш диапазон t in [0, 1] и разбираем на N не пересекающихся отрезков
- Учим N файнтюнов, каждый на своем отрезке t
- Используем несколько техник (Consistency, Probabilistic sampling, Channel-wise projection) чтобы каждый файнтюн совсем уж не забыл про другие t
- После обучения мерджим веса файнтюнов
4. Advancing Compositional Awareness in CLIP with Efficient Fine-Tuning
Год назад был предложен SUGARCREPE++ Dataset, на котором в том числе показали, что CLIP-like модели плохо понимают отношения между объектами в промте. В этой работе предлагается:
- Собирать синтетический датасета негативных примеров из уже существующего путём комбинации кусочков промтов
- Учить CLIP с доп компонентами в лоссе про то чтобы форсить акцент на эти негативные примеры
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥3
Масштабирование и байесы
Для диффузионок и не только
1. Cost-Aware Routing for Efficient Text-To-Image Generation
Авторы говорят, что промты бывают разной сложности. Более сложные промты могут потребовать больше шагов семплирования для получения качественных генераций. Давайте учить классификатор сложности промтов параллельно с диффузионкой. На инференсе подберем число шагов для каждого уровня сложности так чтоб сбалансировать компьют и качество
2. Scaling Inference Time Compute for Diffusion Models
Обычно в диффузии масштабирование компьюта на инференса происходит только за счет подбора числа шагов семплирования, но качество довольно быстро насыщается. Что делать если хочется потратить больше ресурсов для получения топ картинки? Авторы предлагаю помимо прочего перебирать еще и подаваемый для генерации шум (как стартовый, так и промежуточный), а также изучают сами стратегии перебора. Качество генераций валидируют стандартными метриками и VLMкой
3. Scaling Diffusion Transformers Efficiently via μP
Показывают, что стандартный μP обобщается и на диффузионные трансформеры. За счет этого, в среднем, получают единицы процентов буста скорости обучения отмасштабированных моделей. В одном случае (DiT-XL-2) обучение ускоряется в разы. Все замеры на FID-50k
4. Why Does ChatGPT “Delve” So Much? Exploring the Sources of Lexical Overrepresentation in Large Language Models
Тест на внимательность и то читают ли посты до конца☕️ Чуть мемный анализ того почему языковые модели склонны генерить слова из старого английского. В том что они точно склонны сомнений нет: частота появления в публикациях слов вроде delve, intricate и aligns экспоненциально выросла с появлением LLM. Гипотеза о том что модели учились на старых или очень научных текстах не подтверждается, да и в целом у авторов нет однозначного объяснения. Основное подозрение падает на RLHF, но его трудно подтвердить из-за того что многие детали этого процесса для проприетарных моделей закрыты
Для диффузионок и не только
1. Cost-Aware Routing for Efficient Text-To-Image Generation
Авторы говорят, что промты бывают разной сложности. Более сложные промты могут потребовать больше шагов семплирования для получения качественных генераций. Давайте учить классификатор сложности промтов параллельно с диффузионкой. На инференсе подберем число шагов для каждого уровня сложности так чтоб сбалансировать компьют и качество
2. Scaling Inference Time Compute for Diffusion Models
Обычно в диффузии масштабирование компьюта на инференса происходит только за счет подбора числа шагов семплирования, но качество довольно быстро насыщается. Что делать если хочется потратить больше ресурсов для получения топ картинки? Авторы предлагаю помимо прочего перебирать еще и подаваемый для генерации шум (как стартовый, так и промежуточный), а также изучают сами стратегии перебора. Качество генераций валидируют стандартными метриками и VLMкой
3. Scaling Diffusion Transformers Efficiently via μP
Показывают, что стандартный μP обобщается и на диффузионные трансформеры. За счет этого, в среднем, получают единицы процентов буста скорости обучения отмасштабированных моделей. В одном случае (DiT-XL-2) обучение ускоряется в разы. Все замеры на FID-50k
4. Why Does ChatGPT “Delve” So Much? Exploring the Sources of Lexical Overrepresentation in Large Language Models
Тест на внимательность и то читают ли посты до конца
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Why Is Spatial Reasoning Hard for VLMs? An Attention Mechanism Perspective on Focus Areas
Есть такая область — Mechanistic Interpretability, это когда в DL системах находят какую-то проблему и пытаются найти ей объяснение через баги внутри состояний модели (веса, активации, градиенты)
Авторы данной работы решили докопаться до современных VLM по части их неспособности адекватно распознавать отношение между объектами. При просьбе описать происходящее на картинке, модельки часто путают что на чём лежит, какой объект на переднем плане, а какой - на заднем и тд
Для эксперимента провели следующий анализ:
- Берем VLM и просим её описать как один объект расположен односительно другого на картинке (left, behind, etc.)
- С помощью YOLO детектируем область, которая должна отвечать за правильный ответ
- Смотрим насколько локализация аттеншена совпадает с областью из YOLO в случае правильных и не правильных ответов
В процессе авторы обнаруживают, что модель, в основном, ошибается когда неправильно локализует аттеншен. При этом, обнаруживается два сценария ошибок:
- Предсказания имеют высокую уверенность, но аттеншен выходит за рамки целевой области
- Предсказания имеют низкую уверенность, но аттеншен имеет слишком высокую локализацию: модель практически “смотрит в точку”
Чинить оба эти сценария предлагается шатанием температуры:
- В случае высокой уверенности, увеличиваем температуру, помогая модели лучше локализовать предсказания
- В случае низкой уверенности, уменьшаем температуру, помогая ей чуть лучше “посмотреть в окрестности”
Эксперименты проводят над LLaVA 1.5 на датасетах WhatsUp и VSR, которые содержат пары <картинка, текст>. Для генерации вопросов к картинке используют GPT-4o. Также используют синтетические датасеты Control A и Control B. В ходе эксперментов температуру перебирают по сетке с целью максимально поднять точность предсказаний. Метод существенно бустит качество, особенно на синтетике
Есть такая область — Mechanistic Interpretability, это когда в DL системах находят какую-то проблему и пытаются найти ей объяснение через баги внутри состояний модели (веса, активации, градиенты)
Авторы данной работы решили докопаться до современных VLM по части их неспособности адекватно распознавать отношение между объектами. При просьбе описать происходящее на картинке, модельки часто путают что на чём лежит, какой объект на переднем плане, а какой - на заднем и тд
Для эксперимента провели следующий анализ:
- Берем VLM и просим её описать как один объект расположен односительно другого на картинке (left, behind, etc.)
- С помощью YOLO детектируем область, которая должна отвечать за правильный ответ
- Смотрим насколько локализация аттеншена совпадает с областью из YOLO в случае правильных и не правильных ответов
В процессе авторы обнаруживают, что модель, в основном, ошибается когда неправильно локализует аттеншен. При этом, обнаруживается два сценария ошибок:
- Предсказания имеют высокую уверенность, но аттеншен выходит за рамки целевой области
- Предсказания имеют низкую уверенность, но аттеншен имеет слишком высокую локализацию: модель практически “смотрит в точку”
Чинить оба эти сценария предлагается шатанием температуры:
- В случае высокой уверенности, увеличиваем температуру, помогая модели лучше локализовать предсказания
- В случае низкой уверенности, уменьшаем температуру, помогая ей чуть лучше “посмотреть в окрестности”
Эксперименты проводят над LLaVA 1.5 на датасетах WhatsUp и VSR, которые содержат пары <картинка, текст>. Для генерации вопросов к картинке используют GPT-4o. Также используют синтетические датасеты Control A и Control B. В ходе эксперментов температуру перебирают по сетке с целью максимально поднять точность предсказаний. Метод существенно бустит качество, особенно на синтетике
🔥8👍1
FLUX.1 Kontext: Flow Matching for In-Context Image Generation and Editing in Latent Space
Раньше все хотели картинки генерить, теперь хотят ещё и редактировать, причём, желательно, только по промту, без доп. кондишенов. Несколько недель назад вышел новый FLUX, а несколько дней назад его техрепорт пророс на архив. После того как хайп улёгся, можно присмотреться и попробовать разобраться, что сделали.
Метод
Высокоуровнево это расширение text-to-image модельки на text+image-to-image генерацию, где:
- VAE тот же;
- денойдер примерно тот же (трансформер с FM);
- kontext получают дообучением T2I модели.
Отличительные черты
Высокоуровнево очевидно: авторам близки архитектурно минималистичные решения, и переход к задаче редактирования был сделан чисто за счёт хороших данных.
Если рассматривать чуть детальнее:
- В описании архитектуры нет ControlNet’а и его аналогов. Всё обуславливание на исходную картинку происходит через контекст, то есть конкатенацией входных картиночных токенов.
- Обуславливание через контекст трансформера в сочетании с RoPE позволяет обучать модель сразу на разное количество картинок-условий: от 0 (обычная text-to-image генерация) до N, где N может быть довольно большим в сценарии диалоговых систем.
- Поканальную конкатенацию картинок тоже пробовали — работает хуже.
Дистилляция
Практическое использование 12B денойзеров требует ускорения. Авторы остаются верны ADD, никаких упоминаний альтернативных техник ускорения и дистилляции в документе нет.
Замеры
Как водится, авторам не нравятся существующие бенчмарки, и они делают свой. К сожалению, сам бенч они не выкладывают, только показывают барплоты (красивое).
Из любопытного: у них откуда-то есть значения времени работы всяких авторегрессионных моделей вроде GPT-image. Утверждается, что дистиллированная диффузия работает в ~10 раз быстрее при сопоставимом качестве.
Раньше все хотели картинки генерить, теперь хотят ещё и редактировать, причём, желательно, только по промту, без доп. кондишенов. Несколько недель назад вышел новый FLUX, а несколько дней назад его техрепорт пророс на архив. После того как хайп улёгся, можно присмотреться и попробовать разобраться, что сделали.
Метод
Высокоуровнево это расширение text-to-image модельки на text+image-to-image генерацию, где:
- VAE тот же;
- денойдер примерно тот же (трансформер с FM);
- kontext получают дообучением T2I модели.
Отличительные черты
Высокоуровнево очевидно: авторам близки архитектурно минималистичные решения, и переход к задаче редактирования был сделан чисто за счёт хороших данных.
Если рассматривать чуть детальнее:
- В описании архитектуры нет ControlNet’а и его аналогов. Всё обуславливание на исходную картинку происходит через контекст, то есть конкатенацией входных картиночных токенов.
- Обуславливание через контекст трансформера в сочетании с RoPE позволяет обучать модель сразу на разное количество картинок-условий: от 0 (обычная text-to-image генерация) до N, где N может быть довольно большим в сценарии диалоговых систем.
- Поканальную конкатенацию картинок тоже пробовали — работает хуже.
Дистилляция
Практическое использование 12B денойзеров требует ускорения. Авторы остаются верны ADD, никаких упоминаний альтернативных техник ускорения и дистилляции в документе нет.
Замеры
Как водится, авторам не нравятся существующие бенчмарки, и они делают свой. К сожалению, сам бенч они не выкладывают, только показывают барплоты (красивое).
Из любопытного: у них откуда-то есть значения времени работы всяких авторегрессионных моделей вроде GPT-image. Утверждается, что дистиллированная диффузия работает в ~10 раз быстрее при сопоставимом качестве.
❤4👍1
Немного техрепортиков
Формат техрепортов становится всё популярнее. Главные его минусы:
- за обилием технических деталей бывает трудно выловить оригинальные идеи;
- авторы не пытаются выделить и системно исследовать одну проблему. Вместо этого могут навалить кучу изменений и дальше живите с этим как хотите.
Ниже несколько интересных и полезных мне примеров.
1. HiDream-I1: A High-Efficient Image Generative Foundation Model with Sparse Diffusion Transformer
С месяц назад на T2I арене обновилась open source SOTA. Теперь это 17В MoE DiT-like трансформер обученный на FM и DMD для ускорения до 16 шагов семплирования. Помимо переусложненной архитектуры, модель примечательна использованием четырёх текстовых энкодеров. Один из них - Llama 3.1, фичи из которой берутся не только с последнего, но и с промежуточных трансформерных блоков.
Занятно, что такой паттерн использования согласуется с описанным в одновременно вышедшей статье про анализ текстовых энкодеров (статья, разбор). Не известно в этом ли дело, но модель действительно оч неплохо реагирует на все детали пользовательских промтов
2. Show-o2: Improved Native Unified Multimodal Models
Новая мультимодальная генеративка от ByteDance семплирует не только тексты и картинки, но и короткие видео (1-2 сек). Архитектурно используют MAR-like схему с Qwen-2.5-Instruct (1.5B или 7В) тушкой и отдельной FM головой. Обобщение на видео происходит за счет замены VAE на темпоральный от Wan 2.1. Авторы не сравниваются с недавними мультимодальными релизами вроде BAGEL, но в отдельных задачах говорят о SOTA качестве. Например, утверждается, что T2I на уровне SD 3.5 Medium, что можно проверить благодаря открытым весам и коду
3. OmniGen2: Exploration to Advanced Multimodal Generation
Сиквел от авторов первой версии, начинающийся с того что у них не заработало всё то что работает у других:
- MoE в DiT;
- инициализация картиночного генератора LLM весами;
- использование второго (помимо VAE) CLIP-like картиночного энкодера для задач понимания картинок.
В остальном, это MAR-like типичная мультимодалка. По аналогии с Show-o2 выше, её обобщили на генерацию видео за счет темпорального VAE, а еще вместе с моделью релизнули свой бенчмарк для оценки качества in-context генерации.
Формат техрепортов становится всё популярнее. Главные его минусы:
- за обилием технических деталей бывает трудно выловить оригинальные идеи;
- авторы не пытаются выделить и системно исследовать одну проблему. Вместо этого могут навалить кучу изменений и дальше живите с этим как хотите.
Ниже несколько интересных и полезных мне примеров.
1. HiDream-I1: A High-Efficient Image Generative Foundation Model with Sparse Diffusion Transformer
С месяц назад на T2I арене обновилась open source SOTA. Теперь это 17В MoE DiT-like трансформер обученный на FM и DMD для ускорения до 16 шагов семплирования. Помимо переусложненной архитектуры, модель примечательна использованием четырёх текстовых энкодеров. Один из них - Llama 3.1, фичи из которой берутся не только с последнего, но и с промежуточных трансформерных блоков.
Занятно, что такой паттерн использования согласуется с описанным в одновременно вышедшей статье про анализ текстовых энкодеров (статья, разбор). Не известно в этом ли дело, но модель действительно оч неплохо реагирует на все детали пользовательских промтов
2. Show-o2: Improved Native Unified Multimodal Models
Новая мультимодальная генеративка от ByteDance семплирует не только тексты и картинки, но и короткие видео (1-2 сек). Архитектурно используют MAR-like схему с Qwen-2.5-Instruct (1.5B или 7В) тушкой и отдельной FM головой. Обобщение на видео происходит за счет замены VAE на темпоральный от Wan 2.1. Авторы не сравниваются с недавними мультимодальными релизами вроде BAGEL, но в отдельных задачах говорят о SOTA качестве. Например, утверждается, что T2I на уровне SD 3.5 Medium, что можно проверить благодаря открытым весам и коду
3. OmniGen2: Exploration to Advanced Multimodal Generation
Сиквел от авторов первой версии, начинающийся с того что у них не заработало всё то что работает у других:
- MoE в DiT;
- инициализация картиночного генератора LLM весами;
- использование второго (помимо VAE) CLIP-like картиночного энкодера для задач понимания картинок.
В остальном, это MAR-like типичная мультимодалка. По аналогии с Show-o2 выше, её обобщили на генерацию видео за счет темпорального VAE, а еще вместе с моделью релизнули свой бенчмарк для оценки качества in-context генерации.
🔥3❤1
Если ваша генеративная модель училась на всём интернете, рано или поздно вы столкнетесь с тем, что она периодически семплит даркнет 🌚 В LLM проблему решают алайнментом — модель учат не отвечать или уходить от прямого ответа на провокационные темы. Модели генерации картинок не могут не отвечать. Как быть?
1. Unlearning Concepts in Diffusion Model via Concept Domain Correction and Concept Preserving Gradient
GAN снова приходит на помощь. Адверсариальную компоненту можно использовать не только для дистилляции, но и для забывания нежелательных концептов. Учить дискриминатор отличать финальные генерации не удобно из-за Марковости диффузии
Метод:
- Берем уже обученную диффузионку
- Генерим ей некий семпл
- Зашумляем его прямым процессом до некого
- Расшумляем, используя промт
- Учим дискриминатор отличать эти два случая, дотюниваем на этом сигнале диффузионку
2. R.A.C.E. Robust Adversarial Concept Erasure for Secure Text-to-Image Diffusion Model
Идея в том чтобы использовать текстовую инверсию и адверсариальные атаки. Суть в получении текстового эмбединга проблемного концепта и последущем дообучении с GAN лоссом на то чтобы по этому эмбеду получалась не проблемная картинка. Более детальный разбор тут
3. MACE: Mass Concept Erasure in Diffusion Models
Описанные выше методы хорошо работают для удаления нескольких концептов, но могут плохо справляться, когда их количество увеличивается до десятков и сотен. Авторы этой работы замечают, что отвечающие за нежелательные концепты слова часто встречаются вместе. Исправить генерации по этим сочетаниям можно шатанием cross attn
Суть метода в том чтобы по набору промтов с проблемными концептами дообучить матрицу проекций
4. Set You Straight: Auto-Steering Denoising Trajectories to Sidestep Unwanted Concepts
Другая известная проблема concept erasure — методы портят качество генерации в целом. Авторы этой работы предполагают, что проблема в том что мы учимся менять всю траекторию семплирования из маргинального распределения для проблемных концептов, что может иногда приводить нас в моды с субоптимальным качеством.
Предлагается простой фикс: давайте при больших занчениях шума не мешать модели делать свое дело. Вместо этого, будем тюнить её на то чтобы траектория менялась только в точках
1. Unlearning Concepts in Diffusion Model via Concept Domain Correction and Concept Preserving Gradient
GAN снова приходит на помощь. Адверсариальную компоненту можно использовать не только для дистилляции, но и для забывания нежелательных концептов. Учить дискриминатор отличать финальные генерации не удобно из-за Марковости диффузии
Метод:
- Берем уже обученную диффузионку
- Генерим ей некий семпл
х
- Зашумляем его прямым процессом до некого
t
- Расшумляем, используя промт
с
проблемными концептами c*
и нормальными с
- Учим дискриминатор отличать эти два случая, дотюниваем на этом сигнале диффузионку
2. R.A.C.E. Robust Adversarial Concept Erasure for Secure Text-to-Image Diffusion Model
Идея в том чтобы использовать текстовую инверсию и адверсариальные атаки. Суть в получении текстового эмбединга проблемного концепта и последущем дообучении с GAN лоссом на то чтобы по этому эмбеду получалась не проблемная картинка. Более детальный разбор тут
3. MACE: Mass Concept Erasure in Diffusion Models
Описанные выше методы хорошо работают для удаления нескольких концептов, но могут плохо справляться, когда их количество увеличивается до десятков и сотен. Авторы этой работы замечают, что отвечающие за нежелательные концепты слова часто встречаются вместе. Исправить генерации по этим сочетаниям можно шатанием cross attn
Суть метода в том чтобы по набору промтов с проблемными концептами дообучить матрицу проекций
W_k
так, чтобы замаппить ключи (keys) аттеншена проблемных концептов или даже категорий концептов в любые не проблемные категории. Помимо этого авторы показывают, что дообучение можно делать с помощью нескольких LoRA, которые далее можно некоторым образом мерджить для удобства работы4. Set You Straight: Auto-Steering Denoising Trajectories to Sidestep Unwanted Concepts
Другая известная проблема concept erasure — методы портят качество генерации в целом. Авторы этой работы предполагают, что проблема в том что мы учимся менять всю траекторию семплирования из маргинального распределения для проблемных концептов, что может иногда приводить нас в моды с субоптимальным качеством.
Предлагается простой фикс: давайте при больших занчениях шума не мешать модели делать свое дело. Вместо этого, будем тюнить её на то чтобы траектория менялась только в точках
t < t’.
В качестве fine-tuning objective можно использовать, например, описанный выше MACE🔥11👍1😁1
Vision-Language-Vision Auto-Encoder: Scalable Knowledge Distillation from Diffusion Models
[код/веса]
Есть такая задача — ускорять обучение мультимодальных моделей. В области T2I/T2V генерации сейчас хайпует REPA и её бесчисленные вариации, суть которых в том чтобы во время обучения алайнить фичи диффузии с фичами ранее обученной качественной модельки вроде DINOv2.
В моей системе координат эта работа попадает в ту же категорию, только в контексте VLM. Вместо того чтобы учить I2T с нуля, давайте сначала научим модель выдавать такие эмбеды, по которым можно хорошо сгенерировать картинку. Предполагается, что если эмбеды достаточно информативны для генерации качественной картинки, то и для генерации текстового описания картинок они тоже сгодятся.
Tl;DR метода
Учим vision-language-vision (VLV) автоэнкодер который кодирует картинки в текстовые эмбеды так, чтобы потом декодер (диффузионка) мог их декодировать в картинку. Потом вместо диффузионного декодера подставляем LM, чуть тюним и получаем SOTA кепшенер.
Эксперименты
Первая стадия (обучение VLV) варится на 40M сабсете дофильтрованного LAION-aes. Это вполне ок потому что на этой стадии нам нужны только качественные картинки для обучения в self-supervised режиме.
На второй стадии используем 6M синтетических image-text пар сгенеренных Gemini-2.0 Flash.
Обучение инициализируют Florence-2 карточным энкодером, SDv2.1 диффузионным декодером (странный выбор) и Qwen-2.5 разного размера в LM части на второй стадии. Первая стадия обучается порядка 1к GPU часов, вторая — не известно, но суммарный бюджет получается скромный.
Что получилось
Основной результат — качество image captioning на уровне GPT-4o (превосходит Qwen-2.5 VL). Об остальных результатах трудно судить: картинки как-то генерятся, few-shot VQA как-то делается.
Для меня эта работа, в первую очередь, показатель того что “можно еще и так” + некоторый альтернативный источник мультимодальных эмбедингов.
Открытые вопросы
Вторая стадия обучения делается на синтетике из Gemini. Это может сильно увеличивать эффективность I2T обучения само по себе. Не хватает ablation этого фактора и влияния первой стадии обучения.
В сапмате есть секция про то что первая стадия обучения помогает. Если её скипнуть, то качество сильно хуже, но не понятно что было бы если бы мы сделали обычный VLM претрен и потом провели предложенный на второй стадии тюнинг.
[код/веса]
Есть такая задача — ускорять обучение мультимодальных моделей. В области T2I/T2V генерации сейчас хайпует REPA и её бесчисленные вариации, суть которых в том чтобы во время обучения алайнить фичи диффузии с фичами ранее обученной качественной модельки вроде DINOv2.
В моей системе координат эта работа попадает в ту же категорию, только в контексте VLM. Вместо того чтобы учить I2T с нуля, давайте сначала научим модель выдавать такие эмбеды, по которым можно хорошо сгенерировать картинку. Предполагается, что если эмбеды достаточно информативны для генерации качественной картинки, то и для генерации текстового описания картинок они тоже сгодятся.
Tl;DR метода
Учим vision-language-vision (VLV) автоэнкодер который кодирует картинки в текстовые эмбеды так, чтобы потом декодер (диффузионка) мог их декодировать в картинку. Потом вместо диффузионного декодера подставляем LM, чуть тюним и получаем SOTA кепшенер.
Эксперименты
Первая стадия (обучение VLV) варится на 40M сабсете дофильтрованного LAION-aes. Это вполне ок потому что на этой стадии нам нужны только качественные картинки для обучения в self-supervised режиме.
На второй стадии используем 6M синтетических image-text пар сгенеренных Gemini-2.0 Flash.
Обучение инициализируют Florence-2 карточным энкодером, SDv2.1 диффузионным декодером (странный выбор) и Qwen-2.5 разного размера в LM части на второй стадии. Первая стадия обучается порядка 1к GPU часов, вторая — не известно, но суммарный бюджет получается скромный.
Что получилось
Основной результат — качество image captioning на уровне GPT-4o (превосходит Qwen-2.5 VL). Об остальных результатах трудно судить: картинки как-то генерятся, few-shot VQA как-то делается.
Для меня эта работа, в первую очередь, показатель того что “можно еще и так” + некоторый альтернативный источник мультимодальных эмбедингов.
Открытые вопросы
Вторая стадия обучения делается на синтетике из Gemini. Это может сильно увеличивать эффективность I2T обучения само по себе. Не хватает ablation этого фактора и влияния первой стадии обучения.
В сапмате есть секция про то что первая стадия обучения помогает. Если её скипнуть, то качество сильно хуже, но не понятно что было бы если бы мы сделали обычный VLM претрен и потом провели предложенный на второй стадии тюнинг.
🔥5