⚡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
Во время инференса диффузионной модели мы делаем десятки шагов солвера, чтобы сгенерить одну картинку. Понятно, что это не очень эффективно. Отсюда растут ноги у многих работ по ускорению диффузии и уменьшению количества шагов на инференсе. Хочется как-то уменьшить количество компьюта требуемых для генерации одной картинки.
Тут как раз вышла работа про кеширование промежуточных активаций в Latent Diffusion. Хай-левел суть в том, что можно закешировать часть выходов блоков с предыдущих шагов и переиспользовать их на следующих шагах солвера. Активации более шлубоких блоков, те что работают на более низком разрешении, сильно коррелированы между двумя последовательными шагами. А вот активации первых и последних блоков как правило меняются довольно сильно от шагу. Вот авторы и предложили не пересчитывать активации глубоких блоков, а кешировать их.
Это позволяет ускорить инференс SD v1.5 до 2-3 раз без существенной потери качества.
На гифке результаты SD v1.5. Слева: 50 PLMS шагов.
Справа: 2.3x ускорение 50 PLMS шагов с кешем.
Статья
Код
@ai_newz
Источник: эйай ньюз
2023-12-05 21:50:22