SVDQuant:MIT 推出的扩散模型后训练的量化技术,能够将模型的权重和激活值量化至4位,减少内存占用并加速推理过程

简介: SVDQuant是由MIT研究团队推出的扩散模型后训练量化技术,通过将模型的权重和激活值量化至4位,显著减少了内存占用并加速了推理过程。该技术引入了高精度的低秩分支来吸收量化过程中的异常值,支持多种架构,并能无缝集成低秩适配器(LoRAs),为资源受限设备上的大型扩散模型部署提供了有效的解决方案。

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


🚀 快速阅读

  1. 量化压缩:将扩散模型的权重和激活值量化到4位,减少模型大小和内存占用。
  2. 加速推理:通过量化减少计算复杂度,提高模型在GPU上的推理速度。
  3. 低秩分支:引入低秩分支处理量化中的异常值,减少量化误差,提升图像质量。

正文(附运行示例)

SVDQuant 是什么

公众号: 蚝油菜花 - nunchaku

SVDQuant是由MIT研究团队推出的后训练量化技术,专门针对扩散模型进行优化。该技术通过将模型的权重和激活值量化至4位,显著减少了内存占用,并加速了推理过程。SVDQuant引入了一个高精度的低秩分支,用于吸收量化过程中的异常值,从而在保持图像质量的同时,实现了在16GB 4090 GPU上3.5倍的显存优化和8.7倍的延迟减少。

SVDQuant支持DiT和UNet架构,并能无缝集成现成的低秩适配器(LoRAs),无需重新量化。这为在资源受限的设备上部署大型扩散模型提供了有效的解决方案。

SVDQuant 的主要功能

  • 量化压缩:将扩散模型的权重和激活值量化到4位,减少模型大小,降低内存占用。
  • 加速推理:量化减少计算复杂度,提高模型在GPU上的推理速度。
  • 低秩分支吸收异常值:引入低秩分支处理量化中的异常值,减少量化误差。
  • 内核融合:设计推理引擎Nunchaku,基于内核融合减少内存访问,进一步提升推理效率。
  • 支持多种架构:兼容DiT和UNet架构的扩散模型。
  • LoRA集成:无缝集成低秩适配器(LoRAs),无需重新量化。

SVDQuant 的技术原理

  • 量化处理:对模型的权重和激活值进行4位量化,对保持模型性能构成挑战。
  • 异常值处理:用平滑技术将激活值中的异常值转移到权重上,基于SVD分解权重,将权重分解为低秩分量和残差。
  • 低秩分支:引入16位精度的低秩分支处理权重中的异常值,将残差量化到4位,降低量化难度。
  • Eckart-Young-Mirsky定理:移除权重中的主导奇异值,大幅减小权重的幅度和异常值。
  • 推理引擎Nunchaku:设计推理引擎,基于融合低秩分支和低比特分支的内核,减少内存访问和内核调用次数,降低延迟。

如何运行 SVDQuant

安装依赖

首先,创建并激活一个conda环境,然后安装所需的依赖包:

conda create -n nunchaku python=3.11
conda activate nunchaku
pip install torch==2.4.1 torchvision==0.19.1 torchaudio==2.4.1 --index-url https://download.pytorch.org/whl/cu121
pip install diffusers ninja wheel transformers accelerate sentencepiece protobuf
pip install huggingface_hub peft opencv-python einops gradio spaces GPUtil

安装 nunchaku

确保你已经安装了gcc/g++>=11。如果没有,可以通过Conda安装:

conda install -c conda-forge gxx=11 gcc=11

然后从源码构建并安装nunchaku包:

git clone https://github.com/mit-han-lab/nunchaku.git
cd nunchaku
git submodule init
git submodule update
pip install -e .

使用示例

example.py中,提供了一个运行INT4 FLUX.1-schnell模型的最小脚本:

import torch
from diffusers import FluxPipeline
from nunchaku.models.transformer_flux import NunchakuFluxTransformer2dModel

transformer = NunchakuFluxTransformer2dModel.from_pretrained("mit-han-lab/svdq-int4-flux.1-schnell")
pipeline = FluxPipeline.from_pretrained(
    "black-forest-labs/FLUX.1-schnell", transformer=transformer, torch_dtype=torch.bfloat16
).to("cuda")
image = pipeline("A cat holding a sign that says hello world", num_inference_steps=4, guidance_scale=0).images[0]
image.save("example.png")

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发非常感兴趣,我会每日跟你分享最新的 AI 资讯和开源应用,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦

相关文章
|
8月前
|
机器学习/深度学习 算法 PyTorch
125_训练加速:FlashAttention集成 - 推导注意力优化的独特内存节省
2025年,大型语言模型的训练面临着前所未有的挑战。随着模型参数量和序列长度的不断增加,传统注意力机制的内存瓶颈问题日益突出。FlashAttention作为一种突破性的注意力算法,通过创新的内存访问模式和计算优化,显著提升了训练效率和内存利用。
909 3
|
8月前
|
存储 机器学习/深度学习 PyTorch
119_LLM训练的高效内存管理与优化技术:从ZeRO到Flash Attention
大型语言模型(LLM)的训练面临着前所未有的计算和内存挑战。随着模型规模达到数百亿甚至数千亿参数,高效的内存管理成为训练成功的关键因素之一。2025年,LLM训练的内存优化技术已经取得了显著进展,从ZeRO优化器到Flash Attention等创新技术,为训练超大规模模型提供了可能。
868 159
|
机器学习/深度学习 存储 算法
NoProp:无需反向传播,基于去噪原理的非全局梯度传播神经网络训练,可大幅降低内存消耗
反向传播算法虽是深度学习基石,但面临内存消耗大和并行扩展受限的问题。近期,牛津大学等机构提出NoProp方法,通过扩散模型概念,将训练重塑为分层去噪任务,无需全局前向或反向传播。NoProp包含三种变体(DT、CT、FM),具备低内存占用与高效训练优势,在CIFAR-10等数据集上达到与传统方法相当的性能。其层间解耦特性支持分布式并行训练,为无梯度深度学习提供了新方向。
848 1
NoProp:无需反向传播,基于去噪原理的非全局梯度传播神经网络训练,可大幅降低内存消耗
|
8月前
|
Java 大数据 Go
从混沌到秩序:Java共享内存模型如何通过显式约束驯服并发?
并发编程旨在混乱中建立秩序。本文对比Java共享内存模型与Golang消息传递模型,剖析显式同步与隐式因果的哲学差异,揭示happens-before等机制如何保障内存可见性与数据一致性,展现两大范式的深层分野。(238字)
255 4
|
KVM 虚拟化
KVM的热添加技术之内存
文章介绍了KVM虚拟化技术中如何通过命令行调整虚拟机内存配置,包括调小和调大内存的步骤,以及一些相关的注意事项。
476 4
KVM的热添加技术之内存
|
10月前
|
人工智能 边缘计算 自然语言处理
普通电脑也能跑AI:10个8GB内存的小型本地LLM模型推荐
随着模型量化技术的发展,大语言模型(LLM)如今可在低配置设备上高效运行。本文介绍本地部署LLM的核心技术、主流工具及十大轻量级模型,探讨如何在8GB内存环境下实现高性能AI推理,涵盖数据隐私、成本控制与部署灵活性等优势。
9897 0
普通电脑也能跑AI:10个8GB内存的小型本地LLM模型推荐
|
程序员 编译器 C++
【C++核心】C++内存分区模型分析
这篇文章详细解释了C++程序执行时内存的四个区域:代码区、全局区、栈区和堆区,以及如何在这些区域中分配和释放内存。
304 2
|
11月前
|
数据采集 编解码 人工智能
Gemma 3n正式版开源:谷歌全新端侧多模态大模型,2GB 内存就能跑,重点提升编码和推理能力!
6月底,Google正式开源发布了全新端侧多模态大模型 Gemma 3n!相较此前的预览版,最新的 Gemma 3n 完整版进一步提升性能表现,支持在 2GB 内存的硬件上本地运行,重点提升了编码和推理方面的能力。
1351 1
|
10月前
|
机器学习/深度学习 监控 安全
解密虚拟化弹性内存:五大核心技术与实施策略
本文深入解析虚拟化环境中实现内存弹性管理的五大核心技术与实施策略。内容涵盖内存架构演进、关键技术原理、性能优化方法及典型问题解决方案,助力提升虚拟机密度与资源利用率。
441 0
|
存储 人工智能 编解码
TripoSF:3D建模内存暴降80%!VAST AI新一代模型细节狂飙82%
TripoSF 是 VAST AI 推出的新一代 3D 基础模型,采用创新的 SparseFlex 表示方法,支持 1024³ 高分辨率建模,内存占用降低 82%,在细节捕捉和复杂结构处理上表现优异。
554 10
TripoSF:3D建模内存暴降80%!VAST AI新一代模型细节狂飙82%

热门文章

最新文章