自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

文本生成圖像這么火,你需要了解這些技術(shù)的演變

人工智能 新聞
目前多模態(tài)任務(wù)成為行業(yè)熱點(diǎn),本文梳理了較為優(yōu)秀的多模態(tài)文本圖像模型:DALL·E、CLIP、GLIDE、DALL·E 2 (unCLIP)的模型框架、優(yōu)缺點(diǎn),及其迭代關(guān)系。

?OpenAI 最近發(fā)布了 DALL·E 2 系統(tǒng),在 AI 界引發(fā)了「地震」,該系統(tǒng)能夠根據(jù)文本描述創(chuàng)建圖像。這是 DALL·E 系統(tǒng)的第二個(gè)版本,第一個(gè)版本是在近一年前發(fā)布的。然而,在 OpenAI 內(nèi)部,DALL·E 2 背后的模型被稱為 unCLIP,它更接近于 OpenAI 的 GLIDE 系統(tǒng),而不是原始的 DALL·E。

對(duì)筆者來(lái)說(shuō),DALL·E 2 系統(tǒng)的沖擊力可以與 AlphaGo 相媲美。看起來(lái)該模型捕獲了許多復(fù)雜的概念,并且以有意義的方式將它們組合起來(lái)。就在幾年前,計(jì)算機(jī)能否從這樣的文本描述中生成圖像還是一件難以預(yù)測(cè)的事情。Sam Altman 在他的博客文章中提到,我們對(duì) AI 的預(yù)測(cè)似乎是錯(cuò)誤的,是需要更新的,因?yàn)?AI 已經(jīng)開(kāi)始影響創(chuàng)造性的工作,而非只是機(jī)械重復(fù)的工作。

本文旨在帶領(lǐng)讀者一覽 OpenAI 的文本引導(dǎo)圖像生成模型的演變,包括 DALL·E 的第一個(gè)和第二個(gè)版本以及其他的模型。

DALL·E 演變史

DALL·E 1

DALL·E 的第一個(gè)版本是 GPT-3 風(fēng)格的 transformer 解碼器,它可以根據(jù)文本輸入和可選的圖像開(kāi)頭自回歸生成 256×256 大小的圖像。

你一定見(jiàn)過(guò)這些牛油果椅子:

圖片

來(lái)自原始博客文章。

如果你想了解類似 GPT 的 transformer 的工作原理,請(qǐng)參閱 Jay Alammar 的精彩視覺(jué)解釋:https://jalammar.github.io/how-gpt3-works-visualizations-animations/

文本由 BPE tokens 編碼(最多 256 個(gè)),圖像由離散變分自編碼器 (dVAE) 生成的特殊圖像 tokens(其中 1024 個(gè))編碼。dVAE 將 256×256 圖像編碼為 32×32 tokens 的網(wǎng)格,詞匯表包含 8192 個(gè)可能的值。dVAE 會(huì)在生成的圖像中丟失一些細(xì)節(jié)和高頻特征,所以 DALL·E 生成圖像的特征采用了一些模糊和平滑。

圖片

原始圖像(頂部)和 dVAE 重建(底部)的比較。圖片來(lái)自原始論文。

這里使用的 transformer 是有著 12B 大小參數(shù)的大模型,由 64 個(gè)稀疏 transformer 塊組成,內(nèi)部具有一組復(fù)雜的注意力機(jī)制,包括:1) 經(jīng)典的文本到文本注意力掩碼機(jī)制,2) 圖像到文本的注意力,3) 圖像到圖像稀疏注意力。所有三種注意力類型都合并為一個(gè)注意力運(yùn)算。該模型是在 250M 圖像 - 文本對(duì)的數(shù)據(jù)集上訓(xùn)練的。

圖片

類似 GPT-3 的 transformer 解碼器使用一系列文本 token 和(可選)圖像 token(此處為 id 為 42 的單個(gè)圖像 token)并生成圖像的延續(xù)(此處為 id 為 1369 的下一個(gè)圖像 token)

訓(xùn)練后的模型根據(jù)提供的文本生成了幾個(gè)樣本(最多 512 個(gè)),然后將所有這些樣本通過(guò)一個(gè)名為 CLIP 的特殊模型進(jìn)行排序,并選擇排名靠前的一個(gè)作為模型的結(jié)果。

圖片

原始論文中的幾個(gè)圖像生成示例。?

CLIP

CLIP 最初是一個(gè)單獨(dú)的輔助模型,用于對(duì) DALL·E 的結(jié)果進(jìn)行排序。它的名字是 Contrastive Language-Image Pre-Training 的縮寫(xiě)。

CLIP 背后的想法很簡(jiǎn)單。筆者從互聯(lián)網(wǎng)上抓取了一個(gè)圖像 - 文本對(duì)數(shù)據(jù)集(400M 的規(guī)模),然后在這樣的數(shù)據(jù)集上訓(xùn)練一個(gè)對(duì)比模型。對(duì)比模型可以給來(lái)自同一對(duì)的圖像和文本產(chǎn)生高相似度得分(因此它們是相似的),而對(duì)不匹配的文本和圖像產(chǎn)生低分(我們希望在當(dāng)前訓(xùn)練批次中某個(gè)圖像和任何其他對(duì)的文本之間得到高相似度結(jié)果的機(jī)會(huì)很?。?。

該模型由兩個(gè)編碼器組成:一個(gè)用于文本,另一個(gè)用于圖像。編碼器產(chǎn)生嵌入(一個(gè)對(duì)象的多維向量表征,例如一個(gè) 512 字節(jié)的向量)。然后使用兩個(gè)嵌入計(jì)算點(diǎn)積,并得出相似度得分。因?yàn)榍度霑?huì)被歸一化,所以這個(gè)計(jì)算相似度得分的過(guò)程輸出的是余弦相似度。對(duì)于指向相同方向的向量(它們之間的角度很?。?,余弦相似度接近 1,對(duì)于正交向量,余弦相似度接近 0,對(duì)于相反的向量,余弦相似度接近 -1。

圖片

對(duì)比預(yù)訓(xùn)練過(guò)程可視化(圖片來(lái)自原帖)

CLIP 是一組模型。有 9 個(gè)圖像編碼器、5 個(gè)卷積編碼器和 4 個(gè) transformer 編碼器。卷積編碼器是 ResNet-50、ResNet-101 和類似 EfficientNet 的模型,稱為 RN50x4、RN50x16、RN50x64(數(shù)字越大,模型越好)。transformer 編碼器是視覺(jué) Transformer(或稱之為 ViT):ViT-B/32、ViT-B/16、ViT-L/14 和 ViT-L/14@336。最后一個(gè)在分辨率為 336×336 像素的圖像上進(jìn)行微調(diào),其他的則在 224×224 像素上進(jìn)行訓(xùn)練。

OpenAI 分階段發(fā)布了程序,首先發(fā)布了 ViT-B/32 和 ResNet-50,然后是 ResNet-101 和 RN50x4,然后 RN50x16 和 ViT-B/16 于 2021 年 7 月發(fā)布,然后是 RN50x64 和 ViT-L /14 在 2022 年 1 月發(fā)布,2022 年 4 月終于出現(xiàn)了 ViT-L/14@336。

文本編碼器是一個(gè)普通的 transformer 編碼器,但具備掩碼注意力機(jī)制。這個(gè)編碼器由 12 層組成,每層有 8 個(gè)注意力頭,總共有 63M 的參數(shù)。有趣的是,注意力跨度只有 76 個(gè) token(相比之下,GPT-3 有 2048 個(gè) token,標(biāo)準(zhǔn) BERT 有 512 個(gè) token)。因此,模型的文本部分只適用于相當(dāng)短的文本,不能在模型中放入大段文本。由于 DALL·E 2 和 CLIP 大致相同,應(yīng)該也有相同的限制。

CLIP 預(yù)訓(xùn)練之后,可以將其用于不同的任務(wù)(有良好基礎(chǔ)模型的優(yōu)勢(shì))。

最重要的是,讀者可以使用在 DALL·E 中排序好的模型對(duì)多個(gè)結(jié)果進(jìn)行評(píng)分,并選擇最好的一個(gè)?;蛘?,也可以使用 CLIP 功能在其之上訓(xùn)練自定義分類器,但是目前成功的例子還不是很多。

接下來(lái),可以使用 CLIP 對(duì)任意數(shù)量的類進(jìn)行零樣本分類(當(dāng)沒(méi)有專門訓(xùn)練模型以使用這些類時(shí))。這些類可以在不重新訓(xùn)練模型的情況下進(jìn)行調(diào)整。

簡(jiǎn)單來(lái)說(shuō),可以為所需的多個(gè)類創(chuàng)建一個(gè)描述圖片中物體的文本數(shù)據(jù)集。然后為這些描述生成文本嵌入并將它們存儲(chǔ)為向量。當(dāng)圖像用于分類時(shí),使用圖像編碼器生成圖像嵌入,并計(jì)算圖像嵌入和所有預(yù)先計(jì)算的文本嵌入之間的點(diǎn)積。選擇得分最高的對(duì),其對(duì)應(yīng)的類就是結(jié)果。

圖片

用于使用 CLIP 進(jìn)行零樣本分類的程序。

零樣本分類模型是說(shuō)并未針對(duì)特定類別集訓(xùn)練模型?,F(xiàn)在可以選擇使用預(yù)訓(xùn)練的 CLIP 進(jìn)行即時(shí)工程(與使用 GPT 模型相同),而不是從頭開(kāi)始訓(xùn)練分類器或通過(guò)微調(diào)預(yù)訓(xùn)練的圖像模型。

很多人沒(méi)有想到,也可以使用 CLIP 生成圖像(即使它并沒(méi)有被預(yù)設(shè)可以這樣做)。成功案例包括 CLIPDraw 和 VQGAN-CLIP。

圖片

CLIPD 繪制示例。圖片來(lái)自原論文。

圖片

VQGAN-CLIP 及其文本 prompt 的生成示例。圖片來(lái)自原論文。

該過(guò)程簡(jiǎn)單而美觀,與 DeepDream 非常相似。從想要的圖像的文本描述和初始圖像(隨機(jī)嵌入、樣條線或像素中的場(chǎng)景描述、任何以可區(qū)分方式創(chuàng)建的圖像)開(kāi)始,然后運(yùn)行一個(gè)生成圖像的循環(huán),加入一些增強(qiáng)以提高穩(wěn)定性,獲得結(jié)果圖像的 CLIP 嵌入,并將其與描述圖像的文本的 CLIP 嵌入進(jìn)行比較。根據(jù)此差異計(jì)算損失,并運(yùn)行梯度下降程序,以此來(lái)更新圖像、減少損失。經(jīng)過(guò)一些迭代后,可以得到很好地匹配文本描述的圖像。創(chuàng)建初始場(chǎng)景的方式(使用樣條線、像素、渲染基元、來(lái)自 VQGAN 的潛在代碼等)會(huì)顯著影響圖像特征。

圖片

CLIPDraw 生成過(guò)程:從一組隨機(jī)的 Bezier 曲線開(kāi)始,優(yōu)化曲線的位置和顏色,使生成的圖形與給定的描述 prompt 最匹配。圖片來(lái)自原論文。

圖片

VQGAN-CLIP 生成過(guò)程。圖片來(lái)自原論文。

CLIP 嵌入并不能捕獲所有內(nèi)容,一些有趣的演示證明了它的弱點(diǎn)。其中一個(gè)廣為人知的例子是印刷攻擊。在這種攻擊中,圖像上的文本可能導(dǎo)致圖像的錯(cuò)誤分類。

目前有一些與 CLIP 結(jié)構(gòu)相似的替代模型,例如 Google 的 ALIGN 或華為的 FILIP。

GLIDE

GLIDE,即 Guided Language to Image Diffusion for Generation and Editing,是 OpenAI 推出的文本引導(dǎo)圖像生成模型,目前已經(jīng)擊敗了 DALL·E,但受到的關(guān)注相對(duì)較少。它甚至在 OpenAI 網(wǎng)站上也沒(méi)有專門的帖子。GLIDE 生成分辨率為 256×256 像素的圖像。

擁有 3.5B 參數(shù)的 GLIDE 模型(但似乎正確的數(shù)字是 5B 參數(shù),因?yàn)橛幸粋€(gè)單獨(dú)的具有 1.5B 參數(shù)的上采樣模型)比 12B 參數(shù) DALL·E 更受人們的青睞,并且在 FID 得分上也擊敗了 DALL·E。

?

圖片

來(lái)自 GLIDE 的樣本。圖片來(lái)自原始論文。

GLIDE 模型還可以進(jìn)行微調(diào)以執(zhí)行圖像修復(fù),從而實(shí)現(xiàn)強(qiáng)大的文本驅(qū)動(dòng)圖像編輯,這在 DALL·E 2 中使用。

圖片

來(lái)自 GLIDE 的文本條件圖像修復(fù)示例。綠色區(qū)域被擦除,模型根據(jù)給定的提示填充這個(gè)區(qū)域。該模型能夠匹配周圍環(huán)境的風(fēng)格和光線,產(chǎn)生逼真的完成效果。示例來(lái)自原論文。

GLIDE 在發(fā)布時(shí)可以稱作「DALL·E 2」。現(xiàn)在,當(dāng)一個(gè)單獨(dú)的 DALL·E 2 系統(tǒng)發(fā)布時(shí)(實(shí)際上在論文中稱為 unCLIP 并且大量使用 GLIDE 本身),我們可以將 GLIDE 稱為 DALL·E 1.5 :)

GLIDE 類似于另一種稱為擴(kuò)散模型的模型。簡(jiǎn)而言之,擴(kuò)散模型通過(guò)擴(kuò)散步驟鏈向輸入數(shù)據(jù)添加隨機(jī)噪聲,然后它們會(huì)學(xué)習(xí)逆向擴(kuò)散過(guò)程以從噪聲中構(gòu)造圖像。

圖片

去噪擴(kuò)散模型生成圖像。

下圖是 Google 使用擴(kuò)散模型生成圖像的可視化說(shuō)明。

圖片

擴(kuò)散模型與其他類別的生成模型的比較。

首先,作者訓(xùn)練了一個(gè) 3.5B 參數(shù)擴(kuò)散模型,該模型使用文本編碼器以自然語(yǔ)言描述為條件。接下來(lái),他們比較了兩種將擴(kuò)散模型引導(dǎo)到文本 prompt 的技術(shù):CLIP 引導(dǎo)和無(wú)分類器引導(dǎo)(后者能產(chǎn)生更好的結(jié)果)。

分類器引導(dǎo)允許擴(kuò)散模型以分類器的標(biāo)簽為條件,并且來(lái)自分類器的梯度用于引導(dǎo)樣本朝向標(biāo)簽。

無(wú)分類器引導(dǎo)不需要訓(xùn)練單獨(dú)的分類器模型。這只是一種引導(dǎo)形式,在有標(biāo)簽和沒(méi)有標(biāo)簽的擴(kuò)散模型的預(yù)測(cè)之間進(jìn)行插值。

正如作者所說(shuō),無(wú)分類引導(dǎo)有兩個(gè)吸引人的特性。首先,它允許單個(gè)模型在引導(dǎo)過(guò)程中利用自己的知識(shí),而不是依賴于單獨(dú)(有時(shí)更小的)分類模型的知識(shí)。其次,它簡(jiǎn)化了對(duì)難以用分類器預(yù)測(cè)的信息(例如文本)進(jìn)行調(diào)節(jié)時(shí)的引導(dǎo)。

在 CLIP 引導(dǎo)下,分類器被替換為 CLIP 模型。它使用圖像的點(diǎn)積和相對(duì)于圖像的標(biāo)題編碼的梯度。

在分類器和 CLIP 引導(dǎo)中,我們必須在噪聲圖像上訓(xùn)練 CLIP,以便在反向擴(kuò)散過(guò)程中獲得正確的梯度。作者使用了經(jīng)過(guò)明確訓(xùn)練具有噪聲感知能力的 CLIP 模型,這些模型被稱為噪聲 CLIP 模型。尚未在噪聲圖像上訓(xùn)練的公共 CLIP 模型仍可用于引導(dǎo)擴(kuò)散模型,但噪聲 CLIP 引導(dǎo)對(duì)這種方法表現(xiàn)良好。

文本條件擴(kuò)散模型是一種增強(qiáng)的 ADM 模型架構(gòu),它基于噪聲圖像 x? 和相應(yīng)的文本標(biāo)題 c 預(yù)測(cè)下一個(gè)擴(kuò)散步驟的圖像。

視覺(jué)部分是修改后的 U-Net 架構(gòu)。U-Net 模型使用一堆殘差層和下采樣卷積,然后是一堆帶有上采樣卷積的殘差層,使用殘差連接(skip connection)連接具有相同空間大小的層。

圖片

原始的 U-Net 架構(gòu)。圖片來(lái)自原論文。

GLIDE 對(duì)原始 U-Net 架構(gòu)的寬度、深度等方面有不同的修改,在 8×8、16×16 和 32×32 分辨率下添加了具有多個(gè)注意力頭的全局注意力層。此外,還將時(shí)間步嵌入的投影添加到每個(gè)殘差塊中。

對(duì)于分類器引導(dǎo)模型,分類器架構(gòu)是 U-Net 模型的下采樣主干網(wǎng)絡(luò),在 8×8 層有一個(gè)注意力池以生成最終輸出。

文本通過(guò) transformer 模型被編碼成 K 個(gè)(最大注意力跨度尚不清楚)tokens 的序列。

transformer 的輸出有兩種使用方式:首先,使用最終的 token 嵌入替代 ADM 模型中的類嵌入;其次,token 嵌入的最后一層(K 個(gè)特征向量的序列)分別投影到整個(gè) ADM 模型中每個(gè)注意力層的維度,然后連接到每一層的注意力上下文。

文本 transformer 有 24 個(gè)寬度為 2048 的殘差塊,產(chǎn)生大約 1.2B 的參數(shù)。為 64×64 分辨率訓(xùn)練的模型的視覺(jué)部分由 2.3B 個(gè)參數(shù)組成。除了 3.5B 參數(shù)的文本條件擴(kuò)散模型,作者還訓(xùn)練了另一個(gè) 1.5B 參數(shù)的文本條件上采樣擴(kuò)散模型,將分辨率提高到 256×256(這個(gè)想法在 DALL·E 中也會(huì)用到)。

上采樣模型以與基本模型相同的方式以文本為條件,但使用寬度為 1024 而不是 2048 的較小文本編碼器。對(duì)于 CLIP 引導(dǎo),他們還訓(xùn)練了帶噪聲的 64×64 ViT-L CLIP 模型。

GLIDE 在與 DALL·E 相同的數(shù)據(jù)集上進(jìn)行訓(xùn)練,總的訓(xùn)練計(jì)算量大致等于用于訓(xùn)練 DALL·E 的計(jì)算量。

GLIDE 在所有設(shè)置中都是最優(yōu),即使設(shè)置允許 DALL·E 使用更多的測(cè)試時(shí)間計(jì)算來(lái)得到優(yōu)越的表現(xiàn),同時(shí)降低 GLIDE 樣本質(zhì)量(通過(guò) VAE 模糊)。

圖片

該模型經(jīng)過(guò)微調(diào)以支持無(wú)條件的圖像生成。這個(gè)訓(xùn)練過(guò)程與預(yù)訓(xùn)練完全一樣,只是將 20% 的文本 token 序列替換為空序列。這樣,模型保留了生成文本條件輸出的能力,但也可以無(wú)條件地生成圖像。

該模型還經(jīng)過(guò)顯式微調(diào)以執(zhí)行修復(fù)。在微調(diào)期間,訓(xùn)練示例的隨機(jī)區(qū)域被刪除,其余部分與掩碼通道一起作為附加條件信息輸入模型。

GLIDE 可以迭代地使用 zero-shot 生成產(chǎn)生復(fù)雜場(chǎng)景,然后進(jìn)行一系列修復(fù)編輯。

圖片

首先生成 prompt「一個(gè)舒適的客廳」的圖像,然后使用修復(fù)蒙版,后續(xù)文本 prompt 在墻上添加了一幅畫(huà)、一個(gè)茶幾,茶幾上還有一個(gè)花瓶,最后把墻移到沙發(fā)上。示例來(lái)自原論文。

DALL·E 2/unCLIP?

OpenAI 于 2022 年 4 月 6 日發(fā)布了 DALL·E 2 系統(tǒng)。DALL·E 2 系統(tǒng)比原來(lái)的 DALL·E 顯著提升了結(jié)果。它生成的圖像分辨率提高了 4 倍(與原來(lái)的 DALL·E 和 GLIDE 相比),現(xiàn)在高達(dá) 1024×1024 像素。DALL·E 2 系統(tǒng)背后的模型稱為 unCLIP。

作者發(fā)現(xiàn),就照片寫(xiě)實(shí)而言,人類略微喜歡 GLIDE 而不是 unCLIP,但差距非常小。在具有類似真實(shí)感的情況下,在多樣性方面,unCLIP 比 GLIDE 更受青睞,突出了它的好處之一。請(qǐng)記住,GLIDE 本身比 DALL·E 1 更受歡迎,所以說(shuō) DALL·E 2 比它的前身 DALL·E 1 有了顯著改進(jìn)。

圖片

對(duì)于「用克勞德 · 莫奈的風(fēng)格畫(huà)一幅狐貍坐在日出時(shí)分田野里的畫(huà)」的要求,兩個(gè)版本的系統(tǒng)生成的圖片,圖片來(lái)自原文章。

DALL·E 2 可以將概念、屬性和風(fēng)格結(jié)合起來(lái):

圖片

原文中的示例。

DALL·E 2 還可以基于文本引導(dǎo)進(jìn)行圖像編輯,這是 GLIDE 中的功能。它可以在考慮陰影、反射和紋理的同時(shí)添加和刪除元素:

圖片

將柯基犬添加到圖像上的特定位置,圖片來(lái)自原論文中。

DALL·E 2 還可用于生成原始圖像的變體:

圖片

生成圖像的變體,圖片來(lái)自原文。

DALL·E 2 也存在一些問(wèn)題。特別是 unCLIP 在將屬性綁定到對(duì)象方面比 GLIDE 模型更差。例如,unCLIP 比 GLIDE 更難面對(duì)必須將兩個(gè)單獨(dú)的對(duì)象(立方體)綁定到兩個(gè)單獨(dú)的屬性(顏色)的 prompt:

圖片

unCLIP 生成連貫的文本上也有一些困境:

圖片

另一個(gè)問(wèn)題是 unCLIP 很難在復(fù)雜場(chǎng)景中生成細(xì)節(jié):

圖片

?模型內(nèi)部發(fā)生了一些改變。下圖是 CLIP 和 GLIDE 的結(jié)合,模型本身(全文條件圖像生成堆棧)在論文內(nèi)部稱為 unCLIP,因?yàn)樗ㄟ^(guò)反轉(zhuǎn) CLIP 圖像編碼器生成圖像。

該模型的工作方式如下:CLIP 模型是單獨(dú)訓(xùn)練的。然后 CLIP 文本編碼器為輸入文本(標(biāo)題)生成嵌入。然后一個(gè)特殊的先驗(yàn)?zāi)P突谖谋厩度肷蓤D像嵌入。然后擴(kuò)散解碼器基于圖像嵌入生成圖像。解碼器本質(zhì)上將圖像嵌入反轉(zhuǎn)回圖像。

圖片

系統(tǒng)的宏觀概述。一些細(xì)節(jié)(如解碼器文本條件)沒(méi)有顯示。圖片來(lái)自原論文。

CLIP 模型使用 ViT-H/16 圖像編碼器,它使用 256×256 分辨率的圖像,寬度為 1280,帶有 32 個(gè) Transformer 塊(它比原始 CLIP 工作中最大的 ViT-L 更深)。文本編碼器是一個(gè)帶有因果注意掩碼的 Transformer,寬度為 1024 和 24 個(gè) Transformer 塊(原始 CLIP 模型有 12 個(gè) Transformer 塊)。尚不清楚文本 transformer 的注意力跨度是否與原始 CLIP 模型中的相同(76 個(gè) token)。

擴(kuò)散解碼器是經(jīng)過(guò)修改的 GLIDE,具有 3.5B 參數(shù)。CLIP 圖像嵌入被投影并添加到現(xiàn)有的時(shí)間步嵌入中。CLIP 嵌入也被投影到四個(gè)額外的上下文 token 中,這些 token 連接到 GLIDE 文本編碼器的輸出序列。保留了原始 GLIDE 的文本條件路徑,因?yàn)樗梢宰寯U(kuò)散模型學(xué)習(xí) CLIP 未能捕獲的自然語(yǔ)言方面(然而,它幫助不大)。在訓(xùn)練期間,10% 的時(shí)間用于將 CLIP 嵌入隨機(jī)設(shè)置為零,50% 的時(shí)間隨機(jī)刪除文本標(biāo)題。

解碼器生成 64×64 像素的圖像,然后兩個(gè)上采樣擴(kuò)散模型隨后生成 256×256 和 1024×1024 的圖像,前者具有 700M 參數(shù),后者具有 300M 參數(shù)。為了提高上采樣的魯棒性,在訓(xùn)練過(guò)程中條件圖像被輕微損壞。第一個(gè)上采樣階段使用高斯模糊,第二個(gè)階段使用更多樣化的 BSR 降級(jí),包括 JPEG 壓縮偽影、相機(jī)傳感器噪聲、雙線性和雙三次插值、高斯噪聲。這些模型在目標(biāo)大小的四分之一的隨機(jī)圖像上進(jìn)行訓(xùn)練。文本調(diào)節(jié)不用于上采樣模型。

先驗(yàn)根據(jù)文本描述生成圖像嵌入。作者探索了先驗(yàn)?zāi)P偷膬蓚€(gè)不同模型類:自回歸 (AR) 先驗(yàn)和擴(kuò)散先驗(yàn)。兩種先驗(yàn)的模型都有 1B 參數(shù)。

在 AR 先驗(yàn)中,CLIP 圖像嵌入被轉(zhuǎn)換為一系列離散代碼,并根據(jù)標(biāo)題進(jìn)行自回歸預(yù)測(cè)。在擴(kuò)散先驗(yàn)中,連續(xù)嵌入向量直接使用以標(biāo)題為條件的高斯擴(kuò)散模型進(jìn)行建模。

除了標(biāo)題之外,先驗(yàn)?zāi)P瓦€可以以 CLIP 文本嵌入為條件,因?yàn)樗菢?biāo)題的確定性函數(shù)。為了提高采樣質(zhì)量,作者還通過(guò)在訓(xùn)練期間 10% 的時(shí)間隨機(jī)刪除此文本條件信息,啟用了對(duì) AR 和擴(kuò)散先驗(yàn)使用無(wú)分類器引導(dǎo)的采樣。

對(duì)于 AR 先驗(yàn),主成分分析 (PCA) 降低了 CLIP 圖像嵌入的維數(shù)。1024 個(gè)主成分中有 319 個(gè)保留了 99% 以上的信息。每個(gè)維度量化為 1024 個(gè)桶。作者通過(guò)將文本標(biāo)題和 CLIP 文本嵌入編碼為序列的前綴來(lái)調(diào)節(jié) AR 先驗(yàn)。此外,它們?cè)谖谋厩度牒蛨D像嵌入之間添加一個(gè)表征(量化的)點(diǎn)積的 token。這允許在更高的點(diǎn)積上調(diào)整模型,因?yàn)楦叩奈谋緢D像點(diǎn)積對(duì)應(yīng)于更好地描述圖像的標(biāo)題。點(diǎn)積是從分布的上半部分采樣的。使用帶有因果注意掩碼的 Transformer 模型預(yù)測(cè)生成的序列。

對(duì)于擴(kuò)散先驗(yàn),具有因果注意掩碼的僅解碼器(decoder-only) Transformer 在由以下成分組成的序列上進(jìn)行訓(xùn)練:

  • 編碼的文本
  • CLIP 文本嵌入
  • 擴(kuò)散時(shí)間步長(zhǎng)的嵌入
  • 噪聲 CLIP 圖像嵌入

最終的嵌入,其來(lái)自 Transformer 的輸出用于預(yù)測(cè)無(wú)噪聲 CLIP 圖像嵌入。

不使用點(diǎn)積來(lái)調(diào)節(jié)擴(kuò)散先驗(yàn)。相反,為了提高采樣時(shí)間的質(zhì)量,生成了兩個(gè)圖像嵌入樣本,并選擇了一個(gè)具有更高點(diǎn)積和文本嵌入的樣本。

對(duì)于可比較的模型大小和減少的訓(xùn)練計(jì)算,擴(kuò)散先驗(yàn)優(yōu)于 AR 先驗(yàn)。在與 GLIDE 的成對(duì)比較中,擴(kuò)散先驗(yàn)也比 AR 先驗(yàn)表現(xiàn)更好。

圖片

?作者還對(duì)先驗(yàn)的重要性進(jìn)行了調(diào)查。他們嘗試使用不同的信號(hào)來(lái)調(diào)節(jié)相同的解碼器:1、文本標(biāo)題和零 CLIP 嵌入,2、文本標(biāo)題和 CLIP 文本嵌入(就好像它是圖像嵌入一樣),3、由先驗(yàn)生成的文本和 CLIP 圖像嵌入。僅根據(jù)標(biāo)題對(duì)解碼器進(jìn)行調(diào)節(jié)顯然是最差的,但對(duì)文本嵌入零樣本進(jìn)行調(diào)節(jié)確實(shí)會(huì)產(chǎn)生符合期望的結(jié)果。

圖片

使用不同的調(diào)節(jié)信號(hào),圖片來(lái)自原文。

在訓(xùn)練編碼器時(shí),作者以相同的概率從 CLIP 和 DALL-E 數(shù)據(jù)集(總共約 6.5 億張圖像)中采樣。在訓(xùn)練解碼器、上采樣器和之前的模型時(shí),他們只使用了 DALL-E 數(shù)據(jù)集(大約 2.5 億張圖像),因?yàn)樵谟?xùn)練生成堆棧時(shí)合并了噪聲更大的 CLIP 數(shù)據(jù)集,從而在初始評(píng)估中對(duì)樣本質(zhì)量產(chǎn)生了負(fù)面影響。

模型總大小似乎是:632M?參數(shù)(CLIP ViT-H/16 圖像編碼器)+ 340M?(CLIP 文本編碼器)+ 1B(擴(kuò)散先驗(yàn))+ 3.5B(擴(kuò)散解碼器)+ 1B(兩個(gè)擴(kuò)散上采樣器)=~ 大約 6.5B 參數(shù)(如果我沒(méi)記錯(cuò)的話)。這個(gè)方法允許基于文本描述生成圖像。然而,其他一些有趣的應(yīng)用也是可能的。?

圖片

原論文中的示例。

每個(gè)圖像 x 可以被編碼成一個(gè)二分 latent 表示 (z_i, x_T),這足以讓解碼器產(chǎn)生準(zhǔn)確的重建。latent  z_i 是一個(gè) CLIP 圖像嵌入,它描述了 CLIP 識(shí)別的圖像方面。latent  x_T 是通過(guò)使用解碼器對(duì) x 應(yīng)用 DDIM(去噪擴(kuò)散隱式模型)反演獲得的,同時(shí)以 z_i 為條件。換句話說(shuō),它是在生成圖像 x(或等效為 x_0,參見(jiàn) GLIDE 部分中的去噪擴(kuò)散模型方案)時(shí)擴(kuò)散過(guò)程的起始噪聲。

這種二分表示可以實(shí)現(xiàn)三種有趣的操作。

首先,你可以通過(guò)在解碼器中使用 η > 0 的 DDIM 進(jìn)行采樣,為給定的二分潛在表示 (z_i, x_T) 創(chuàng)建圖像變體。當(dāng) η = 0 時(shí),解碼器變得具有確定性,并將重建給定的圖像 x。η 參數(shù)越大,變化越大,我們可以看到在 CLIP 圖像嵌入中捕獲了哪些信息并呈現(xiàn)在所有樣本中。

圖片

探索圖像的變化。

其次,你可以在圖像 x1 和 x2 之間進(jìn)行插值。為此,你必須采用 CLIP 圖像嵌入 z_i1 和 z_i2,然后應(yīng)用 slerp(球面線性插值)來(lái)獲得中間 CLIP 圖像表示。對(duì)應(yīng)的中間 DDIM latent  x_Ti 有兩個(gè)選項(xiàng):1)使用 slerp 在 x_T1 和 x_T2 之間進(jìn)行插值,2)將 DDIM latent 固定為軌跡中所有插值的隨機(jī)采樣值(可以生成無(wú)限數(shù)量的軌跡)。以下圖像是使用第二個(gè)選項(xiàng)生成的。

圖片

探索兩個(gè)圖像的插值。

最后,第三件事是語(yǔ)言引導(dǎo)的圖像操作或文本差異。為了修改圖像以反映新的文本描述 y,你首先獲取其 CLIP 文本嵌入 z_t,以及描述當(dāng)前圖像的標(biāo)題的 CLIP 文本嵌入 z_t0(可能是像「照片」這樣的虛擬標(biāo)題或一個(gè)空的標(biāo)題)。然后計(jì)算文本差異向量 z_d = norm(z_t - z_t0)。然后使用 slerp 在嵌入 z_i 的圖像 CLIP 和文本差異向量 z_d 之間旋轉(zhuǎn),并在整個(gè)軌跡中生成具有固定基本 DDIM 噪聲 x_T 的圖像。

圖片

?探索文本差異,來(lái)自原文中。

作者還進(jìn)行了一系列實(shí)驗(yàn)來(lái)探索 CLIP 潛在空間。先前的研究表明,CLIP 容易受到印刷攻擊。在這些攻擊中,一段文本覆蓋在一個(gè)對(duì)象的頂部,這導(dǎo)致 CLIP 預(yù)測(cè)文本描述的對(duì)象而不是圖像中描述的對(duì)象(還記得帶有 “iPod” 橫幅的蘋果嗎?)。現(xiàn)在,作者嘗試生成此類圖像的變體,發(fā)現(xiàn)盡管圖像正確分類的概率非常低,但生成的變體以很高的概率是正確的。盡管該標(biāo)題的相對(duì)預(yù)測(cè)概率非常高,但該模型從未生成 iPod 的圖片。

圖片

印刷攻擊案例。

另一個(gè)有趣的實(shí)驗(yàn)是用越來(lái)越多的主成分重建圖像。在下圖中,他們獲取了少量源圖像的 CLIP 圖像嵌入,并以逐漸增加的 PCA 維度重建它們,然后使用帶有 DDIM 的解碼器將重建的圖像嵌入可視化。這允許查看不同維度編碼的語(yǔ)義信息。

圖片

越來(lái)越多的主成分,來(lái)自原始論文。

還要記住 unCLIP 在屬性綁定、文本生成和復(fù)雜場(chǎng)景中的細(xì)節(jié)方面遇到的困難。

前兩個(gè)問(wèn)題可能是由于 CLIP 嵌入屬性。

可能會(huì)出現(xiàn)屬性綁定問(wèn)題,因?yàn)?CLIP 嵌入本身并沒(méi)有將屬性顯式綁定到對(duì)象,因此解碼器在生成圖像時(shí)會(huì)混淆屬性和對(duì)象。

圖片

另一組針對(duì)難綁定問(wèn)題的重構(gòu),來(lái)自原文。

文本生成問(wèn)題可能是因?yàn)?CLIP 嵌入沒(méi)有精確編碼渲染文本的拼寫(xiě)信息。

由于解碼器層次結(jié)構(gòu)以 64×64 的基本分辨率生成圖像然后對(duì)其進(jìn)行上采樣,可能會(huì)出現(xiàn)低細(xì)節(jié)問(wèn)題。因此,使用更高的基本分辨率,問(wèn)題可能會(huì)消失(以額外的訓(xùn)練和推理計(jì)算為代價(jià))。

我們已經(jīng)看到了 OpenAI 基于文本的圖像生成模型的演變。也有其他公司在這個(gè)領(lǐng)域展開(kāi)工作。

圖片

DALL·E 2(或 unCLIP)是對(duì)系統(tǒng)的第一個(gè)版本 DALL·E 1 的巨大改進(jìn),僅用了一年時(shí)間。不過(guò),它還有很大的提升空間。

遺憾的是,這些強(qiáng)大而有趣的模型一直未開(kāi)源。作者希望看到更多這樣的模型被發(fā)布或至少通過(guò) API 提供。否則,所有這些成果都只能適用于一些非常有限的受眾。

不可否認(rèn),此類模型可能存在誤差,有時(shí)會(huì)產(chǎn)生不正確類型的內(nèi)容,或被惡意代理使用。作者呼吁人們有必要討論如何處理這些問(wèn)題。這些模型有無(wú)數(shù)潛在的良好用途,但未能解決上述問(wèn)題阻礙了這些探索。

作者希望 DALL·E 2(或其他類似模型)能很快通過(guò)開(kāi)放的 API 來(lái)使得所有人都可以使用。 ?

責(zé)任編輯:張燕妮 來(lái)源: 機(jī)器之心
相關(guān)推薦

2022-10-26 07:21:15

網(wǎng)絡(luò)視頻開(kāi)發(fā)

2025-02-08 10:29:03

2015-08-12 15:12:56

黑客攻擊云安全云服務(wù)

2012-06-27 09:11:47

2012-06-26 10:13:55

2011-04-01 11:16:06

hessian

2021-02-03 13:22:53

區(qū)塊鏈數(shù)據(jù)隱私

2019-09-18 17:35:52

2018-06-21 06:56:03

CASB云安全加密

2015-09-17 09:36:46

Chrome改變

2020-12-03 10:17:25

Kubernetes架構(gòu)微服務(wù)

2019-11-15 10:16:19

HTTP瀏覽器網(wǎng)絡(luò)

2020-10-13 06:56:19

JavaScript異常類型開(kāi)發(fā)

2022-01-04 19:28:05

VMware云端虛擬化

2016-11-01 16:41:08

直通網(wǎng)線連接端口傳輸數(shù)據(jù)

2023-03-02 11:52:00

自定義自動(dòng)配置

2020-08-03 12:47:58

DevOps數(shù)據(jù)科學(xué)家代碼

2022-03-18 12:46:56

Go 語(yǔ)言編程語(yǔ)言

2021-03-15 12:00:19

Kubernetes微服務(wù)架構(gòu)

2022-10-17 08:00:00

機(jī)器學(xué)習(xí)數(shù)據(jù)驅(qū)動(dòng)數(shù)據(jù)科學(xué)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)