Автор: Нина Коновалова
Редактура: Александр Наздрюхин
В этом обзоре мы изучим способы дистилляции диффузионных моделей в один или несколько шагов. Перед этим советуем вам изучить наш предыдущий обзор по дистилляции диффузии, чтобы лучше понимать контекст 🙂
Диффузионные модели сейчас — одни из самых распространённых генеративных моделей, моделирующих изображения, видно, звук и даже 3D-модели.
Однако важным их недостатком является скорость: необходимо прогонять большую тяжеловесную модель много раз (за несколько шагов) для генерации одного сэмпла.
Чтобы нивелировать данную проблему, обычно предлагают использовать дистилляцию диффузионной модели «учителя» в «ученика» — одношаговый (или в несколько шагов) генератор, архитектура которого часто совпадает с архитектурой «учителя».
Для лучшего понимания материала рекомендуем прочитать наши посты:
Итак, давайте перейдём к более продвинутым работам для дистилляции моделей Stability AI.
В статье нам уже встречались картинки, сгенерированные с помощью Stable Diffusion XL Turbo. Но что это за модель? Как авторы ускорили SDXL для получения SDXL Turbo? Разберёмся со всем по порядку 🙂
В техническом отчёте на модель авторы говорят об использовании Adversarial Diffusion Distillation (ADD). Поэтому в данном разделе мы наченём обсуждение именно с неё.
Adversarial Diffusion Distillation (ADD) — дистилляция, где учителем выступает обычная диффузионная модель. Однако авторы предлагают использовать дискриминатор, который умеет отличать реальные картинки от сгенерированных нашим учеником.
Рисунок 1. Пайплайн adversarial distillation [источник]
Обучение включает использование трёх моделей на реальных изображениях: