SVDQunat: Opnemen van uitschieters door componenten met lage rang voor 4-bits diffusiemodellen
SVDQunat: Absorbing Outliers by Low-Rank Components for 4-Bit Diffusion Models
November 7, 2024
Auteurs: Muyang Li, Yujun Lin, Zhekai Zhang, Tianle Cai, Xiuyu Li, Junxian Guo, Enze Xie, Chenlin Meng, Jun-Yan Zhu, Song Han
cs.AI
Samenvatting
Diffusiemodellen zijn bewezen zeer effectief te zijn in het genereren van hoogwaardige afbeeldingen. Naarmate deze modellen echter groter worden, vergen ze aanzienlijk meer geheugen en hebben ze last van hogere latentie, wat aanzienlijke uitdagingen oplevert voor implementatie. In dit werk streven we ernaar diffusiemodellen te versnellen door hun gewichten en activeringen te kwantiseren naar 4 bits. Op zo'n agressief niveau zijn zowel gewichten als activeringen zeer gevoelig, waarbij conventionele kwantiseringsmethoden na training voor grote taalmmodellen, zoals smoothing, ontoereikend blijken. Om deze beperking te overwinnen, stellen we SVDQuant voor, een nieuw 4-bits kwantiseringsparadigma. In tegenstelling tot smoothing, dat uitbijters herverdeelt tussen gewichten en activeringen, absorbeert onze aanpak deze uitbijters met behulp van een low-rank branch. We consolideren eerst de uitbijters door ze van activeringen naar gewichten te verplaatsen, en gebruiken vervolgens een high-precision low-rank branch om de gewichtsuitbijters op te nemen met Singular Value Decomposition (SVD). Dit proces vereenvoudigt de kwantisering aan beide kanten. Echter, wanneer de low-rank branch naïef onafhankelijk wordt uitgevoerd, ontstaat er een aanzienlijke overhead door extra dataverplaatsing van activeringen, wat de snelheidswinst door kwantisering tenietdoet. Om dit aan te pakken, co-ontwerpen we een inference-engine, Nunchaku, die de kernels van de low-rank branch fuseert met die van de low-bit branch om overbodige geheugentoegang te elimineren. Het kan ook naadloos ondersteuning bieden voor kant-en-klare low-rank adapters (LoRA's) zonder herkwantisering. Uitgebreide experimenten met SDXL, PixArt-Sigma en FLUX.1 valideren de effectiviteit van SVDQuant in het behouden van de beeldkwaliteit. We verminderen het geheugengebruik voor de 12B FLUX.1-modellen met 3,5 keer en behalen een 3,0 keer snellere snelheid vergeleken met de 4-bits alleen-gewichten gekwantiseerde baseline op een laptop met een 16GB 4090 GPU, wat de weg effent voor meer interactieve toepassingen op pc's. Onze kwantiseringbibliotheek en inference-engine zijn 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.