tgoop.com/quant_prune_distill/198
Last Update:
SDXL-Lightning: Progressive Adversarial Diffusion Distillation
[Статья][Кода нет, но есть модели]
Пока все ждут технического отсчета по Stable Diffusion 3 и стебутся над поделками от Google, рассмотрим свежую работу про дистилляцию диффузионок.
Некоторое время назад Stability.AI выкатили SDXL-Turbo, дистиллированную с адверсариальными лоссами версию SDXL.
Ребята из Bytedance предложили альтернативный (хоть и основанный на схожих принципах) метод дистилляции в один и малое число шагов.
Метод
Предложенный подход основывается на progressive distillation (чуть ли ни самой первой технике уменьшения шагов сэмплирования). Однако в исходной работе качество сильно проседало при уменьшении числа шагов до однозначного.
Авторы утверждают, что диффузионные модели при многошаговой генерации обладают большой константой Липшица (не путать с автором десятитомника по теоретической физике) и могут аппроксимировать сложные траектории. При малошаговой не могут, и выдают лучшее, что позволяет их емкость при оптимизации MSE лосса - мыльные генерации.
Предлагается вместо MSE лосса использовать адверсариальный - чтобы дискриминатор не мог отличить результат расшумления учителем от ученика. В SDXL-Turbo дискриминатор работает в пиксельном пространстве, что требует декодирования картинки, обработки ее ViTом в довольно высоком разрешении и вся процедура выходит довольно дорогой. Здесь же авторы в качестве тушки дискриминатора используют копию энкодера SDXL и классификатору подают агрегированные признаки со всех уровней. При обучении нет нужды декодировать картинку и можно обучать оценивать реалистичность промежуточных шагов. В качестве функции потерь берут ванильный non-saturating adversarial лосс.
Однако, оказывается, что полученная сеть подвержена генерации артефактов в стиле двуликого Януса: существа и объекты раздваиваются. Утверждается (я не понял почему), что это тоже проявление недостаточной емкости модели. Авторы дообучают модель еще некоторое время на adversarial лосс, но без примеров родительской модели. Утверждается, что это лечит Янус-артефакты.
Дистилляция проходит в несколько стадий: 128->32->8->4->2->1
.
Первая стадия довольно простая, и даже обычный MSE лосс работает, а дальше используют предложенную технику. Classifier-free guidance применяется только на первом этапе дистилляции.
BY КПД
Share with your friend now:
tgoop.com/quant_prune_distill/198