⚡️Как ускорить диффузию ч1 - Model Distillation
Начинаю серию постов про основные методы для ускорения диффузионных моделей, т.к это один из моих главных научных интересов. В первой части поговорим про дистилляцию. Говорить будем в разрезе text2img, но многие из этих техник могут применяться и для видео.
Мы знаем, что диффузии из коробки требуется много прогонов по сети (шагов), чтобы сгенерить картинку во время инференса. Поэтому появился целый пласт работ, которые выдают вообще адовые ускорения. Н
у такой вот примерно рецепт усредненный для дистиляции text2image моделей, потому что вариаций масса: берешь огромную модель учителя, которая генерит медленно, но качественно, и учишь студента предсказывать за 1-4 шага выходы учителя, полученные за много шагов. Магическим образом это работает. Но есть много нюансов, понять которые можно из следующих работ:
Model Distillation: ➖Guidance and
Progressive Distillation - классика жанра, где впервые провели дистилляцию до 4 шагов.
➖ Consistency Models - Более хитрая дистилляция, где на каждом шагу пытаемся предсказать конечный результат.
➖ Improved Techniques for Training Consistency Models - то же самое, но с улучшенным расписанием шагов
➖SnapFusion - пруним архитектуру Unet и дистиллируем в меньшее число шагов с помощью Progressive Distillation.
➖ InstaFlow - формулируем диффузии как линейный Flow Matching и дистиллируем в несколько раундов, пока не достигнем генерации за один шаг.
➖ UfoGen - это Diffusion + GAN, где дискриминатор инициализируется UNet-ом диффузии.
➖ Adversarial Diffusion Distillation (SDXL-Turbo) это дистилляция Diffusion + GAN, но дискриминатор тут основан на фичах DINOv2.
➖Latent Adversarial Diffusion Distillation (SD3 Turbo) — тоже самое только в latent фичах.
➖Imagine Flash — моя статья о дистилляции в 3 шага.
>>
Читать часть 2#ликбез
@ai_newz