天天看點

簡潔、生動,圖解“老畫師”DALL-E 2的工作原理

選自assemblyai

作者:Ryan O'Connor

機器之心編譯

編輯:蛋醬

效果驚豔的 DALL-E 2,到底是怎麼工作的?

2022 年 4 月初,OpenAI 的開創性模型 DALL-E 2登場,為圖像生成和處理領域樹立了新的标杆。隻需輸入簡短的文字 prompt,DALL-E 2 就可以生成全新的圖像,這些圖像以語義上十分合理的方式将不同且不相關的對象組合起來,就像通過輸入 prompt「a bowl of soup that is a portal to another dimension as digital art」,便生成了下面的圖像。

簡潔、生動,圖解“老畫師”DALL-E 2的工作原理

DALL-E 2 甚至可以修改現有圖像,建立處保有其顯著特征的圖像變體,并在兩個輸入圖像之間進行插值。DALL-E 2 令人印象深刻的結果讓許多人想知道,這樣一個強大的模型究竟是如何工作的。

在本文中,我們将深入了解 DALL-E 2 如何創造出衆多令人驚豔的圖像。将提供大量背景資訊,并且解釋級别将涵蓋範圍,是以本文适合具有多個機器學習經驗級别的讀者。

總體來說,DALL-E 2 的亮點如下:

1. 首先,DALL-E 2 展示了深度學習中擴散模型(Diffusion Model)的強大功能,因為 DALL-E 2 中的先驗和圖像生成子模型都是基于擴散的。雖然在過去幾年才開始流行,但擴散模型已經證明了自身價值,一些關注深度學習研究的人也期望在未來看到更多進展。

2. 其次,展示了使用自然語言作為訓練深度學習 SOTA 模型的手段的必要性和力量。這一點并非源于 DALL-E 2,但重要的是認識到, DALL-E 2 的力量是源于可在網際網路上獲得大規模比對的自然語言 / 圖像資料。使用這些資料消除了手動标注資料集的高成本和相關瓶頸,但這類資料嘈雜、未經處理的性質也反映了深度學習模型必須具備面對真實資料的魯棒性。

3. 最後,DALL-E 2 重申了 Transformer 的地位,鑒于它們具有令人印象深刻的并行性,是以對于在網絡規模資料集上訓練的模型來說是至高無上的。

DALL-E 2 的工作原理:鳥瞰圖

在深入了解 DALL-E 2 的工作原理之前,讓我們先大緻了解一下 DALL-E 2 如何生成圖像。雖然 DALL-E 2 可以執行各種任務,包括上面提到的圖像處理和插值,但我們将在本文中專注于圖像生成任務。

簡潔、生動,圖解“老畫師”DALL-E 2的工作原理

在最進階别,DALL-E 2 的工作非常簡單:

1. 首先,将文本 prompt 輸入到經過訓練以将 prompt 映射到表征空間的文本編碼器中;

2. 接下來,稱為先驗的模型将文本編碼映射到相應的圖像編碼,該圖像編碼捕獲文本編碼中包含的 prompt 的語義資訊;

3. 最後,圖像解碼模型随機生成圖像,該圖像是該語義資訊的視覺表現。

從鳥瞰的角度來看,這就是它的全部了。當然,還有很多有趣的實作細節,我們将在下面讨論。

詳細介紹

現在是時候分别深入了解上述每個步驟了。讓我們先來看看 DALL-E 2 如何學會連結相關的文本和視覺概念。

第 1 步:連結文本和視覺語義

輸入「泰迪熊在時代廣場騎滑闆」後,DALL-E 2 輸出如下圖像:

簡潔、生動,圖解“老畫師”DALL-E 2的工作原理

DALL-E 2 怎麼知道像「泰迪熊」這樣的文本概念,應該在視覺空間中如何展現?DALL-E 2 中的文本語義與其視覺表征之間的聯系是由另一個名為 CLIP 的 OpenAI 模型學習的。

CLIP 接受了數億張圖像及其相關标題的訓練,以了解給定文本片段與圖像的關聯程度。也就是說,CLIP 不是試圖預測給定圖像的标題,而是學習任何給定标題與圖像的相關程度。這種對比而非預測的目标使 CLIP 能夠學習同一抽象目标的文本和視覺表示之間的聯系。整個 DALL-E 2 模型取決于 CLIP 從自然語言中學習語義的能力,是以讓我們看看如何訓練 CLIP 以了解其内部工作原理。

CLIP 訓練

訓練 CLIP 的基本原則非常簡單:

1. 首先,所有圖像及其相關标題都通過它們各自的編碼器,将所有對象映射到一個 m 維空間。

2. 然後,計算每個(圖像,文本)對的餘弦相似度。

3. 訓練目标是同時最大化 N 個正确編碼圖像 / 标題對之間的餘弦相似度,并最小化 N 2 - N 個不正确編碼圖像 / 标題對之間的餘弦相似度。

該訓練過程可視化如下:

簡潔、生動,圖解“老畫師”DALL-E 2的工作原理

CLIP 對 DALL-E 2 很重要,因為它最終決定了自然語言片段與視覺概念的語義相關程度,這對于 text-conditional 圖像生成至關重要。

第 2 步:從視覺語義生成圖像

訓練後,CLIP 模型被當機,DALL-E 2 進入下一個任務——學習反轉 CLIP 剛剛學習的圖像編碼映射。CLIP 學習了一個表征空間,在該空間中,很容易确定文本和視覺編碼的相關性,但我們的興趣在于圖像生成。是以,我們必須學習如何利用表征空間來完成這項任務。

特别是,OpenAI 使用其先前模型 GLIDE (https://arxiv.org/abs/2112.10741) 的修改版本來執行此圖像生成。GLIDE 模型學習反轉圖像編碼過程,以便随機解碼 CLIP 圖像嵌入。

簡潔、生動,圖解“老畫師”DALL-E 2的工作原理

如上圖所示,應該注意的是,目标不是建構一個自動編碼器并在給定嵌入的情況下準确地重建圖像,而是生成一個在給定嵌入的情況下保持原始圖像顯著特征的圖像。為了執行這個圖像生成,GLIDE 使用了一個擴散模型。

擴散模型是什麼?

擴散模型是一項受熱力學啟發的發明,近年來已顯著普及。擴散模型通過反轉逐漸的噪聲過程來學習生成資料。如下圖所示,噪聲過程被視為一個參數化的馬爾可夫鍊,它逐漸向圖像添加噪聲以破壞圖像,最終(漸近地)産生純高斯噪聲。擴散模型學習沿着這條鍊向後導航,在一系列時間步長上逐漸消除噪聲以逆轉這一過程。

簡潔、生動,圖解“老畫師”DALL-E 2的工作原理

如果然後将擴散模型在訓練後「一分為二」,則可以使用它通過随機采樣高斯噪聲來生成圖像,然後對其進行去噪以生成逼真的圖像。有些人可能會認識到,這種技術很容易讓人聯想到使用自編碼器生成資料,而擴散模型和自動編碼器實際上是相關的。

GLIDE 訓練

雖然 GLIDE 不是第一個擴散模型,但它的重要貢獻在于修改了它們以允許生成文本條件圖像。特别是,人們會注意到擴散模型從随機采樣的高斯噪聲開始。起初,還不清楚如何調整此過程以生成特定圖像。如果在人臉資料集上訓練擴散模型,它将可靠地生成逼真的人臉圖像;但是如果有人想要生成一張具有特定特征的臉,比如棕色的眼睛或金色的頭發怎麼辦?

GLIDE 通過使用額外的文本資訊增強訓練來擴充擴散模型的核心概念,最終生成 text-conditional 圖像。我們來看看 GLIDE 的訓練過程:

以下是使用 GLIDE 生成的圖像的一些示例。作者指出,在照片寫實和字幕相似性方面,GLIDE 的性能優于 DALL-E。

簡潔、生動,圖解“老畫師”DALL-E 2的工作原理

GLIDE 生成的圖像示例

DALL-E 2 使用修改後的 GLIDE 模型以兩種方式使用投影的 CLIP 文本嵌入。第一種是将它們添加到 GLIDE 現有的時間步嵌入中,第二種是通過建立四個額外的上下文 token,它們連接配接到 GLIDE 文本編碼器的輸出序列。

GLIDE 對 DALL-E 2 很重要,因為它允許作者通過在表示空間中調整圖像編碼,輕松地将 GLIDE 的文本條件照片級逼真圖像生成功能移植到 DALL-E 2 。是以,DALL-E 2 修改後的 GLIDE 學習生成以 CLIP 圖像編碼為條件的語義一緻的圖像。還需要注意的是,反向擴散過程是随機的,是以通過修改後的 GLIDE 模型多次輸入相同的圖像編碼向量很容易産生變化。

第 3 步:從文本語義映射到相應的視覺語義

雖然修改後的 GLIDE 模型成功地生成了反映圖像編碼捕獲的語義的圖像,但我們如何實際去尋找這些編碼表征?換句話說,我們如何将 prompt 中的文本條件資訊注入圖像生成過程?

回想一下,除了我們的圖像編碼器,CLIP 還學習了一個文本編碼器。DALL-E 2 使用另一個模型,作者稱之為先驗模型,以便從圖像标題的文本編碼映射到其相應圖像的圖像編碼。DALL-E 2 作者對先驗的自回歸模型和擴散模型進行了實驗,但最終發現它們産生的性能相當。鑒于擴散模型的計算效率更高,是以它被選為 DALL-E 2 的先驗模型。

簡潔、生動,圖解“老畫師”DALL-E 2的工作原理

從文本編碼到其相應圖像編碼的先驗映射

事先訓練

DALL-E 2 中的擴散先驗由一個僅有解碼器的 Transformer 組成。它使用因果注意力 mask 在有序序列上運作:

1. tokenized 的文本 / 标題。

2. 這些 token 的 CLIP 文本編碼。

3. 擴散時間步長的編碼。

4. 噪聲圖像通過 CLIP 圖像編碼器。

5. 最終編碼,其來自 Transformer 的輸出用于預測無噪聲 CLIP 圖像編碼。

将它們放在一起

至此,我們擁有了 DALL-E 2 的所有功能元件,隻需将它們連結在一起即可生成文本條件圖像:

1. 首先,CLIP 文本編碼器将圖像描述映射到表征空間。

2. 然後擴散先驗從 CLIP 文本編碼映射到相應的 CLIP 圖像編碼。

3. 最後,修改後的 GLIDE 生成模型通過反向擴散從表征空間映射到圖像空間,生成許多可能的圖像之一,這些圖像在輸入說明中傳達語義資訊。

簡潔、生動,圖解“老畫師”DALL-E 2的工作原理

DALL-E 2 圖像生成過程的進階概述

參考内容

1. Deep Unsupervised Learning using Nonequilibrium Thermodynamics (https://arxiv.org/abs/1503.03585)

2. Generative Modeling by Estimating Gradients of the Data Distribution (https://arxiv.org/abs/1907.05600)

3. Hierarchical Text-Conditional Image Generation with CLIP Latents (https://arxiv.org/pdf/2204.06125.pdf)

4. Diffusion Models Beat GANs on Image Synthesis (https://arxiv.org/abs/2105.05233)

5. Denoising Diffusion Probabilistic Models (https://arxiv.org/pdf/2006.11239.pdf)

6. Learning Transferable Visual Models From Natural Language Supervision (https://arxiv.org/pdf/2103.00020.pdf)

7. GLIDE: Towards Photorealistic Image Generation and Editing with Text-Guided Diffusion Models (https://arxiv.org/pdf/2112.10741.pdf)

繼續閱讀