前不久,著名開源生成式AI平臺Stability.ai發(fā)布了,全新文生圖模型SDXL Turbo。該模型只需1秒甚至更少的時間就能生成高精準圖片,可將通常50個生成步降至1—4步。
Stability.ai表示,SDXL Turbo能有如此快的推理效率是使用了全新的技術(shù)——對抗式擴散蒸餾(Adversarial Diffusion Distillation,簡稱ADD)。
簡單來說,ADD就是在“瘋狂內(nèi)卷+嚴師指導(dǎo)”的雙重模式下,用最短的時間、最高效的學(xué)習(xí)方法考上了清、北。
現(xiàn)在你讀上面那段話可能有點迷糊,看完全文后你就會心疼ADD,像極了當年學(xué)習(xí)的自己。
論文地址:https://stability.ai/s/adversarial_diffusion_distillation.pdf
開源地址:https://github.com/Stability-AI/generative-models
什么是大模型蒸餾
為了更好地理解ADD技術(shù)原理,「AIGC開放社區(qū)」先用通俗易懂的方式為大家介紹一下大模型中的“蒸餾”到底是什么技術(shù)。
模型蒸餾是一種將大型復(fù)雜模型(通常稱為“教師模型”)的知識傳輸?shù)叫⌒秃喕P?即“學(xué)生模型”)的技術(shù)。
蒸餾過程就像把水果壓榨成精華果汁一樣,我們嘗試保留大模型中最重要的信息,并且讓小模型能夠捕獲并模仿這些內(nèi)容。
或者可以理解成老師教學(xué)生的過程,全部知識不一定都學(xué)會,但重要知識點肯定都掌握了。
而ADD能以最快的推理效率生成高質(zhì)量圖片,便使用了對抗損失和分數(shù)蒸餾兩項重要技術(shù)。
一個負責(zé)生成圖片的質(zhì)量,另外一個充當“老師”負責(zé)教會小模型捕捉重要知識點并進行指導(dǎo)修正。
對抗損失
對抗損失是ADD框架中的一大關(guān)鍵功能。引入了對抗學(xué)習(xí)的思想,讓學(xué)生模型與判別器之間進行激烈對抗。
對抗學(xué)習(xí)源于GAN模型,其核心思路是通過競爭促進模型快速逼近復(fù)雜分布。學(xué)生模型想方設(shè)法生成高質(zhì)量圖像蒙騙判別器,而判別器則全力識破這些虛假的圖片。
所以,兩人就不得不拼命的內(nèi)卷,最后生成的圖片質(zhì)量越來越高。此外,對抗過程還可引入條件信息,如文本或圖像的特征向量,以增強對應(yīng)性。
對抗損失中的判別器包含兩部分:一個特征提取器和幾個判別頭。特征網(wǎng)絡(luò)可以預(yù)先在圖像分類等任務(wù)上訓(xùn)練,然后切掉分類層拿特征向量。這樣可以重復(fù)使用以前學(xué)到的知識。
判別頭則在特征的基礎(chǔ)上判斷圖像真?zhèn)?。?xùn)練目標就是最大化真實圖的分數(shù),最小化假圖的分數(shù)。
分數(shù)蒸餾
分數(shù)蒸餾的核心思想是,讓老師模型教學(xué)生模型傳授重要知識幫助ADD捕獲模型的知識點。就是咱們前面介紹的“模型蒸餾”概念。
ADD的老師模型使用了Stability.ai自研性能強大的Stable Diffusion XL和Stable Diffusion2.1兩個擴散模型,來監(jiān)督學(xué)生模型ADD-M和ADD-XL生成的圖片結(jié)果。
具體流程是,先將學(xué)生模型生成的圖片進一步加噪聲,模擬擴散過程,然后讓老師模型基于噪聲圖像輸出它的還原結(jié)果。
這個還原結(jié)果可以作為學(xué)習(xí)目標,并成為學(xué)生模型的生成目標,使自己的圖片可以匹配老師模型。同時在老師的指點下,逐步修正偏差達到最佳效果。
在訓(xùn)練過程中,學(xué)生模型需要同時面對判別器的對抗,和老師模型的嚴厲監(jiān)督,在二者的雙重驅(qū)動下不斷進步。
所以,在最終輸出階段學(xué)生模型能用極少的采樣步驟1—4,就能輸出高質(zhì)量精準圖片。
哎~~萬萬沒想到現(xiàn)實中的高壓學(xué)習(xí)、生活方法也適用于大模型界,看來開發(fā)靈感真的無處不在啊,真是名師出高徒,嚴父出孝子。