无损加速扩散模型!DeepCache:无训练、无成本的AI神器开源了!

点击下方卡片,关注“CVer”公众号

AI/CV重磅干货,第一时间送达

点击进入—>【视觉和Transformer】微信交流群

扫码加入CVer学术星球可以最快学习到最新顶会顶刊上的论文idea和CV从入门到精通资料,以及最前沿项目和应用!发论文搞科研,强烈推荐!

f85e380a39fb1386cc56566ebef46d00.jpeg

在CVer微信公众号后台回复:DeepCache,即可下载论文pdf和代码链接!快学起来!

简介

666eb1d44aa5530c22f0c2a39640a957.png

近几年,Diffusion Models在图像合成领域获得了前所未有的关注。在序列式的生成过程中,多步的计算和庞大的模型尺寸会带来相当大的成本。而传统的模型压缩技术,例如剪枝、蒸馏通常又涉及到重新训练,导致了额外的成本和可行性上的挑战。本文介绍了一种名为DeepCache的无需训练的方法,它利用了去噪过程中模型深层特征的相似性,通过缓存(Cache)来避免重新计算网络中的深层特征,仅计算网络的浅层,从而减少计算量。在没有任何额外训练的情况下,这种策略使得Stable Diffusion v1.5的速度提升了2.3倍,CLIP分数仅下降了0.05;而LDM-4-G的速度提升了4.1倍,且FID在ImageNet仅下降0.22。实验展示了DeepCache相较于需要重新训练的现有剪枝和蒸馏方法的优越性,以及它与当前采样技术例如DDIM,PLMS的兼容性。DeepCache目前支持Stable Diffusion v1.5/v2.1/XL等主流扩散模型。

DeepCache: Accelerating Diffusion Models for Free    

Xinyin Ma, Gongfan Fang, Xinchao Wang  Learning and Vision Lab, National University of Singapore  

扫描二维码关注公众号,回复: 17138468 查看本文章

论文:https://arxiv.org/abs/2312.00858  

代码:github.com/horseee/DeepCache

项目主页:https://horseee.github.io/Diffusion_DeepCache/

方法

8e44ee59e857e62168fb264eb8687ecd.png

图1:扩散模型多步计算中的深层特征冗余

特征冗余:扩散模型的合成是一个多步的序列过程,在每一步中我们都要完整执行一次模型的前馈计算。然而,研究者发现在相近的步骤中(例如第20步和第19步),模型的深层特征变化十分微小,这就引入了一个新的探索问题,即是否需要反复地计算这些特征。在这一基础上,本文进一步分析了三种主流模型:LDM-4-G,DDPM,Stable Diffusion中的特征相似性,如图1(b)所示,相邻时间步均呈现出了高度的特征相似性。这种冗余现象启发了一种新的加速方式,即本文提出的DeepCache。

算法核心:DeepCache的核心想法是避免重复计算冗余的深层特征,因此算法的整体框架非常简洁。如图2所示,我们在部分步骤执行完整的网络计算,并缓存深层特征;而在其他步骤仅计算浅层特征,并利用缓存直接得到结果。这一过程允许我们跳过网络中的大部分层,从而显著降低计算量。通过的实验可以发现,Diffusion Models中的绝大多数层都可以借助DeepCache进行跳过,同时不影响最终的生成质量。

b7f8ccb96814b95e90af7b5bb35da1ee.png

图2:DeepCache方法示意图

Uniform与Non-Uniform加速策略:基于上述基本框架,我们可以很自然地拓展出Uniform和非Uniform的加速策略。Uniform加速策略采用了1:N的计算分配,即1步完整计算获得缓存,N步快速计算得到结果。例如在Stable Diffusion上,我们采用1:5的加速策略可以得到2.3倍实际速度提升,同时性能几乎无损。在另一方面,非Uniform策略则具有更大的设计空间。先前提到,网络中不同步骤之间存在特征冗余,然而这种冗余的分布是有所差异的。Non-Uniform策略则针对特征冗余的特点,给高冗余步骤分配更少的Cache更新次数,给低冗余区域分配更多的Cache更新,这会带来显著的性能提升。

定量分析

本文在Stable Diffusion, LDM (ImageNet),DDPM (CIFAR, LSUN)等主流模型上进行深入验证。

