UniDDT: Unifying Multimodal Understanding and Generation with Decoupled Diffusion Transformer
[ссылка на код, а кода нет ☔️]
Очередная unified MM-модель от Nanjing + ByteDance Seed с декаплингом диффузионного декодера от LLM-бэкбона в духе DDT/RAE/PixNerd. Авторы атакуют две знакомые проблемы UMM: конфликт understanding и generation лоссов и фрагментированное виз пространство.
Архитектура
Noisy ViT → LLM-бэкбон (Qwen3-VL-4B для VLM-UniDDT) → отдельный diffusion decoder (~1B). Ключевая фишка — Noisy ViT учат принимать вход на любом таймстепе шума, поэтому один энкодер обслуживает и понимание (t=0), и генерацию (t>0). Инициализируют дистилляцией из SigLIP2 / Qwen-NaViT.
Виз пространство — латенты Flux VAE. Пиксели чуть лучше для understanding, но скейлятся в генерации хуже, поэтому остановились на латентах.
Обучение
1️⃣ Warmup: отдельно греют ViT и декодер, чтобы не словить коллапс при joint-тренинге с нуля
2️⃣ Joint: размораживают всё, учат на duality — из одной пары (картинка, текст) собирают и generate, и семплы. Без таск-специфичных датасетов
3️⃣ Post-training: фризят ViT+LLM, дотюнивают декодер, скармливая шумные промежуточные семплы из генерации в understanding-голову для максимизации правдоподобия
Результаты
На 16×A100, ~70М картинок: VLM-UniDDT — GenEval 0.87, DPG-Bench 86.9, MME 1699.5, SEEDBench 76.5 при ~5B параметров. На уровне или лучше BAGEL (14B). NativeUniDDT-XL — GenEval 0.89.
Замечания
Без файнтюна на 4o-данных GenEval всего 0.72, основной прирост на финальной 8К-стадии. NativeUniDDT на understanding не репортят: текст в датасете — машинные кепшены от Qwen2.5-VL-7B. С JiT не сравнились, эксперименты ставили до его релиза.
На мой вкус, ценное — честно разобранный trade-off латент/пиксель и duality на данных.
[ссылка на код, а кода нет ☔️]
Очередная unified MM-модель от Nanjing + ByteDance Seed с декаплингом диффузионного декодера от LLM-бэкбона в духе DDT/RAE/PixNerd. Авторы атакуют две знакомые проблемы UMM: конфликт understanding и generation лоссов и фрагментированное виз пространство.
Архитектура
Noisy ViT → LLM-бэкбон (Qwen3-VL-4B для VLM-UniDDT) → отдельный diffusion decoder (~1B). Ключевая фишка — Noisy ViT учат принимать вход на любом таймстепе шума, поэтому один энкодер обслуживает и понимание (t=0), и генерацию (t>0). Инициализируют дистилляцией из SigLIP2 / Qwen-NaViT.
Виз пространство — латенты Flux VAE. Пиксели чуть лучше для understanding, но скейлятся в генерации хуже, поэтому остановились на латентах.
Обучение
1️⃣ Warmup: отдельно греют ViT и декодер, чтобы не словить коллапс при joint-тренинге с нуля
2️⃣ Joint: размораживают всё, учат на duality — из одной пары (картинка, текст) собирают и generate, и семплы. Без таск-специфичных датасетов
3️⃣ Post-training: фризят ViT+LLM, дотюнивают декодер, скармливая шумные промежуточные семплы из генерации в understanding-голову для максимизации правдоподобия
Результаты
На 16×A100, ~70М картинок: VLM-UniDDT — GenEval 0.87, DPG-Bench 86.9, MME 1699.5, SEEDBench 76.5 при ~5B параметров. На уровне или лучше BAGEL (14B). NativeUniDDT-XL — GenEval 0.89.
Замечания
Без файнтюна на 4o-данных GenEval всего 0.72, основной прирост на финальной 8К-стадии. NativeUniDDT на understanding не репортят: текст в датасете — машинные кепшены от Qwen2.5-VL-7B. С JiT не сравнились, эксперименты ставили до его релиза.
На мой вкус, ценное — честно разобранный trade-off латент/пиксель и duality на данных.