擴(kuò)散模型去偽求真,Straightness Is Not Your Need?!
23年以來(lái),基于rectified flow[1]和flow-matching[2]的擴(kuò)散模型在生成領(lǐng)域大展異彩,許多基于flow-matching的模型和文章如雨后春筍般涌現(xiàn),仿佛“直線”已經(jīng)成為一種政治正確。
該blog的動(dòng)機(jī),是源于網(wǎng)絡(luò)平臺(tái),諸如知乎,小紅書(shū),乃至許多論文中都出現(xiàn)了很多對(duì)于rectified flow (flow-matching) 的錯(cuò)誤理解和解讀。本文希望能夠提供一個(gè)相對(duì)合理的視角來(lái)重新思考關(guān)于rectified flow相關(guān)的話題, 拋磚引玉。
該blog基于最近的論文:
Rectified Diffusion: Straightness is Not Your Need
單位: MMLab-CUHK, Peking University, Princeton University
https://arxiv.org/pdf/2410.07303
https://github.com/G-U-N/Rectified-Diffusion/tree/master
https://huggingface.co/wangfuyun/Rectified-Diffusion
直觀對(duì)比,F(xiàn)Ms和一般的DMs有本質(zhì)區(qū)別嗎?
以這種視角我們看到,flow-matching,它只是general 擴(kuò)散模型表達(dá)式的一種特例,他并不比其他的形式包括VP, VE, Sub-VP更加特殊。要說(shuō)為什么有很多文章諸如sd3,flow-matching等文章中的效果要比其他form好,我個(gè)人認(rèn)為更多是超參數(shù)導(dǎo)致的問(wèn)題,例如如何分配時(shí)間的采樣,時(shí)間t的weigthing,還有prediction type的差異等等。論文中通常為了表現(xiàn)自己方法的優(yōu)越性,都會(huì)對(duì)自己的方法進(jìn)行比較精細(xì)的超參數(shù)搜索。而對(duì)于一種diffusion form的最優(yōu)超參數(shù)設(shè)置,未必適用于其他的diffusion forms。
FMs的軌跡真的直嗎?
Rectified Flow是怎么讓軌跡變直的?
通讀rectified flow[1] [8] [9]的相關(guān)文章,我們可以看到rectified flow相較于一般的DDPM,主要有三點(diǎn)核心的觀點(diǎn):
Rectified flow的采樣軌跡,只有在執(zhí)行了多次(一次)的rectification的操作之后,才會(huì)慢慢的變?yōu)橹本€,這也正是rectified flow中實(shí)現(xiàn)單步生成的重要操作。
Rectified flow包括后續(xù)的諸多工作,都強(qiáng)調(diào)Rectification這個(gè)操作,僅適用于flow-matching形式的diffusion模型。也就是說(shuō)他們認(rèn)為前兩點(diǎn)~(1和2)是采用Rectification并實(shí)現(xiàn)采樣加速的的基礎(chǔ),并強(qiáng)調(diào)修正過(guò)程(Rectification)將ODE路徑“拉直”。如果是其他的diffusion forms,如VP, VE, sub-VP[6]等,則無(wú)法采用rectification的操作來(lái)實(shí)現(xiàn)加速。
這就導(dǎo)致,在InstaFlow[10]中 (Rectified Flow的后續(xù)工作,其作者嘗試將rectified flow拓展到stable diffusion上的文生圖任務(wù)),rectified flow的作者使用stable diffusion的原始權(quán)重初始化,但是將SD轉(zhuǎn)變?yōu)閒low-matching的form,并采用v-prediction來(lái)進(jìn)行重新訓(xùn)練。
所以,rectified flow中的這種觀點(diǎn)真的正確嗎?在加速sd的過(guò)程中,真的有必要首先將其轉(zhuǎn)化為flow-matching的形式和v-prediction嗎? Flow-matching的diffusion form真的顯著比別的形式好嗎?
Recfified Diffusion: 本質(zhì)是使用配對(duì)的噪聲樣本對(duì)重訓(xùn)練。
Flow-matching Training是標(biāo)準(zhǔn)diffusion training的子集。此外,算法2 可視化了更一般的擴(kuò)散模型的訓(xùn)練過(guò)程,與算法1的差異以藍(lán)色和橙色標(biāo)出。值得注意的是,流匹配是我們討論的擴(kuò)散形式的一個(gè)特殊情況。從算法中可以看出,它們之間的唯一區(qū)別在于擴(kuò)散形式和預(yù)測(cè)類型。因此,流匹配訓(xùn)練只是特定擴(kuò)散形式和預(yù)測(cè)類型下的標(biāo)準(zhǔn)擴(kuò)散訓(xùn)練的特殊情況。
通過(guò)比較算法2 和算法3 與算法1,可以自然而然的推導(dǎo)出算法4。本質(zhì)上,通過(guò)引入預(yù)訓(xùn)練模型來(lái)收集噪聲-樣本對(duì),并在標(biāo)準(zhǔn)的擴(kuò)散訓(xùn)練中用這些預(yù)先收集的配對(duì)替換隨機(jī)采樣的噪聲和真實(shí)樣本,我們就得到了Rectified Diffusion的訓(xùn)練算法。
訓(xùn)練目標(biāo)是軌跡一階化
一階ODE與預(yù)定義擴(kuò)散形式具有相同的形式
一階化軌跡可能是彎曲的
實(shí)驗(yàn)驗(yàn)證
我們進(jìn)行了廣泛的實(shí)驗(yàn)驗(yàn)證和方法對(duì)比,我們的方法取得了一致超越rectified flow相關(guān)方法的性能,并且與最先進(jìn)的蒸餾加速算法[11] [12]也取得了comparable的結(jié)果。
最后歡迎大家關(guān)注我們的論文: