QUANT_PRUNE_DISTILL Telegram 187
MobileDiffusion: Subsecond Text-to-Image Generation on Mobile Devices
[Статья] [Кода нет]

Было еще тут.

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

Скорость генерации диффузионной модели определяется количеством шагов сэмплирования и стоимостью одного шага. На текущий момент, большинство внимания уделяется ускорению моделей за счет первого фактора - изобретением новых солверов, алгоритмов пошаговой дистилляции. Оптимизации архитектуры уделяется же значительно меньше внимания. Типичные модели хороши для GPU, но тяжеловаты для мобилок, потому имеет смысл уменьшать саму модель, сохраняя качество.

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

Метод

За основу берут StableDiffusion v1.5.

Трансформерные блоки

Первая оптимизация, мотивированная прошлыми работами UViT и SnapFusion, - уборка дорогих и не очень полезных attention с самого высокого разрешения. Кроме того, на разрешении 32x32 оставляют только cross-attention с текстовыми токенами, потому что self-attention с 1024 все еще дорогой. Таким образом, self-attention есть только на разрешении 16x16. Кроме того, объединяют проекции Key и Value, чтобы еще чуть-чуть сэкономить на параметрах, заменяют gelu на swish, который более эффективен на мобилках и приятнее с точки зрения последующего квантования модели, и softmax на relu. В последнем случае, обученную с softmax модель, файнтьюнят 10к шагов с relu, и якобы не теряют в качестве.

И уменьшают expansion в FeedForward слоях с 8 до 6 без просадки в качестве.

Сверточные блоки

Вместо обычных сверток 3x3 используют depthwise-separable с меньшим числом параметров и операций. Утверждается, что качество не просаживается. Кроме того, уменьшили общее количество блоков с 22 в SD до 12.

Целевая модель должна иметь не более 400 миллионов параметров и 200 GFLOPs на инференсе. Авторы запустили перебор разных конфигураций блоков и ширин каналов (детали процесса опущены) и отобрали самых удачных кандидатов.

Пошаговая дистилляция

Для пошаговой дистилляции были рассмотрены две стратегии:
1⃣️️️️️️ Прогрессивная дистилляция в 8 шагов сэмплирования
2⃣️️️️️️ UFOGen с адверсариальным лоссом

Автоэнкодер

Кроме того, вместо исходного автоэнкодера из SD, авторы обучили свой, более компактный, но кодирующий в 8 каналов вместо 4-х. Потом его еще запрунили (непонятно как). Полученный VAE и быстрее и лучше по метрикам.
👍8🫡1



tgoop.com/quant_prune_distill/187
Create:
Last Update:

MobileDiffusion: Subsecond Text-to-Image Generation on Mobile Devices
[Статья] [Кода нет]

Было еще тут.

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

Скорость генерации диффузионной модели определяется количеством шагов сэмплирования и стоимостью одного шага. На текущий момент, большинство внимания уделяется ускорению моделей за счет первого фактора - изобретением новых солверов, алгоритмов пошаговой дистилляции. Оптимизации архитектуры уделяется же значительно меньше внимания. Типичные модели хороши для GPU, но тяжеловаты для мобилок, потому имеет смысл уменьшать саму модель, сохраняя качество.

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

Метод

За основу берут StableDiffusion v1.5.

Трансформерные блоки

Первая оптимизация, мотивированная прошлыми работами UViT и SnapFusion, - уборка дорогих и не очень полезных attention с самого высокого разрешения. Кроме того, на разрешении 32x32 оставляют только cross-attention с текстовыми токенами, потому что self-attention с 1024 все еще дорогой. Таким образом, self-attention есть только на разрешении 16x16. Кроме того, объединяют проекции Key и Value, чтобы еще чуть-чуть сэкономить на параметрах, заменяют gelu на swish, который более эффективен на мобилках и приятнее с точки зрения последующего квантования модели, и softmax на relu. В последнем случае, обученную с softmax модель, файнтьюнят 10к шагов с relu, и якобы не теряют в качестве.

И уменьшают expansion в FeedForward слоях с 8 до 6 без просадки в качестве.

Сверточные блоки

Вместо обычных сверток 3x3 используют depthwise-separable с меньшим числом параметров и операций. Утверждается, что качество не просаживается. Кроме того, уменьшили общее количество блоков с 22 в SD до 12.

Целевая модель должна иметь не более 400 миллионов параметров и 200 GFLOPs на инференсе. Авторы запустили перебор разных конфигураций блоков и ширин каналов (детали процесса опущены) и отобрали самых удачных кандидатов.

Пошаговая дистилляция

Для пошаговой дистилляции были рассмотрены две стратегии:
1⃣️️️️️️ Прогрессивная дистилляция в 8 шагов сэмплирования
2⃣️️️️️️ UFOGen с адверсариальным лоссом

Автоэнкодер

Кроме того, вместо исходного автоэнкодера из SD, авторы обучили свой, более компактный, но кодирующий в 8 каналов вместо 4-х. Потом его еще запрунили (непонятно как). Полученный VAE и быстрее и лучше по метрикам.

BY КПД


Share with your friend now:
tgoop.com/quant_prune_distill/187

View MORE
Open in Telegram


Telegram News

Date: |

The main design elements of your Telegram channel include a name, bio (brief description), and avatar. Your bio should be: fire bomb molotov November 18 Dylan Hollingsworth yau ma tei 4How to customize a Telegram channel? Today, we will address Telegram channels and how to use them for maximum benefit. Just as the Bitcoin turmoil continues, crypto traders have taken to Telegram to voice their feelings. Crypto investors can reduce their anxiety about losses by joining the “Bear Market Screaming Therapy Group” on Telegram.
from us


Telegram КПД
FROM American