Auto Byte

專注未來出行及智能汽車科技

微信掃一掃獲取更多資訊

Science AI

關注人工智能與其他前沿技術、基礎學科的交叉研究與融合發展

微信掃一掃獲取更多資訊

編輯蛋醬

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

效果驚艷的 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 的亮點如下:

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 的工作非常簡單:

1. 首先,將文本 prompt 輸入到經過訓練以將 prompt 映射到表征空間的文本編碼器中;
2. 接下來,稱為先驗的模型將文本編碼映射到相應的圖像編碼,該圖像編碼捕獲文本編碼中包含的 prompt 的語義信息;
3. 最后,圖像解碼模型隨機生成圖像,該圖像是該語義信息的視覺表現。

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

詳細介紹

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

第 1 步:鏈接文本和視覺語義

輸入「泰迪熊在時代廣場騎滑板」后,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 個不正確編碼圖像 / 標題對之間的余弦相似度。

該訓練過程可視化如下:


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

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

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

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


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

擴散模型是什么?

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


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

GLIDE 訓練

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

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

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

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 中的擴散先驗由一個僅有解碼器的 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 圖像生成過程的高級概述

參考內容

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)

原文鏈接:https://www.assemblyai.com/blog/how-dall-e-2-actually-works/
工程生成模型OpenAI
暫無評論
暫無評論~
塔城颂嫌租售有限公司 密封条北京有限公司| 深圳葵芳信息服务| 郑州玖达电子商务有限公司| 广州渔你所愿酸菜鱼有限公司| 充磁机有限公司| 泊头市鑫丰机械设备有限公司| 上海康升汽车服务有限公司| 江苏大峰净化科技有限公司| 瑞丰汽摩配件有限公司| 厦门恒达物流有限公司| 704 629 326 833 263