QVGen:让视频扩散模型在4bit量化下也能接近全精度表现

QVGen让视频扩散模型在4bit量化下实现接近全精度,解决低比特量化训练不稳定的问题。

原文标题:ICLR 2026 | 把视频扩散模型压到4bit,还能接近满血效果? QVGen让「超低比特视频生成量化」真正可用

原文作者:机器之心

冷月清谈:

本文介绍了QVGen,一种新的面向视频生成扩散模型的量化感知训练(QAT)范式。QVGen 旨在解决视频扩散模型在低比特量化时训练不稳定、质量严重下降的问题。该方法的核心思想是在训练阶段引入辅助模块来降低梯度范数、提升训练稳定性,并在训练过程中逐步移除该模块,从而在推理阶段不增加额外开销。实验结果表明,QVGen 在 4-bit 量化下能够接近全精度表现,在 3-bit 量化下也能将质量恢复到可用水平。此外,QVGen 标准的均匀量化思路使其更容易对接现有的 W4A4 推理内核,带来显著的显存下降,并与其他加速方法叠加。

怜星夜思:

1、QVGen 通过辅助模块和 rank-decay 解决了视频扩散模型量化后的训练不稳定性问题,但这种方法是否具有通用性,可以推广到其他类型的生成模型或者其他任务上吗?
2、QVGen 在推理阶段可以移除辅助模块,但这是否意味着辅助模块学到的信息在训练过程中被完全转移到了主模型上?如果是这样,如何保证信息转移的效率和完整性?
3、文章提到 QVGen 可以和其他加速方法叠加,进一步提升推理速度。那么,QVGen 在实际部署时,可能会遇到哪些挑战?如何解决这些挑战?

原文内容


视频生成扩散模型越做越大:2B、5B、14B…… 效果提升很快,但训练与推理的成本也随之飙升。社区一直希望用量化把模型 “压小”,把显存和算力成本打下来,真正落到更多卡、更便宜的机器、更多真实应用中。可现实很残酷:一到 3/4 bit,视频生成的量化感知训练(QAT)往往比图像更难训、更不稳定,质量掉得更狠 —— 不是 “略降一点”,而是直接不可用。


图表 1 在 CogVideoX-2B 模型上 4-bit 逐通道权重量化与逐 token 激活量化的效果对比。(a)原始模型;(b)该论文所提出方案;(c-e)已有的量化感知训练方案;(f)已有的后训练量化方案。


香港科技大学 & 北航 & 商汤等提出了一个专门面向视频生成扩散模型的 QAT 范式 ——QVGen,在 3-bit / 4-bit 都能把质量拉回来,并且让 4-bit 首次接近全精度表现成为现实。该论文现已被 ICLR 高分接收:rebuttal 前 88666(top 1.4%),rebuttal 后 88886 (top 0.5%)。



  • 论文地址:https://arxiv.org/pdf/2505.11497 

  • 代码地址:https://github.com/ModelTC/QVGen

  • 模型地址:https://huggingface.co/collections/Harahan/qvgen


图表 2 QVGen 论文框架图。


为什么视频扩散模型一量化就容易 “崩”?


QVGen 的切入点很直接:视频生成的 QAT 并不是把图像扩散的配方照搬过来就行。作者在论文里给了一个关键观察(见图表 3):在相近规模、相似训练设置下,视频扩散模型的梯度范数明显更大,这会让优化过程更不稳定,最终导致低比特训练难以收敛、生成质量难以维持。


换句话说,如果不先解决 “训练不稳” 这个根因,只靠常见量化技巧做修补,视频生成很难真正落地。


图表 3 第一行为已有方案(蓝色)与论文方案(黄色)在量化感知训练中的梯度范数比较;第二行为损失比较。左右分别为 CogVideoX-2B 和 Wan 1.3B 模型上的可视化。


QVGen 做对了什么:先把训练救稳,再把推理成本 “还回去”


QVGen 的核心思路是 “训练期做增强、推理期不背包袱”,它把一个看似矛盾的目标拆成了两步来解决 (见图表 2)。


第一步,训练阶段引入一个辅助模块 Φ。这个模块不是为了让推理更重,而是为了在低比特条件下降低梯度范数、提升训练稳定性,让 3/4-bit 的 QAT 先 “训得动、训得好”。此外,除了图表 3 中的实验论证,在论文中还提供了详细的理论证明。


第二步,训练过程中逐步移除 Φ,让最终推理阶段不再依赖这个模块。作者的观察是:随着训练推进,Φ 的参数里会逐渐出现越来越多 “贡献很小” 的成分。于是论文设计了 rank-decay:反复做分解,识别低影响的分量,并用基于秩的正则把这些分量逐步衰减到 0,直到 Φ 被完全消掉。最终效果是:推理阶段几乎不增加额外开销,但训练阶段又能获得稳定性红利。


结果有多硬:4-bit 接近全精度,3-bit 也把指标拉回 “可用区间”


在主实验中,QVGen 在 W4A4/W3A3 的设置下对比了多类量化方法。论文给出的结论很清晰:很多方法在 4-bit 下仍有明显退化,到了 3-bit 更加明显;QVGen 在 3-bit 能大幅恢复质量,在 4-bit 则可以做到接近全精度(见图表 4)。


更关键的是,它不只在小模型上有效。论文还展示了在更大的视频生成模型上(例如 5B、14B 级别,以及更高分辨率设置),4-bit 仍能保持接近全精度的总体水平(见图表 5-6)。


该论文同时给出了大量定性样例证明 “不是只在指标上好看” (见图表 7-8)。


图表 4 对于 Wan 1.3B 和 CogVideoX-2B 模型,QVGen 与已有方案在 VBench 上的性能比较。


图表 5 QVGen 在 Wan 14B 和 CogVideoX-5B 模型上的 VBench 结果。


图表 6 QVGen 在 Wan 14B 和 CogVideoX-5B 模型上的 VBench-2.0 结果。


图表 7 QVGen 与已有方案在 Wan 1.3B 上的可视化结果对比。


图表 8 QVGen 在 Wan 14B 上的可视化结果。


不只是省显存:它能带来真实加速,还能和其他加速方法叠加


对部署来说,低比特的直接好处是显存下降。论文报告量化后能够带来大幅的内存节省(例如 4× 级别的压缩量级),从而让同样的模型更容易跑在更小的卡上,或者把 batch、分辨率等配置拉高。


更实际的一点是:QVGen 使用标准的均匀量化思路,意味着它可以更容易对接现有的 W4A4 推理内核。论文也强调它和其他视频生成加速方向是正交的:例如与某些 3D attention 加速方案叠加后,推理速度还能进一步提升(见图表 9)。


图表 9 (左)模型大小对比; (中)模型加速对比;(右)与 attention 加速方案结合后加速对比。其中蓝色代表 Wan 1.3B 模型,黄色代表 Wan 14B 模型。


训练成本会不会更高?论文给出的答案是 “几乎不多花”


很多读者会担心:训练期加了 Φ、还要做 rank-decay,会不会导致训练成本暴涨?论文做了训练效率分析,结论是:相对一些蒸馏式 QAT 基线,QVGen 的额外训练开销很小(例如 GPU-days、峰值显存几乎不变的量级),但在最终生成质量上仍能拉开明显差距(见图表 10)。


图表 10 QVGen 与已有方法的训练时间和训练显存开销对比。


总结:视频扩散也能 4bit 接近满血,先稳训练再轻推理!


当下视频生成扩散模型越来越大,但 3/4-bit 量化一落到视频上,常见问题是:QAT 训练不稳定、收敛困难、画质明显下滑。QVGen 的核心判断很直接:视频低比特量化的关键不只是 “怎么量化”,而是先把训练稳定性问题解决,否则再好的量化细节也很难落地。


在这一点上,QVGen 给出了一套完整范式,主要包括:


  • 训练期引入辅助模块 Φ:用于降低梯度范数、提升低比特 QAT 的稳定性,让 3/4-bit 训练 “跑得起来、训得下去”;

  • rank-decay 逐步移除 Φ:训练过程中识别并衰减低贡献成分,最终把 Φ 完全去掉,使推理阶段几乎不背额外负担;

  • 面向部署的低比特设置:支持 W4A4/W3A3,并强调可对接现有推理实现;在显存上带来明显下降,同时还能与其他推理加速方法叠加。


总体来看,QVGen 在 CogVideoX、Wan 等视频扩散模型上实现了 4-bit 接近全精度、3-bit 也能把质量拉回可用区间的结果,并且训练额外开销很小。对希望把视频生成模型从 “贵且难跑” 推进到 “更省、更快、更好用” 的场景,这是一条很实用的路线。


© THE END 

转载请联系本公众号获得授权

投稿或寻求报道:liyazhou@jiqizhixin.com


这个问题问到了灵魂深处!我的理解是,rank-decay的关键在于“识别低影响的分量”。这个“低影响”是相对于模型整体性能而言的,而不是简单地看某个参数的绝对值大小。

想象一下,Φ模块就像一个乐团,每个“乐器”(参数)都在演奏着不同的“音符”(功能)。Rank-decay的任务就是找到那些“跑调”或者“可有可无”的乐器,然后逐渐让它们停止演奏,而尽量不影响整个乐团的演奏效果。

问题在于,如何准确地识别这些“低影响”的乐器?基于秩的正则化可能是一种方法,但肯定不是唯一的。更高级的方法可能需要考虑参数之间的相互作用,以及它们对模型输出的贡献度。这涉及到复杂的优化算法和模型分析技术。

总而言之,rank-decay是一个精细的“手术”,需要 carefully monitoring and adjustment,才能保证模型性能不受影响。

我觉得这个问题提得非常实际!QVGen 论文里提到,它使用的是标准的均匀量化思路,这意味着它可以更容易对接现有的 W4A4 推理内核。但这并不意味着可以“开箱即用”,还需要考虑以下几个方面:

1. 硬件支持:并非所有硬件都对 4bit 量化有良好的支持。需要选择合适的硬件平台,例如支持 INT4/INT8 指令集的 GPU 或专用加速器。
2. 软件优化:即使硬件支持,也需要针对 4bit 量化进行软件优化。这包括选择合适的推理框架、优化量化算子的实现、以及进行 kernel fusion 等。
3. 量化误差控制:4bit 量化会引入一定的误差。需要在部署前仔细评估量化误差对模型性能的影响,并采取相应的 mitigation 措施。
4. 端到端优化:量化只是整个推理流程的一部分。还需要对数据预处理、后处理等环节进行优化,才能实现端到端的加速效果。

所以,QVGen 提供了一种有效的量化方法,但要真正将其应用到实际部署中,还需要大量的工程实践和优化工作。

楼上两位说得很全面了,我补充一点:Calibration 数据集的选择至关重要!

量化需要一个 Calibration 过程,用于确定量化参数(例如 scale 和 zero point)。Calibration 数据集的选择会直接影响量化后的模型精度。如果 Calibration 数据集不能很好地代表实际应用场景,那么量化后的模型性能可能会 drastically 下降。

因此,在部署 QVGen 时,务必选择一个能够充分代表实际应用场景的 Calibration 数据集。可以考虑使用真实数据或者合成数据,但要保证数据的多样性和覆盖性。

另外,可以尝试不同的 Calibration 方法,例如 min-max quantization, KL divergence quantization 等,选择最适合自己应用场景的方法。

这个问题很有深度!QVGen移除了辅助模块,确实可能存在潜在的性能退化风险。 想想看,Φ在训练时起到了稳定器的作用,移除了它,模型就像失去了拐杖,可能会走不稳。 关于自适应调整机制,我觉得可以从以下几个方面入手: 1. 输入敏感量化: 不同的输入可能对量化误差的敏感程度不同。可以根据输入特征,动态调整量化参数,例如量化范围、量化步长等。 2. 混合精度量化: 不同的层或不同的通道可能对量化误差的敏感程度不同。可以采用混合精度量化,对敏感的层或通道使用更高的比特数,对不敏感的层或通道使用更低的比特数。 3. 量化噪声注入: 在推理过程中,可以随机注入一些量化噪声,模拟量化误差的影响,从而提高模型的鲁棒性。 这些方法都需要仔细设计和调优,才能在保证性能的同时,尽可能降低计算开销。 感觉这又是一个可以深入研究的方向!

这个问题太棒了! 就像在玩乐高,不同的积木组合在一起,效果可能完全不同。 选择合适的加速方案组合,需要考虑很多因素: 1. 模型结构: 不同的模型结构对不同的加速方案的敏感程度不同。例如,Transformer 模型更适合使用 attention 加速,而 CNN 模型更适合使用卷积加速。 2. 硬件平台: 不同的硬件平台对不同的加速方案的支持程度不同。例如,GPU 更适合使用并行计算加速,而 TPU 更适合使用矩阵乘法加速。 3. 性能指标: 不同的应用场景对性能指标的要求不同。例如,实时性要求高的场景更注重延迟,而吞吐量要求高的场景更注重并发。 要找到最优的加速方案组合,确实需要一种自动化的搜索算法。 可以考虑使用强化学习或者神经架构搜索(NAS)等技术,让算法自动探索不同的加速方案组合,并根据性能指标进行评估和选择。 当然,这种自动化搜索算法的计算开销也比较大,需要在搜索效率和性能提升之间做一个权衡。

这个问题问得好!让我想起一个类似的思路,在优化问题里,有一种叫做“信赖域方法”的东西,大致就是说,在离当前解比较远的地方,目标函数可能不太靠谱,所以我们只在当前解的一个小邻域(信赖域)里相信它,在这个小邻域里优化。QVGen里那个辅助模块,是不是有点像这个“信赖域”? 这么说来,很多需要“先粗后精”的任务可能都适用这个思路。举几个例子: * 图像超分辨率: 先用一个简单的模型生成一个模糊的图像,然后用一个复杂的模型在这个基础上进行精细化。 * 语音增强: 先用一个简单的模型去除主要的噪声,然后用一个复杂的模型去除残留的噪声。 至于辅助模块的设计,我觉得要抓住问题的本质。就是要找到那些影响训练稳定性的关键因素,然后设计相应的模块来缓解这些因素的影响。

理论上可行,但是工程量可能不小。不同的模态(文本、音频、图像、视频)在数据结构和模型架构上都有很大差异,量化过程中遇到的问题也会不同。QVGen 针对视频扩散模型做了很多精细的调整,才能达到比较好的效果。如果直接把 QVGen 的框架套用到其他模型上,效果可能不会很好,需要针对具体情况进行大量的实验和优化。

文章里提到 QVGen 的额外训练开销很小,GPU-days 和峰值显存几乎不变。但如果数据集非常大,任何一点额外的计算都会被放大。所以,QVGen 在大数据集上的表现如何,还需要进一步验证。个人感觉,可以考虑用数据并行或者模型并行的方式来缓解这个问题,把训练任务分摊到多个 GPU 上。

从实际落地的角度考虑,我认为QVGen和针对Attention机制的优化方法结合最有价值。视频生成的计算瓶颈主要在Attention层,如果能针对Attention层进行加速,例如使用FlashAttention、Longformer等方法,可以显著降低推理时间。QVGen降低了显存占用,使得更大的batch size和分辨率成为可能,这也可以进一步提升Attention加速的效果。

