0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

iPhone兩秒出圖,目前已知的最快移動(dòng)端Stable Diffusion模型來(lái)了

3D視覺(jué)工坊 ? 來(lái)源:機(jī)器之心 ? 2023-06-12 15:25 ? 次閱讀

Stable Diffusion (SD)是當(dāng)前最熱門(mén)的文本到圖像(text to image)生成擴(kuò)散模型。盡管其強(qiáng)大的圖像生成能力令人震撼,一個(gè)明顯的不足是需要的計(jì)算資源巨大,推理速度很慢:以 SD-v1.5 為例,即使用半精度存儲(chǔ),其模型大小也有 1.7GB,近 10 億參數(shù),端上推理時(shí)間往往要接近 2min。

為了解決推理速度問(wèn)題,學(xué)術(shù)界與業(yè)界已經(jīng)開(kāi)始對(duì) SD 加速的研究,主要集中于兩條路線:(1)減少推理步數(shù),這條路線又可以分為兩條子路線,一是通過(guò)提出更好的 noise scheduler 來(lái)減少步數(shù),代表作是 DDIM [1],PNDM [2],DPM [3] 等;二是通過(guò)漸進(jìn)式蒸餾(Progressive Distillation)來(lái)減少步數(shù),代表作是 Progressive Distillation [4] 和 w-conditioning [5] 等。(2)工程技巧優(yōu)化,代表作是 Qualcomm 通過(guò) int8 量化 + 全棧式優(yōu)化實(shí)現(xiàn) SD-v1.5 在安卓手機(jī)上 15s 出圖 [6],Google 通過(guò)端上 GPU 優(yōu)化將 SD-v1.4 在三星手機(jī)上加速到 12s [7]。

盡管這些工作取得了長(zhǎng)足的進(jìn)步,但仍然不夠快。

近日,Snap 研究院推出最新高性能 Stable Diffusion 模型,通過(guò)對(duì)網(wǎng)絡(luò)結(jié)構(gòu)、訓(xùn)練流程、損失函數(shù)全方位進(jìn)行優(yōu)化,在 iPhone 14 Pro 上實(shí)現(xiàn) 2 秒出圖(512x512),且比 SD-v1.5 取得更好的 CLIP score。這是目前已知最快的端上 Stable Diffusion 模型!

5d25e23c-08ac-11ee-962d-dac502259ad0.png

論文地址:https://arxiv.org/pdf/2306.00980.pdf

Webpage: https://snap-research.github.io/SnapFusion

核心方法

Stable Diffusion 模型分為三部分:VAE encoder/decoder, text encoder, UNet,其中 UNet 無(wú)論是參數(shù)量還是計(jì)算量,都占絕對(duì)的大頭,因此 SnapFusion 主要是對(duì) UNet 進(jìn)行優(yōu)化。具體分為兩部分:(1)UNet 結(jié)構(gòu)上的優(yōu)化:通過(guò)分析原有 UNet 的速度瓶頸,本文提出一套 UNet 結(jié)構(gòu)自動(dòng)評(píng)估、進(jìn)化流程,得到了更為高效的 UNet 結(jié)構(gòu)(稱為 Efficient UNet)。(2)推理步數(shù)上的優(yōu)化:眾所周知,擴(kuò)散模型在推理時(shí)是一個(gè)迭代的去噪過(guò)程,迭代的步數(shù)越多,生成圖片的質(zhì)量越高,但時(shí)間代價(jià)也隨著迭代步數(shù)線性增加。為了減少步數(shù)并維持圖片質(zhì)量,我們提出一種 CFG-aware 蒸餾損失函數(shù),在訓(xùn)練過(guò)程中顯式考慮 CFG (Classifier-Free Guidance)的作用,這一損失函數(shù)被證明是提升 CLIP score 的關(guān)鍵!

下表是 SD-v1.5 與 SnapFusion 模型的概況對(duì)比,可見(jiàn)速度提升來(lái)源于 UNet 和 VAE decoder 兩個(gè)部分,UNet 部分是大頭。UNet 部分的改進(jìn)有兩方面,一是單次 latency 下降(1700ms -> 230ms,7.4x 加速),這是通過(guò)提出的 Efficient UNet 結(jié)構(gòu)得到的;二是 Inference steps 降低(50 -> 8,6.25x 加速),這是通過(guò)提出的 CFG-aware Distillation 得到的。VAE decoder 的加速是通過(guò)結(jié)構(gòu)化剪枝實(shí)現(xiàn)。

5d32e9a0-08ac-11ee-962d-dac502259ad0.png

下面著重介紹 Efficient UNet 的設(shè)計(jì)和 CFG-aware Distillation 損失函數(shù)的設(shè)計(jì)。

(1)Efficient UNet

我們通過(guò)分析 UNet 中的 Cross-Attention 和 ResNet 模塊,定位速度瓶頸在于 Cross-Attention 模塊(尤其是第一個(gè) Downsample 階段的 Cross-Attention),如下圖所示。這個(gè)問(wèn)題的根源是因?yàn)?attention 模塊的復(fù)雜度跟特征圖的 spatial size 成平方關(guān)系,在第一個(gè) Downsample 階段,特征圖的 spatial size 仍然較大,導(dǎo)致計(jì)算復(fù)雜度高。

5d3f9132-08ac-11ee-962d-dac502259ad0.png

為了優(yōu)化 UNet 結(jié)構(gòu),我們提出一套 UNet 結(jié)構(gòu)自動(dòng)評(píng)估、進(jìn)化流程:先對(duì) UNet 進(jìn)行魯棒性訓(xùn)練(Robust Training),在訓(xùn)練中隨機(jī) drop 一些模塊,以此來(lái)測(cè)試出每個(gè)模塊對(duì)性能的真實(shí)影響,從而構(gòu)建一個(gè) “對(duì) CLIP score 的影響 vs. latency” 的查找表;然后根據(jù)該查找表,優(yōu)先去除對(duì) CLIP score 影響不大同時(shí)又很耗時(shí)的模塊。這一套流程是在線自動(dòng)進(jìn)行,完成之后,我們就得到了一個(gè)全新的 UNet 結(jié)構(gòu),稱為 Efficient UNet。相比原版 UNet,實(shí)現(xiàn) 7.4x 加速且性能不降。

(2)CFG-aware Step Distillation

CFG(Classifier-Free Guidance)是 SD 推理階段的必備技巧,可以大幅提升圖片質(zhì)量,非常關(guān)鍵!盡管已有工作對(duì)擴(kuò)散模型進(jìn)行步數(shù)蒸餾(Step Distillation)來(lái)加速 [4],但是它們沒(méi)有在蒸餾訓(xùn)練中把 CFG 納入優(yōu)化目標(biāo),也就是說(shuō),蒸餾損失函數(shù)并不知道后面會(huì)用到 CFG。這一點(diǎn)根據(jù)我們的觀察,在步數(shù)少的時(shí)候會(huì)嚴(yán)重影響 CLIP score。

為了解決這個(gè)問(wèn)題,我們提出在計(jì)算蒸餾損失函數(shù)之前,先讓 teacher 和 student 模型都進(jìn)行 CFG,這樣損失函數(shù)是在經(jīng)過(guò) CFG 之后的特征上計(jì)算,從而顯式地考慮了不同 CFG scale 的影響。實(shí)驗(yàn)中我們發(fā)現(xiàn),完全使用 CFG-aware Distillation 盡管可以提高 CLIP score, 但 FID 也明顯變差。我們進(jìn)而提出了一個(gè)隨機(jī)采樣方案來(lái)混合原來(lái)的 Step Distillation 損失函數(shù)和 CFG-aware Distillation 損失函數(shù),實(shí)現(xiàn)了二者的優(yōu)勢(shì)共存,既顯著提高了 CLIP score,同時(shí) FID 也沒(méi)有變差。這一步驟,實(shí)現(xiàn)進(jìn)一步推理階段加速 6.25 倍,實(shí)現(xiàn)總加速約 46 倍。

除了以上兩個(gè)主要貢獻(xiàn),文中還有對(duì) VAE decoder 的剪枝加速以及蒸餾流程上的精心設(shè)計(jì),具體內(nèi)容請(qǐng)參考論文。

實(shí)驗(yàn)結(jié)果

SnapFusion 對(duì)標(biāo) SD-v1.5 text to image 功能,目標(biāo)是實(shí)現(xiàn)推理時(shí)間大幅縮減并維持圖像質(zhì)量不降,最能說(shuō)明這一點(diǎn)的是下圖:

5d50e6f8-08ac-11ee-962d-dac502259ad0.png

該圖是在 MS COCO’14 驗(yàn)證集上隨機(jī)選取 30K caption-image pairs 測(cè)算 CLIP score 和 FID。CLIP score 衡量圖片與文本的語(yǔ)義吻合程度,越大越好;FID 衡量生成圖片與真實(shí)圖片之間的分布距離(一般被認(rèn)為是生成圖片多樣性的度量),越小越好。圖中不同的點(diǎn)是使用不同的 CFG scale 獲得,每一個(gè) CFG scale 對(duì)應(yīng)一個(gè)數(shù)據(jù)點(diǎn)。從圖中可見(jiàn),我們的方法(紅線)可以達(dá)到跟 SD-v1.5(藍(lán)線)同樣的最低 FID,同時(shí),我們方法的 CLIP score 更好。值得注意的是,SD-v1.5 需要 1.4min 生成一張圖片,而 SnapFusion 僅需要 1.84s,這也是目前我們已知最快的移動(dòng)端 Stable Diffusion 模型!

下面是一些 SnapFusion 生成的樣本:

5d65abba-08ac-11ee-962d-dac502259ad0.png

更多樣本請(qǐng)參考文章附錄。

除了這些主要結(jié)果,文中也展示了眾多燒蝕分析(Ablation Study)實(shí)驗(yàn),希望能為高效 SD 模型的研發(fā)提供參考經(jīng)驗(yàn):

(1)之前 Step Distillation 的工作通常采用漸進(jìn)式方案 [4, 5],但我們發(fā)現(xiàn),在 SD 模型上漸進(jìn)式蒸餾并沒(méi)有比直接蒸餾更有優(yōu)勢(shì),且過(guò)程繁瑣,因此我們?cè)谖闹胁捎玫氖侵苯诱麴s方案。

5d7888e8-08ac-11ee-962d-dac502259ad0.png

(2)CFG 雖然可以大幅提升圖像質(zhì)量,但代價(jià)是推理成本翻倍。今年 CVPR’23 Award Candidate 的 On Distillation 一文 [5] 提出 w-conditioning,將 CFG 參數(shù)作為 UNet 的輸入進(jìn)行蒸餾(得到的模型叫做 w-conditioned UNet),從而在推理時(shí)省卻 CFG 這一步,實(shí)現(xiàn)推理成本減半。但是我們發(fā)現(xiàn),這樣做其實(shí)會(huì)造成圖片質(zhì)量下降,CLIP score 降低(如下圖中,四條 w-conditioned 線 CLIP score 均未超過(guò) 0.30, 劣于 SD-v1.5)。而我們的方法則可以減少步數(shù),同時(shí)將 CLIP score 提高,得益于所提出的 CFG-aware 蒸餾損失函數(shù)!尤其值得主要的是,下圖中綠線(w-conditioned, 16 steps)與橙線(Ours,8 steps)的推理代價(jià)是一樣的,但明顯橙線更優(yōu),說(shuō)明我們的技術(shù)路線比 w-conditioning [5] 在蒸餾 CFG guided SD 模型上更為有效。

5d86fdb0-08ac-11ee-962d-dac502259ad0.png

(3)既有 Step Distillation 的工作 [4, 5] 沒(méi)有將原有的損失函數(shù)和蒸餾損失函數(shù)加在一起,熟悉圖像分類知識(shí)蒸餾的朋友應(yīng)該知道,這種設(shè)計(jì)直覺(jué)上來(lái)說(shuō)是欠優(yōu)的。于是我們提出把原有的損失函數(shù)加入到訓(xùn)練中,如下圖所示,確實(shí)有效(小幅降低 FID)。

5d9456fe-08ac-11ee-962d-dac502259ad0.png

總結(jié)與未來(lái)工作

本文提出 SnapFusion,一種移動(dòng)端高性能 Stable Diffusion 模型。SnapFusion 有兩點(diǎn)核心貢獻(xiàn):(1)通過(guò)對(duì)現(xiàn)有 UNet 的逐層分析,定位速度瓶頸,提出一種新的高效 UNet 結(jié)構(gòu)(Efficient UNet),可以等效替換原 Stable Diffusion 中的 UNet,實(shí)現(xiàn) 7.4x 加速;(2)對(duì)推理階段的迭代步數(shù)進(jìn)行優(yōu)化,提出一種全新的步數(shù)蒸餾方案(CFG-aware Step Distillation),減少步數(shù)的同時(shí)可顯著提升 CLIP score,實(shí)現(xiàn) 6.25x 加速。總體來(lái)說(shuō),SnapFusion 在 iPhone 14 Pro 上實(shí)現(xiàn) 2 秒內(nèi)出圖,這是目前已知最快的移動(dòng)端 Stable Diffusion 模型。

未來(lái)工作:

1.SD 模型在多種圖像生成場(chǎng)景中都可以使用,本文囿于時(shí)間,目前只關(guān)注了 text to image 這個(gè)核心任務(wù),后期將跟進(jìn)其他任務(wù)(如 inpainting,ControlNet 等等)。

2. 本文主要關(guān)注速度上的提升,并未對(duì)模型存儲(chǔ)進(jìn)行優(yōu)化。我們相信所提出的 Efficient UNet 仍然具備壓縮的空間,結(jié)合其他的高性能優(yōu)化方法(如剪枝,量化),有望縮小存儲(chǔ),并將時(shí)間降低到 1 秒以內(nèi),離端上實(shí)時(shí) SD 更進(jìn)一步。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • iPhone
    +關(guān)注

    關(guān)注

    28

    文章

    13442

    瀏覽量

    201341
  • 模型
    +關(guān)注

    關(guān)注

    1

    文章

    3115

    瀏覽量

    48660
  • 網(wǎng)絡(luò)結(jié)構(gòu)

    關(guān)注

    0

    文章

    48

    瀏覽量

    11059

原文標(biāo)題:iPhone兩秒出圖,目前已知的最快移動(dòng)端Stable Diffusion模型來(lái)了

文章出處:【微信號(hào):3D視覺(jué)工坊,微信公眾號(hào):3D視覺(jué)工坊】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Stable Diffusion的完整指南:核心基礎(chǔ)知識(shí)、制作AI數(shù)字人視頻和本地部署要求

    Stable Diffusion是一種擴(kuò)散模型diffusion model)的變體,叫做“潛在擴(kuò)散模型”(latent
    的頭像 發(fā)表于 09-18 10:06 ?2172次閱讀
    <b class='flag-5'>Stable</b> <b class='flag-5'>Diffusion</b>的完整指南:核心基礎(chǔ)知識(shí)、制作AI數(shù)字人視頻和本地部署要求

    uCOS-II中斷延遲小于兩秒

    */OSTimeDlyHMSM(0,0,2,0); /*延遲2s*/ EXTI_ClearITPendingBit(EXTI_Line9);} 中斷里的延遲設(shè)為兩秒了,為什么實(shí)際執(zhí)行起來(lái)時(shí)間遠(yuǎn)遠(yuǎn)小于兩秒????也沒(méi)有其他的中斷來(lái)?yè)屨?。求助!?/div>
    發(fā)表于 04-28 02:59

    Stability AI開(kāi)源圖像生成模型Stable Diffusion

    Stable Diffusion 的很多用戶已經(jīng)公開(kāi)發(fā)布了生成圖像的樣例,Stability AI 的首席開(kāi)發(fā)者 Katherine Crowson 在推特上分享了許多圖像?;?AI 的圖像合成可能會(huì)對(duì)藝術(shù)家和藝術(shù)領(lǐng)域帶來(lái)一定的影響
    的頭像 發(fā)表于 09-21 15:37 ?2893次閱讀

    大腦視覺(jué)信號(hào)被Stable Diffusion復(fù)現(xiàn)圖像!“人類的謀略和謊言不存在了”

    它不需要在復(fù)雜的深度學(xué)習(xí)模型上進(jìn)行訓(xùn)練或做精細(xì)的微調(diào),只需要做好fMRI(功能磁共振成像技術(shù))成像到Stable Diffusion中潛在表征的簡(jiǎn)單線性映射關(guān)系就行。
    的頭像 發(fā)表于 03-08 10:21 ?733次閱讀

    大腦視覺(jué)信號(hào)被Stable Diffusion復(fù)現(xiàn)圖像!

    它不需要在復(fù)雜的深度學(xué)習(xí)模型上進(jìn)行訓(xùn)練或做精細(xì)的微調(diào),只需要做好fMRI(功能磁共振成像技術(shù))成像到Stable Diffusion中潛在表征的簡(jiǎn)單線性映射關(guān)系就行。
    的頭像 發(fā)表于 03-16 10:26 ?784次閱讀

    一文讀懂Stable Diffusion教程,搭載高性能PC集群,實(shí)現(xiàn)生成式AI應(yīng)用

    PC Farm、生成式AI和Stable Diffusion模型都是非常有用的工具和技術(shù),可以幫助用戶快速構(gòu)建和管理計(jì)算機(jī)集群,生成高質(zhì)量的數(shù)據(jù)和圖像,提高模型的泛化能力和魯棒性。
    的頭像 發(fā)表于 05-01 07:47 ?2269次閱讀
    一文讀懂<b class='flag-5'>Stable</b> <b class='flag-5'>Diffusion</b>教程,搭載高性能PC集群,實(shí)現(xiàn)生成式AI應(yīng)用

    使用OpenVINO?在算力魔方上加速stable diffusion模型

    Stable Diffusion 是 stability.ai 開(kāi)源的 AI 圖像生成模型,實(shí)現(xiàn)輸入文字,生成圖像的功能。Stable Diffus
    的頭像 發(fā)表于 05-12 09:10 ?1378次閱讀
    使用OpenVINO?在算力魔方上加速<b class='flag-5'>stable</b> <b class='flag-5'>diffusion</b><b class='flag-5'>模型</b>

    優(yōu)化 Stable Diffusion 在 GKE 上的啟動(dòng)體驗(yàn)

    以下文章來(lái)源于谷歌云服務(wù),作者 Google Cloud 背景 現(xiàn)如今隨著 AIGC 這個(gè)話題越來(lái)越熱,越來(lái)越多優(yōu)秀的開(kāi)源項(xiàng)目基于文生的 AI 模型如 MidJourney,Stable
    的頭像 發(fā)表于 06-03 08:35 ?835次閱讀

    基于一種移動(dòng)高性能 Stable Diffusion 模型

    ? Stable Diffusion (SD)是當(dāng)前最熱門(mén)的文本到圖像(text to image)生成擴(kuò)散模型。盡管其強(qiáng)大的圖像生成能力令人震撼,一個(gè)明顯的不足是需要的計(jì)算資源巨大,推理速度很慢
    的頭像 發(fā)表于 06-12 10:14 ?745次閱讀
    基于一種<b class='flag-5'>移動(dòng)</b><b class='flag-5'>端</b>高性能 <b class='flag-5'>Stable</b> <b class='flag-5'>Diffusion</b> <b class='flag-5'>模型</b>

    VisCPM:邁向多語(yǔ)言多模態(tài)大模型時(shí)代

    隨著 GPT-4 和 Stable Diffusion模型多模態(tài)能力的突飛猛進(jìn),多模態(tài)大模型已經(jīng)成為大模型邁向通用人工智能(AGI)目標(biāo)
    的頭像 發(fā)表于 07-10 10:05 ?679次閱讀
    VisCPM:邁向多語(yǔ)言多模態(tài)大<b class='flag-5'>模型</b>時(shí)代

    美格智能高算力AI模組成功運(yùn)行Stable Diffusion模型

    研發(fā)團(tuán)隊(duì)成功在自研高算力模組上運(yùn)行文生模型Stable Diffusion,而這僅僅是我們將思索變?yōu)閷?shí)際行動(dòng)的第一步,AIGC的大時(shí)代,才剛剛開(kāi)始!
    的頭像 發(fā)表于 07-21 11:17 ?803次閱讀

    使用OpenVINO在Stable Diffusion V2.1上實(shí)現(xiàn)AI硬件加速的方法

    隨著 AIGC 模型越來(lái)越強(qiáng)大,并取得了更驚人的結(jié)果,任意運(yùn)行 AIGC 模型, 比如 Stable Diffusion,對(duì)于開(kāi)發(fā)人員來(lái)說(shuō)仍然面臨一些挑戰(zhàn)。首先,GPU 的安裝設(shè)置需要
    的頭像 發(fā)表于 07-21 11:47 ?1923次閱讀
    使用OpenVINO在<b class='flag-5'>Stable</b> <b class='flag-5'>Diffusion</b> V2.1上實(shí)現(xiàn)AI硬件加速的方法

    樹(shù)莓派能跑Stable Diffusion了?

    Stable Diffusion是一種文本到圖像生成的大型深度學(xué)習(xí)模型,它可以根據(jù)文本的描述生成詳細(xì)的圖像,也可以用于其他任務(wù),如圖像修復(fù)、圖像擴(kuò)展、圖像翻譯等。
    的頭像 發(fā)表于 07-26 11:46 ?1473次閱讀

    Stable Diffusion的完整指南:核心基礎(chǔ)知識(shí)、制作AI數(shù)字人視頻和本地部署要求

    Stable Diffusion;stable;diffusion;SD;stablediffussion;sadtalker;PC集群;PC Farm;PC農(nóng)場(chǎng);GPU集群;GAN
    的頭像 發(fā)表于 09-07 14:12 ?2107次閱讀
    <b class='flag-5'>Stable</b> <b class='flag-5'>Diffusion</b>的完整指南:核心基礎(chǔ)知識(shí)、制作AI數(shù)字人視頻和本地部署要求

    Stability AI試圖通過(guò)新的圖像生成人工智能模型保持領(lǐng)先地位

    Stability AI的最新圖像生成模型Stable Cascade承諾比其業(yè)界領(lǐng)先的前身Stable Diffusion更快、更強(qiáng)大,而Stab
    的頭像 發(fā)表于 02-19 16:03 ?872次閱讀
    Stability AI試圖通過(guò)新的圖像生成人工智能<b class='flag-5'>模型</b>保持領(lǐng)先地位