DALL-E 2的工作原理原來是這樣!

發(fā)布時(shí)間:2022-04-20 22:14:39  |  來源:騰訊網(wǎng)  

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 圖像編碼

 

網(wǎng)站介紹  |  版權(quán)說明  |  聯(lián)系我們  |  網(wǎng)站地圖 

星際派備案號(hào):京ICP備2022016840號(hào)-16 營業(yè)執(zhí)照公示信息版權(quán)所有 郵箱聯(lián)系:920 891 263@qq.com