CLIP+修改版GLIDE雙管齊下。
作者 | Ryan O"Connor
編譯丨王玥
編輯 | 陳彩嫻
OpenAI的模型DALL-E 2于本月初發(fā)布,剛一亮相,便在圖像生成和圖像處理領(lǐng)域卷起了新的風(fēng)暴。
只需要給到寥寥幾句文本提示,DALL-E 2就可以按文本指示生成全新圖像,甚至能將毫不相關(guān)的物體以看似合理的語義方式組合在一起。
比如用戶輸入提示“一碗湯是另一個(gè)次元的入口”后,DALL-E 2便生成了以下的魔幻圖片。
“一碗湯是另一個(gè)次元的入口” 圖源:https://openai.com/dall-e-2/
DALL-E 2不僅能按用戶指令生成明明魔幻,卻又看著十分合理不明覺厲的圖片。作為一款強(qiáng)大的模型,目前我們已知DALL-E 2還可以:
生成特定藝術(shù)風(fēng)格的圖像,仿佛出自該種藝術(shù)風(fēng)格的畫家之手,十分原汁原味!
保持一張圖片顯著特征的情況下,生成該圖片的多種變體,每一種看起來都十分自然;
修改現(xiàn)有圖像而不露一點(diǎn)痕跡,天衣無縫。
感覺有了DALL-E 2,藝術(shù)家都可以下崗了。
DALL-E 2目前曝光的功能令人瞠目結(jié)舌,不禁激起了眾多AI愛好者的討論,這樣一個(gè)強(qiáng)大模型,它的工作原理到底是什么?!
1
工作原理:簡單粗暴
"一只在吹噴火喇叭的柯基”——DALL-E 2圖片生成流程解析 圖源:https://arxiv.org/abs/2204.06125
針對(duì)圖片生成這一功能來說,DALL-E 2的工作原理剖析出來看似并不復(fù)雜:
首先,將文本提示輸入文本編碼器,該訓(xùn)練過的編碼器便將文本提示映射到表示空間。
接下來,稱為先驗(yàn)的模型將文本編碼映射到相應(yīng)的圖像編碼,圖像編碼捕獲文本編碼中包含的提示的語義信息。
最后,圖像解碼模型隨機(jī)生成一幅從視覺上表現(xiàn)該語義信息的圖像。
2
工作細(xì)節(jié):處處皆奧妙
可是以上步驟說起來簡單,分開看來卻是每一步都有很大難度,讓我們來模擬DALL-E 2的工作流程,看看究竟每一步都是怎么走通的。
我們的第一步是先看看DALL-E 2是怎么學(xué)習(xí)把文本和視覺圖像聯(lián)系起來的。
第一步 - 把文本和視覺圖像聯(lián)系起來
輸入“泰迪熊在時(shí)代廣場(chǎng)滑滑板”的文字提示后,DALL-E 2生成了下圖:
圖源:https://www.assemblyai.com/blog/how-dall-e-2-actually-works/
DALL-E 2是怎么知道“泰迪熊”這個(gè)文本概念在視覺空間里是什么樣子的?
其實(shí)DALL-E 2中的文本語義和與其相對(duì)的視覺圖片之間的聯(lián)系,是由另一個(gè)OpenAI模型CLIP(ContrastiveLanguage-ImagePre-training)學(xué)習(xí)的。
CLIP接受過數(shù)億張圖片及其相關(guān)文字的訓(xùn)練,學(xué)習(xí)到了給定文本片段與圖像的關(guān)聯(lián)。
也就是說,CLIP并不是試圖預(yù)測(cè)給定圖像的對(duì)應(yīng)文字說明,而是只學(xué)習(xí)任何給定文本與圖像之間的關(guān)聯(lián)。CLIP做的是對(duì)比性而非預(yù)測(cè)性的工作。
整個(gè)DALL-E 2模型依賴于CLIP從自然語言學(xué)習(xí)語義的能力,所以讓我們看看如何訓(xùn)練CLIP來理解其內(nèi)部工作。
CLIP訓(xùn)練
訓(xùn)練CLIP的基本原則非常簡單:
首先,所有圖像及其相關(guān)文字說明都通過各自的編碼器,將所有對(duì)象映射到m維空間。
然后,計(jì)算每個(gè)(圖像,文本)對(duì)的cos值相似度。
訓(xùn)練目標(biāo)是使N對(duì)正確編碼的圖像/標(biāo)題對(duì)之間的cos值相似度最大化,同時(shí)使N2 - N對(duì)錯(cuò)誤編碼的圖像/標(biāo)題對(duì)之間的cos值相似度最小化。
訓(xùn)練過程如下圖所示:
CLIP訓(xùn)練流程
CLIP對(duì)DALL-E 2的意義
CLIP幾乎就是DALL-E 2的心臟,因?yàn)镃LIP才是那個(gè)把自然語言片段與視覺概念在語義上進(jìn)行關(guān)聯(lián)的存在,這對(duì)于生成與文本對(duì)應(yīng)的圖像來說至關(guān)重要。
第二步 - 從視覺語義生成圖像
訓(xùn)練結(jié)束后,CLIP模型被凍結(jié),DALL-E 2進(jìn)入下一個(gè)任務(wù)——學(xué)習(xí)怎么把CLIP剛剛學(xué)習(xí)到的圖像編碼映射反轉(zhuǎn)。CLIP學(xué)習(xí)了一個(gè)表示空間,在這個(gè)表示空間當(dāng)中很容易確定文本編碼和視覺編碼的相關(guān)性, 我們需要學(xué)會(huì)利用表示空間來完成反轉(zhuǎn)圖像編碼映射這個(gè)任務(wù)。
而OpenAI使用了它之前的另一個(gè)模型GLIDE的修改版本來執(zhí)行圖像生成。GLIDE模型學(xué)習(xí)反轉(zhuǎn)圖像編碼過程,以便隨機(jī)解碼CLIP圖像嵌入。
“一只吹噴火喇叭的柯基”一圖經(jīng)過CLIP的圖片編碼器,GLIDE利用這種編碼生成保持原圖像顯著特征的新圖像。 圖源:https://arxiv.org/abs/2204.06125
如上圖所示,需要注意的是,我們的目標(biāo)不是構(gòu)建一個(gè)自編碼器并在給定的嵌入條件下精確地重建圖像,而是在給定的嵌入條件下生成一個(gè)保持原始圖像顯著特征的圖像。為了進(jìn)行圖像生成,GLIDE使用了擴(kuò)散模型(Diffusion Model)。
何為擴(kuò)散模型?
擴(kuò)散模型是一項(xiàng)受熱力學(xué)啟發(fā)的發(fā)明,近年來越來越受到學(xué)界歡迎。擴(kuò)散模型學(xué)習(xí)通過逆轉(zhuǎn)一個(gè)逐漸噪聲過程來生成數(shù)據(jù)。如下圖所示,噪聲處理過程被視為一個(gè)參數(shù)化的馬爾可夫鏈,它逐漸向圖像添加噪聲使其被破壞,最終(漸近地)導(dǎo)致純高斯噪聲。擴(kuò)散模型學(xué)習(xí)沿著這條鏈向后走去,在一系列步驟中逐漸去除噪聲,以逆轉(zhuǎn)這一過程。
擴(kuò)散模型示意圖 圖源:https://arxiv.org/pdf/2006.11239.pdf
如果訓(xùn)練后將擴(kuò)散模型“切成兩半”,則可以通過隨機(jī)采樣高斯噪聲來生成圖像,然后對(duì)其去噪,生成逼真的圖像。大家可能會(huì)意識(shí)到這種技術(shù)很容易令人聯(lián)想到用自編碼器生成數(shù)據(jù),實(shí)際上擴(kuò)散模型和自編碼器確實(shí)是相關(guān)的。
GLIDE的訓(xùn)練
雖然GLIDE不是第一個(gè)擴(kuò)散模型,但其重要貢獻(xiàn)在于對(duì)模型進(jìn)行了修改,使其能夠生成有文本條件的圖像。
GLIDE擴(kuò)展了擴(kuò)散模型的核心概念,通過增加額外的文本信息來增強(qiáng)訓(xùn)練過程,最終生成文本條件圖像。讓我們來看看GLIDE的訓(xùn)練流程:
下面是一些使用GLIDE生成的圖像示例。作者指出,就照片真實(shí)感和文本相似度兩方面而言,GLIDE的表現(xiàn)優(yōu)于DALL-E(1)。
由GLIDE生成的圖像示例 圖源https://arxiv.org/pdf/2112.10741.pdf
DALL-E 2使用了一種改進(jìn)的GLIDE模型,這種模型以兩種方式使用投影的CLIP文本嵌入。第一種方法是將它們添加到GLIDE現(xiàn)有的時(shí)間步嵌入中,第二種方法是創(chuàng)建四個(gè)額外的上下文標(biāo)記,這些標(biāo)記連接到GLIDE文本編碼器的輸出序列。
GLIDE對(duì)于DALL-E 2的意義
GLIDE對(duì)于DALL-E 2亦很重要,因?yàn)镚LIDE能夠?qū)⒆约喊凑瘴谋旧杀普鎴D像的功能移植到DALL-E 2上去,而無需在表示空間中設(shè)置圖像編碼。因此,DALL-E 2使用的修改版本GLIDE學(xué)習(xí)的是根據(jù)CLIP圖像編碼生成語義一致的圖像。
第三步 - 從文本語義到相應(yīng)的視覺語義的映射
到了這步,我們?nèi)绾螌⑽淖痔崾局械奈谋緱l件信息注入到圖像生成過程中?
回想一下,除了圖像編碼器,CLIP還學(xué)習(xí)了文本編碼器。DALL-E 2使用了另一種模型,作者稱之為先驗(yàn)?zāi)P?,以便從圖像標(biāo)題的文本編碼映射到對(duì)應(yīng)圖像的圖像編碼。DALL-E 2的作者用自回歸模型和擴(kuò)散模型進(jìn)行了實(shí)驗(yàn),但最終發(fā)現(xiàn)它們的性能相差無幾??紤]到擴(kuò)散模型的計(jì)算效率更高,因此選擇擴(kuò)散模型作為 DALL-E 2的先驗(yàn)。
從文本編碼到相應(yīng)圖像編碼的先驗(yàn)映射 修改自圖源:https://arxiv.org/abs/2204.06125
先驗(yàn)訓(xùn)練
DALL-E 2中擴(kuò)散先驗(yàn)的運(yùn)行順序是:
標(biāo)記化的文本;
這些標(biāo)記的CLIP文本編碼;
擴(kuò)散時(shí)間步的編碼;
噪聲圖像通過CLIP圖像編碼器;
Transformer輸出的最終編碼用于預(yù)測(cè)無噪聲CLIP圖像編碼。
第四步 - 萬事俱備
現(xiàn)在,我們已經(jīng)擁有了DALL-E 2的所有“零件”,萬事俱備,只需要將它們組合在一起就可以獲得我們想要的結(jié)果——生成與文本指示相對(duì)應(yīng)的圖像:
首先,CLIP文本編碼器將圖像描述映射到表示空間;
然后擴(kuò)散先驗(yàn)從CLIP文本編碼映射到相應(yīng)的CLIP圖像編碼;
最后,修改版的GLIDE生成模型通過反向擴(kuò)散從表示空間映射到圖像空間,生成眾多可能圖像中的一個(gè)。
DALL-E 2圖像生成流程的高級(jí)概述 修改自圖源:https://arxiv.org/abs/2204.06125
以上就是DALL-E 2的工作原理啦~
希望大家能注意到DALL-E 2開發(fā)的3個(gè)關(guān)鍵要點(diǎn):
DALL-E 2體現(xiàn)了擴(kuò)散模型在深度學(xué)習(xí)中的能力,DALL-E 2中的先驗(yàn)子模型和圖像生成子模型都是基于擴(kuò)散模型的。雖然擴(kuò)散模型只是在過去幾年才流行起來,但其已經(jīng)證明了自己的價(jià)值,我們可以期待在未來的各種研究中看到更多的擴(kuò)散模型~
第二點(diǎn)是我們應(yīng)看到使用自然語言作為一種手段來訓(xùn)練最先進(jìn)的深度學(xué)習(xí)模型的必要性與強(qiáng)大力量。DALL-E 2的強(qiáng)勁功能究其根本還是來自于互聯(lián)網(wǎng)上提供的絕對(duì)海量的自然語言&圖像數(shù)據(jù)對(duì)。使用這些數(shù)據(jù)不僅消除了人工標(biāo)記數(shù)據(jù)集這一費(fèi)力的過程所帶來的發(fā)展瓶頸;這些數(shù)據(jù)的嘈雜、未經(jīng)整理的性質(zhì)也更加反映出深度學(xué)習(xí)模型必須對(duì)真實(shí)世界的數(shù)據(jù)具有魯棒性。
最后,DALL-E 2重申了Transformer作為基于網(wǎng)絡(luò)規(guī)模數(shù)據(jù)集訓(xùn)練的模型中的最高地位,因?yàn)門ransformer的并行性令人印象十分深刻。
關(guān)鍵詞: DALL-E 2的工作原理原來是這樣 dall clip 圖像編碼