SVDQunat: Absorption von Ausreißern durch Niedrigrang-Komponenten für 4-Bit-Diffusionsmodelle
SVDQunat: Absorbing Outliers by Low-Rank Components for 4-Bit Diffusion Models
November 7, 2024
papers.authors: Muyang Li, Yujun Lin, Zhekai Zhang, Tianle Cai, Xiuyu Li, Junxian Guo, Enze Xie, Chenlin Meng, Jun-Yan Zhu, Song Han
cs.AI
papers.abstract
Diffusionsmodelle haben sich als äußerst effektiv bei der Erzeugung hochwertiger Bilder erwiesen. Allerdings erfordern diese Modelle mit zunehmender Größe deutlich mehr Speicher und leiden unter höherer Latenz, was erhebliche Herausforderungen für die Bereitstellung darstellt. In dieser Arbeit zielen wir darauf ab, Diffusionsmodelle zu beschleunigen, indem wir ihre Gewichte und Aktivierungen auf 4 Bit quantisieren. Bei einem derart aggressiven Niveau sind sowohl Gewichte als auch Aktivierungen hochsensibel, wodurch herkömmliche Post-Training-Quantisierungsmethoden für große Sprachmodelle wie Glättung unzureichend werden. Um diese Einschränkung zu überwinden, schlagen wir SVDQuant vor, ein neues 4-Bit-Quantisierungsparadigma. Im Gegensatz zur Glättung, die Ausreißer zwischen Gewichten und Aktivierungen umverteilt, absorbiert unser Ansatz diese Ausreißer mithilfe eines niedrigrangigen Zweigs. Zunächst konsolidieren wir die Ausreißer, indem wir sie von den Aktivierungen zu den Gewichten verschieben, und verwenden dann einen hochpräzisen niedrigrangigen Zweig, um die Gewichtsausreißer mit der Singulärwertzerlegung (SVD) aufzunehmen. Dieser Prozess erleichtert die Quantisierung auf beiden Seiten. Allerdings führt das unabhängige Ausführen des niedrigrangigen Zweigs in naiver Weise zu erheblichem Overhead aufgrund zusätzlicher Datenbewegungen von Aktivierungen, was den Quantisierungsgeschwindigkeitsvorteil zunichtemacht. Um dies zu beheben, entwickeln wir eine Inferenz-Engine namens Nunchaku, die die Kerne des niedrigrangigen Zweigs mit denen des niedrigbitigen Zweigs verschmilzt, um redundanten Speicherzugriff zu vermeiden. Sie kann auch nahtlos vorgefertigte niedrigrangige Adapter (LoRAs) unterstützen, ohne dass eine erneute Quantisierung erforderlich ist. Umfangreiche Experimente mit SDXL, PixArt-Sigma und FLUX.1 bestätigen die Wirksamkeit von SVDQuant bei der Bewahrung der Bildqualität. Wir reduzieren den Speicherverbrauch für die 12B FLUX.1-Modelle um das 3,5-fache und erreichen eine 3,0-fache Beschleunigung gegenüber der 4-Bit-Gewichtsquantisierungs-Baseline auf der 16GB Laptop-4090-GPU, was den Weg für interaktivere Anwendungen auf PCs ebnet. Unsere Quantisierungsbibliothek und Inferenz-Engine sind Open Source.
English
Diffusion models have been proven highly effective at generating high-quality
images. However, as these models grow larger, they require significantly more
memory and suffer from higher latency, posing substantial challenges for
deployment. In this work, we aim to accelerate diffusion models by quantizing
their weights and activations to 4 bits. At such an aggressive level, both
weights and activations are highly sensitive, where conventional post-training
quantization methods for large language models like smoothing become
insufficient. To overcome this limitation, we propose SVDQuant, a new 4-bit
quantization paradigm. Different from smoothing which redistributes outliers
between weights and activations, our approach absorbs these outliers using a
low-rank branch. We first consolidate the outliers by shifting them from
activations to weights, then employ a high-precision low-rank branch to take in
the weight outliers with Singular Value Decomposition (SVD). This process eases
the quantization on both sides. However, na\"{\i}vely running the low-rank
branch independently incurs significant overhead due to extra data movement of
activations, negating the quantization speedup. To address this, we co-design
an inference engine Nunchaku that fuses the kernels of the low-rank branch into
those of the low-bit branch to cut off redundant memory access. It can also
seamlessly support off-the-shelf low-rank adapters (LoRAs) without the need for
re-quantization. Extensive experiments on SDXL, PixArt-Sigma, and FLUX.1
validate the effectiveness of SVDQuant in preserving image quality. We reduce
the memory usage for the 12B FLUX.1 models by 3.5times, achieving
3.0times speedup over the 4-bit weight-only quantized baseline on the 16GB
laptop 4090 GPU, paving the way for more interactive applications on PCs. Our
quantization library and inference engine are open-sourced.