SVDQuant: Assorbimento degli Outlier tramite Componenti a Basso Rango per Modelli di Diffusione a 4 Bit
SVDQunat: Absorbing Outliers by Low-Rank Components for 4-Bit Diffusion Models
November 7, 2024
Autori: Muyang Li, Yujun Lin, Zhekai Zhang, Tianle Cai, Xiuyu Li, Junxian Guo, Enze Xie, Chenlin Meng, Jun-Yan Zhu, Song Han
cs.AI
Abstract
I modelli di diffusione si sono dimostrati estremamente efficaci nella generazione di immagini di alta qualità. Tuttavia, man mano che questi modelli aumentano di dimensioni, richiedono significativamente più memoria e soffrono di una latenza più elevata, ponendo sfide sostanziali per il deployment. In questo lavoro, miriamo ad accelerare i modelli di diffusione quantizzando i loro pesi e attivazioni a 4 bit. A un livello così aggressivo, sia i pesi che le attivazioni sono altamente sensibili, dove i metodi convenzionali di quantizzazione post-addestramento per modelli linguistici di grandi dimensioni, come lo smoothing, diventano insufficienti. Per superare questa limitazione, proponiamo SVDQuant, un nuovo paradigma di quantizzazione a 4 bit. A differenza dello smoothing, che ridistribuisce i valori anomali (outliers) tra pesi e attivazioni, il nostro approccio assorbe questi outlier utilizzando un ramo (branch) a basso rango. Prima consolidiamo gli outlier spostandoli dalle attivazioni ai pesi, quindi impieghiamo un ramo a basso rango e alta precisione per assorbire gli outlier dei pesi tramite la SVD (Singular Value Decomposition). Questo processo facilita la quantizzazione su entrambi i lati. Tuttavia, eseguire ingenuamente il ramo a basso rango in modo indipendente comporta un sovraccarico significativo a causa del movimento extra di dati delle attivazioni, annullando il guadagno di velocità della quantizzazione. Per affrontare questo problema, co-progettiamo un motore di inferenza, Nunchaku, che fonde i kernel del ramo a basso rango con quelli del ramo a basso numero di bit per eliminare l'accesso alla memoria ridondante. Esso può anche supportare perfettamente adattatori a basso rango (LoRA) standard senza la necessità di una ri-quantizzazione. Esperimenti estensivi su SDXL, PixArt-Sigma e FLUX.1 convalidano l'efficacia di SVDQuant nel preservare la qualità dell'immagine. Riduciamo l'utilizzo di memoria per i modelli FLUX.1 da 12B di 3.5 volte, raggiungendo un speedup di 3.0 volte rispetto alla baseline quantizzata a 4 bit (solo pesi) sulla GPU laptop 4090 da 16 GB, aprendo la strada a applicazioni più interattive sui PC. La nostra libreria di quantizzazione e il motore di inferenza sono 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.