Нейролента - подборка новостей о нейронных сетях, ChatGPT

⚡️Как ускорить диффузию ч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.

>> Читать часть 2

#ликбез
@ai_newz