Автор: Нина Коновалова

Редактура: Александр Наздрюхин

Введение

В этом обзоре мы изучим способы дистилляции диффузионных моделей в один или несколько шагов. Перед этим советуем вам изучить наш предыдущий обзор по дистилляции диффузии, чтобы лучше понимать контекст 🙂

Диффузионные модели сейчас — одни из самых распространённых генеративных моделей, моделирующих изображения, видно, звук и даже 3D-модели.

Однако важным их недостатком является скорость: необходимо прогонять большую тяжеловесную модель много раз (за несколько шагов) для генерации одного сэмпла.

Чтобы нивелировать данную проблему, обычно предлагают использовать дистилляцию диффузионной модели «учителя» в «ученика» — одношаговый (или в несколько шагов) генератор, архитектура которого часто совпадает с архитектурой «учителя».

Для лучшего понимания материала рекомендуем прочитать наши посты:

Adversarial Diffusion Distillation

Итак, давайте перейдём к более продвинутым работам для дистилляции моделей Stability AI.

В статье нам уже встречались картинки, сгенерированные с помощью Stable Diffusion XL Turbo. Но что это за модель? Как авторы ускорили SDXL для получения SDXL Turbo? Разберёмся со всем по порядку 🙂

В техническом отчёте на модель авторы говорят об использовании Adversarial Diffusion Distillation (ADD). Поэтому в данном разделе мы наченём обсуждение именно с неё.

Описание метода

Adversarial Diffusion Distillation (ADD) — дистилляция, где учителем выступает обычная диффузионная модель. Однако авторы предлагают использовать дискриминатор, который умеет отличать реальные картинки от сгенерированных нашим учеником.

Рисунок 1. Пайплайн adversarial distillation [источник]

Рисунок 1. Пайплайн adversarial distillation [источник]

Модели

Обучение включает использование трёх моделей на реальных изображениях: