Cachez-moi si vous pouvez : Accélérer les modèles de diffusion grâce à la mise en cache par blocs
Cache Me if You Can: Accelerating Diffusion Models through Block Caching
December 6, 2023
Auteurs: Felix Wimbauer, Bichen Wu, Edgar Schoenfeld, Xiaoliang Dai, Ji Hou, Zijian He, Artsiom Sanakoyeu, Peizhao Zhang, Sam Tsai, Jonas Kohler, Christian Rupprecht, Daniel Cremers, Peter Vajda, Jialiang Wang
cs.AI
Résumé
Les modèles de diffusion ont récemment révolutionné le domaine de la synthèse d'images grâce à leur capacité à générer des images photoréalistes. Cependant, l'un des principaux inconvénients des modèles de diffusion est que le processus de génération d'images est coûteux. Un grand réseau image-à-image doit être appliqué de nombreuses fois pour affiner itérativement une image à partir d'un bruit aléatoire. Bien que de nombreux travaux récents proposent des techniques pour réduire le nombre d'étapes nécessaires, ils traitent généralement le réseau de débruiteur sous-jacent comme une boîte noire. Dans ce travail, nous étudions le comportement des couches au sein du réseau et constatons que 1) la sortie des couches évolue de manière fluide dans le temps, 2) les couches présentent des motifs de changement distincts, et 3) le changement d'une étape à l'autre est souvent très faible. Nous émettons l'hypothèse que de nombreux calculs de couches dans le réseau de débruiteur sont redondants. En tirant parti de cela, nous introduisons le bloc de mise en cache, dans lequel nous réutilisons les sorties des blocs de couches des étapes précédentes pour accélérer l'inférence. De plus, nous proposons une technique pour déterminer automatiquement les plans de mise en cache en fonction des changements de chaque bloc au fil des pas de temps. Dans nos expériences, nous montrons, à travers l'analyse FID, l'évaluation humaine et l'analyse qualitative, que le bloc de mise en cache permet de générer des images avec une qualité visuelle supérieure pour un coût de calcul équivalent. Nous démontrons cela pour différents modèles de pointe (LDM et EMU) et solveurs (DDIM et DPM).
English
Diffusion models have recently revolutionized the field of image synthesis
due to their ability to generate photorealistic images. However, one of the
major drawbacks of diffusion models is that the image generation process is
costly. A large image-to-image network has to be applied many times to
iteratively refine an image from random noise. While many recent works propose
techniques to reduce the number of required steps, they generally treat the
underlying denoising network as a black box. In this work, we investigate the
behavior of the layers within the network and find that 1) the layers' output
changes smoothly over time, 2) the layers show distinct patterns of change, and
3) the change from step to step is often very small. We hypothesize that many
layer computations in the denoising network are redundant. Leveraging this, we
introduce block caching, in which we reuse outputs from layer blocks of
previous steps to speed up inference. Furthermore, we propose a technique to
automatically determine caching schedules based on each block's changes over
timesteps. In our experiments, we show through FID, human evaluation and
qualitative analysis that Block Caching allows to generate images with higher
visual quality at the same computational cost. We demonstrate this for
different state-of-the-art models (LDM and EMU) and solvers (DDIM and DPM).