DALL·E-2是如何工作的以及部署自己的DALL·E模型

DALL·E-2可以通過自然語言的描述創建現實的圖像。 Openai發佈了dall·e-2的Beta版。 在本文中,我們將仔細研究DALL·E-2的原始研究論文,並瞭解其確切的工作方式。由於並沒有開放源代碼, Boris Dayma等人根據論文創建了一個迷你但是開源的模型Dall·E Mini(命名爲Craiyon),並且在craiyon.com上提供了一個DEMO。

在本文中,我們還將使用Meadowrun(一個開源庫,可以輕鬆地在雲中運行Python代碼)把DALL·E Mini生成的圖像輸入到其他圖像處理模型(GLID-3-xl和SwinIR)中來提高生成圖像的質量,通過這種方式來演示如何將開源的ML模型部署到我們的雲服務器上(AWS的EC2)。

DALL·E-2論文要點

DALL·E-2基於以前提出的unCLIP模型,而unCLIP模型本質上是對GLIDE模型[4]的增強版,通過在文本到圖像生成流程中添加基於預訓練的CLIP模型的圖像嵌入。

與GLIDE相比,unCLIP可以生成更多樣化的圖像,在照片真實感和標題相似性方面損失最小。unCLIP中的解碼器也可以產生多種不同圖像,並且可以同時進行文本到圖像和圖像到圖像的生成。

unCLIP框架

爲了對給定的文本生成圖像,提出了兩階段的過程:

1)使用先驗編碼器將文本編碼到圖像嵌入空間

2)使用圖像擴散解碼器根據圖像嵌入生成圖像。

由於它是通過反轉CLIP圖像編碼器來生成圖像的,因此本文將該框架命名爲unCLIP。

CLIP[3]可以共同學習文本和圖像的表示形式,如上圖(虛線上方)所示將一對(文本,圖像)對相同的嵌入空間進行編碼。

訓練過程

給定一個(圖像x,文本y)對,首先獲取圖像和文本嵌入,稱爲zᵢ= clip(x),zₜ= clip(y)。

先驗:p(zᵢ| y,zₜ)產生圖像嵌入zᵢ條件y。

解碼器:P(X |Zᵢ,Y),根據圖像嵌入zᵢ(和可選的文本標題y)產生圖像。

p(x | y)= p(x | y,zₜ)= p(x |zᵢ,y)p(zᵢ| y,zₜ)

訓練細節

使用CLIP數據[3]和DALL-E[2]數據(共計650M圖像)進行訓練。

VIT-H/16圖像編碼器:輸入爲256×256圖像,總計32層transformers,嵌入尺寸爲1280。

GPT文本編碼器:具有1024個嵌入和24層transformers解碼器。

CLIP Model訓練完成後,先驗模型、解碼器模型和上採樣模型都只在DALL-E數據集(總共約250M幅)上訓練。

解碼器模型是一個3.5B的 Glide模型,包含兩個模塊:1.2B 24層transformers文本編碼器和2.3B的ADM模型。 在訓練期間,有50%的概率刪除標題,有10%概率刪除圖像的嵌入。

爲了生成高分辨率圖像,作者訓練了兩個UPS採樣器模型。 兩者都使用ADMNET體系結構。 第一個將圖像從64×64到256×256,第二個圖像從256×256到1024×1024。

 

完整文章:

 

https://avoid.overfit.cn/post/8f08832ec42d402a836a5c3f5ee0440d

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章