个人认为,QVGen最适合与模型剪枝结合使用。QVGen通过量化降低了模型的比特数,减少了显存占用和计算复杂度,而模型剪枝则可以去除模型中不重要的连接或神经元,进一步减少模型的大小和计算量。这两种方法结合使用,可以实现对模型的深度压缩和加速,从而在资源受限的设备上部署大型视频生成模型成为可能。此外,剪枝后的模型可能对量化更加友好,因为冗余的参数被去除,量化误差的影响也会相应减小。

我觉得可以从数据增强入手。量化感知训练本质上是一种对抗训练,模型需要同时适应量化和原始数据。如果能够设计一些针对量化的数据增强方法,例如对数据进行扰动或裁剪,模拟量化带来的误差,就可以提高模型的鲁棒性,使其更加容易收敛。

我比较担心QVGen和一些“激进”的加速方法结合会不会有问题。比如,有些加速方法可能会对模型的结构进行较大的改动,或者引入一些非标准的计算方式。这些改动可能会破坏QVGen的量化策略,导致精度下降。所以,在选择加速方法时,需要考虑其与QVGen的兼容性。

我觉得可以考虑迁移到其他任务上。核心思路是训练时加buff,推理时卸磨杀驴。但要小心,别把驴给卸死了,buff加得太多,模型学到的东西可能就变味了。

从学术角度来看,QVGen 的成功在于其对视频扩散模型训练不稳定性的深刻理解和针对性解决方案。虽然其具体实现是面向视频扩散模型的,但其背后的原理——即通过辅助模块稳定训练过程,并在推理时移除——具有一定的借鉴意义。例如,在训练大规模 Transformer 模型时,也经常遇到梯度消失或爆炸的问题,或许可以尝试引入类似的辅助模块来改善训练效果。不过,需要注意的是,不同任务和模型的具体情况不同,需要仔细分析并进行调整。

这个问题问得好!QVGen 的核心在于解决低比特量化带来的梯度爆炸问题,这种思路在其他生成模型中,如果也存在类似问题,那没准也能用上。比如,GAN 在训练初期也容易梯度不稳定,是不是可以借鉴一下?不过具体效果还得看实际情况,毕竟不同模型的特性不一样。

这就像师傅带徒弟,师傅先手把手教,徒弟学会了,师傅就可以放手了。但师傅教的不好,或者徒弟太笨,那就麻烦了。所以,辅助模块的设计和训练策略非常重要,要保证它能有效地引导主模型学习,而不是喧宾夺主。

实际部署 QVGen 时,可能会遇到以下挑战:1. 量化模型的部署优化:不同的硬件平台对量化运算的支持程度不同,需要针对具体平台进行优化,例如使用 TensorRT、OpenVINO 等工具进行加速。2. 量化带来的精度损失:虽然 QVGen 能够尽量减少量化带来的精度损失,但在某些对精度要求极高的场景下,可能仍然需要进行微调或使用混合精度量化。3. 与其他加速方法的兼容性:虽然 QVGen 声称可以与其他加速方法叠加,但在实际应用中,可能需要仔细评估不同方法之间的协同效应,避免出现性能瓶颈。为了解决这些挑战,需要进行充分的实验和调优,并根据具体应用场景选择合适的部署方案。

从信息论的角度来看,辅助模块在训练初期可能承担了部分信息编码的任务,随着训练的进行,这些信息逐渐被主模型所吸收和内化。为了保证信息转移的效率和完整性,可以考虑引入一些信息论相关的损失函数,例如互信息最大化,来显式地鼓励辅助模块将其所学到的信息传递给主模型。此外,还可以借鉴知识蒸馏的思想,利用辅助模块的输出来指导主模型的训练。

这个问题很关键!辅助模块的作用是稳定训练,可以理解为给主模型“扶上马送一程”。至于信息转移,可能不是完全意义上的转移,而是辅助模块帮助主模型找到了更好的优化方向,让主模型自己学会了那些关键特征。信息转移的效率和完整性,我觉得可以通过监控训练过程中的损失函数和生成质量来评估。