LDM - ImageNet:例如在ImageNet上,我们的算法能够不依赖任何额外训练,实现几乎无损的压缩加速效果。例如基于1:2的加速策略,我们的方法实现了和剪枝方法略优的加速比(DeepCache1.88x对比剪枝1.51x),得到了更优的FID指标(DeepCache3.39对比剪枝9.27)。除此以外,DeepCache可以自由地权衡加速比和性能,例如提高缓存的间隔我们可以将加速比提升到10倍,此时算法的FID指标依然优于基于小规模训练的压缩方法(剪枝、蒸馏)。另外,引入非均匀的Non-Uniform策略,我们可以以同样的加速比,得到更优的图像质量。

e8eda4e42a9c42b94299c9e9d75ba8cb.png

Stable Diffusion:在Stable Diffusion v1.5模型上,我们使用了CLIP Score对生成质量进行评估。并比较了压缩模型(DeepCache)与压缩步数(采样加速方法PLMS)的性能。减少采样步数是扩散模型加速中的一种主流方法,与本文提出的压缩模型策略是相互适配的。DeepCache展现出了和减少采样步数相似的加速性能,例如2.15倍加速的DeepCache甚至能取得优于步数减少一半的PLMS算法。

e456b0c39ca03feae9f9eb0817be7f36.png

更多CIFAR, LSUN Church, LSUN Bedroom的结果可见论文实验部分。

分析实验

Cache策略分析:我们进一步分析了Stable Diffusion上不同Cache策略带来的加速效果,可以看到Non-Uniform策略往往能够提供最有的加速速率以及CLIP Score。但是相对来说1:N Uniform的加速方法是一种通用且实现简洁的技术,且仅有一个超参数N。在1:N的Uniform加速策略中,我们可以自由调整N,即缓存间隔来提升模型速度。本文可视化了N从2到8的设置下,生成图像的视觉效果。可以明显的看到,随着Cache间隔N逐渐增大,图片的内容会逐渐变化,但仍然能够维持整体视觉质量。

7cba84ad4c2bd3db5b70ded47f867bfb.png

8135d2e5b5b0930da59f7d35c6bd2eba.png

可视化

下图可视化了Stable Diffusion v1.5, LDM (ImageNet), DDPM (LSUN Church & Bedroom)等模型的生成效果,上图是原始模型生成结果,下图是DeepCache加速后的模型生成结果,具体的加速比可见图片标题。

8b4a72811040b086ece433e7f069c248.png

06e173de5ef58d55c327e0d1d2338b38.png

代码实现

DeepCache算法的核心思想非常简单,本文提供了Stable Diffusion v1.5/v2.1以及Stable Diffusion XL的代码实现,具体可见:

https://github.com/horseee/DeepCache

算法在使用体验上与原始的Diffusers pipline几乎完全一致。我们仅需要用DeepCache提供的Pipeline替换Diffusers库的Pipeline,即可实现扩散模型加速。

c15af7de94678bb39dc1c66425e2e0b0.png

在CVer微信公众号后台回复:DeepCache,即可下载论文pdf和代码链接!快学起来!

CVPR / ICCV 2023论文和代码下载

 
  

后台回复:CVPR2023,即可下载CVPR 2023论文和代码开源的论文合集

后台回复:ICCV2023,即可下载ICCV 2023论文和代码开源的论文合集
扩散模型交流群成立
扫描下方二维码,或者添加微信:CVer444,即可添加CVer小助手微信,便可申请加入CVer-扩散模型微信交流群。另外其他垂直方向已涵盖:目标检测、图像分割、目标跟踪、人脸检测&识别、OCR、姿态估计、超分辨率、SLAM、医疗影像、Re-ID、GAN、NAS、深度估计、自动驾驶、强化学习、车道线检测、模型剪枝&压缩、去噪、去雾、去雨、风格迁移、遥感图像、行为识别、视频理解、图像融合、图像检索、论文投稿&交流、PyTorch、TensorFlow和Transformer、NeRF等。
一定要备注:研究方向+地点+学校/公司+昵称(如扩散模型+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群

 
  
▲扫码或加微信号: CVer444,进交流群
CVer计算机视觉(知识星球)来了!想要了解最新最快最好的CV/DL/AI论文速递、优质实战项目、AI行业前沿、从入门到精通学习教程等资料,欢迎扫描下方二维码,加入CVer计算机视觉(知识星球),已汇集近万人!

▲扫码加入星球学习
 
  
▲点击上方卡片,关注CVer公众号
整理不易,请点赞和在看8be6308f2e06535a3cebed66324f4ed1.gif

猜你喜欢

转载自blog.csdn.net/amusi1994/article/details/135007763