Diffusion-Modelle haben sich als äußerst effektiv bei der Generierung hochwertiger Bilder erwiesen. Mit zunehmender Größe dieser Modelle steigt jedoch auch der Bedarf an Speicher und die Latenz, was erhebliche Herausforderungen für die Bereitstellung mit sich bringt. Besonders für interaktive Anwendungen und die Nutzung auf ressourcenbeschränkten Geräten wie PCs oder Smartphones ist die Optimierung der Effizienz entscheidend.
Ein vielversprechender Ansatz zur Beschleunigung von Diffusion-Modellen ist die Quantisierung ihrer Gewichte und Aktivierungen. Dabei werden die Werte, die die Modelle intern verwenden, auf eine geringere Bit-Tiefe reduziert, was sowohl den Speicherbedarf als auch die Rechenkosten senkt. Während bei großen Sprachmodellen (LLMs) oft eine Quantisierung der Gewichte allein ausreichend ist, um deutliche Geschwindigkeitsgewinne zu erzielen, ist dies bei Diffusion-Modellen anders. Da diese Modelle rechengebunden sind, muss für eine effektive Beschleunigung sowohl die Quantisierung der Gewichte als auch der Aktivierungen auf die gleiche Bit-Tiefe erfolgen.
Herkömmliche Post-Training-Quantisierungsmethoden, die beispielsweise bei LLMs eingesetzt werden, stoßen bei der aggressiven 4-Bit-Quantisierung von Diffusion-Modellen an ihre Grenzen. Hier setzt SVDQuant an, ein neuartiges Quantisierungsparadigma, das speziell für diesen Anwendungsfall entwickelt wurde. Im Gegensatz zu herkömmlichen Methoden, die Ausreißerwerte zwischen Gewichten und Aktivierungen umverteilen (Smoothing), absorbiert SVDQuant diese Ausreißer mithilfe eines Low-Rank-Zweigs. Dieser Zweig arbeitet mit höherer Präzision und übernimmt die Ausreißerwerte, die durch eine Singulärwertzerlegung (SVD) aus den Gewichten extrahiert werden. Dadurch wird die Quantisierung sowohl der Gewichte als auch der Aktivierungen erleichtert und die Bildqualität bleibt erhalten.
Die separate Ausführung des Low-Rank-Zweigs würde jedoch zu einem erheblichen Overhead bei der Datenbewegung führen und den Geschwindigkeitsvorteil der Quantisierung zunichtemachen. Um dies zu verhindern, wurde die Inferenz-Engine Nunchaku entwickelt. Nunchaku fusioniert die Kernel des Low-Rank-Zweigs mit denen des Low-Bit-Zweigs und reduziert so den redundanten Speicherzugriff. Darüber hinaus unterstützt Nunchaku die nahtlose Integration von Low-Rank-Adaptern (LoRAs) ohne erneute Quantisierung.
Umfangreiche Experimente mit verschiedenen Diffusion-Modellen wie SDXL, PixArt-Sigma und FLUX.1 bestätigen die Effektivität von SVDQuant. Die Speicheranforderungen für das 12B FLUX.1-Modell konnten um das 3,5-fache reduziert werden, und auf einer Laptop-GPU mit 16 GB erreichte SVDQuant eine 3-fache Beschleunigung gegenüber der 4-Bit-Quantisierung nur der Gewichte. Diese Ergebnisse ebnen den Weg für interaktivere Anwendungen auf ressourcenbeschränkten Geräten. Die Kombination aus SVDQuant und Nunchaku ermöglicht eine effiziente Nutzung von 4-Bit-Quantisierung bei Diffusion-Modellen und eröffnet neue Möglichkeiten für die Bereitstellung dieser leistungsstarken Technologie.
Bibliographie: https://openreview.net/forum?id=vWR3KuiQur https://hanlab.mit.edu/projects/svdquant https://openreview.net/pdf/9168c38e10da9dac2844c4c2cc06af1642ef9a7a.pdf https://arxiv-sanity-lite.com/ https://hanlab.mit.edu/?88a650c9_page=4 https://www.chatpaper.com/chatpaper/zh-CN?id=4&date=1730995200&page=1 https://arxiv.org/abs/2410.03941 https://papers.cool/arxiv/cs.CV