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

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

Введение

За последние пару лет диффузионные модели прочно закрепились в мире генеративных (и не только) задач.

Рисунок 1. Изображение, сгенерированное через SDXL-Turbo

Рисунок 1. Изображение, сгенерированное через SDXL-Turbo

С их помощью мы получаем качественный и разнообразный материал при генерации:

Рисунок 2. Генерация изображений с помощью модели Midjourney

Рисунок 2. Генерация изображений с помощью модели Midjourney

[Рисунок 3. Генерация видео с помощью модели SORA](https://prod-files-secure.s3.us-west-2.amazonaws.com/fb875fd6-d46b-4f75-8a43-7beca7a54a5e/3bfb9fb7-24b2-4da8-907e-872a035682f0/happy-cat.mp4)

Рисунок 3. Генерация видео с помощью модели SORA

[Рисунок 4. Генерация музыки [источник]](https://prod-files-secure.s3.us-west-2.amazonaws.com/fb875fd6-d46b-4f75-8a43-7beca7a54a5e/21dcdec8-56e4-4da7-a935-05d26a57f505/wavegen_19.wav)

Рисунок 4. Генерация музыки [источник]

И это ещё не весь список 🙂

К сожалению, такой процесс остаётся достаточно медленным. Для генерации одного сэмпла нам зачастую нужно много запусков одной немаленькой нейронной сети, что занимает много времени в сравнении с теми же GANs.

Именно поэтому в данной статье мы с вами рассмотрим способ ускорения диффузионных моделей, но для начала давайте вспомним, а что же вообще представляют из себя диффузионки?

Диффузионные модели

Основная идея диффузионных моделей — генерация элементов распределения из шума путём постепенного расшумления.

Рисунок 5. Генерация изображений из шума [источник]

Рисунок 5. Генерация изображений из шума [источник]

Диффузионные модели можно рассматривать со стороны score matching'а, стохастических дифференциальных уравнений (SDE) или как модели со скрытыми латентными переменными (идейно близко к VAE). Подробнее об этом можно почитать в нашем посте.

Диффузионный процесс состоит из двух частей: