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

DeepCache: Accelerating Diffusion Models for Free

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

Тут как раз вышла работа про кеширование промежуточных активаций в Latent Diffusion. Хай-левел суть в том, что можно закешировать часть выходов блоков с предыдущих шагов и переиспользовать их на следующих шагах солвера. Активации более шлубоких блоков, те что работают на более низком разрешении, сильно коррелированы между двумя последовательными шагами. А вот активации первых и последних блоков как правило меняются довольно сильно от шагу. Вот авторы и предложили не пересчитывать активации глубоких блоков, а кешировать их.

Это позволяет ускорить инференс SD v1.5 до 2-3 раз без существенной потери качества.

Прикол в том, что мы написали статью на очень схожую тему (тоже про кешинг) - она скоро появится на архиве. Китайцы нас слегка опередили с загрузкой на Arxiv.

На гифке результаты SD v1.5. Слева: 50 PLMS шагов.
Справа: 2.3x ускорение 50 PLMS шагов с кешем.

Статья
Код

@ai_newz