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

⚡️Как ускорить диффузию ч2 - Samplers & Low-level optimizations

Продолжаем серию постов про основные методы для ускорения диффузионных моделей. [Ссылка на часть 1].

Optimized Sampling Efficiency by new samplers:
Есть подходы на основе численных методов, которые позволяют более эффективно решать дифференциальное уравнение, задающее траекторию обратной диффузии (это когда мы из шума движемся к картинке).
STSP: Sampling with splitting numerical methods
В эту категорию тоже можно отнести всякие замысловатые солверы, такие как DDIM, DPM, PNDM, PLMS, UniPC [пост].
Итеративный метод Пикарда, который позволяет распараллелить семплинг, ценой больших вычислений [пост].

Low-level optimizations:
Профайлером анализируем узкие места в сети и переписываем отдельные операции на CUDA и вручную оптимизируем и фьюзим кернелы. Тут общие советы трудно давать, все зависит от вашей архитектуры.
FlashAttention-2 - ускоряет flash-attention блоки, которые являются одними из самых прожорливых по ресурсам в архитектуре Unet, широко используемой в диффузиях.

#ликбез
@ai_newz