編譯 | AI科技評論
OpenAI在1月5日公布DALL-E模型 以來,人們都驚艷於模型的語言想像力是如此豐富和細緻。如今,我們終於等到了論文的公布,從而得以了解DALL-E天馬行空創造力背後的奧秘。值得一提的是,OpenAI還開源了DALL-E的代碼,然而,只包含了其中的一個非核心模塊。
以下是DALL·E的幾個演示案例。
文本提示:穿著芭蕾舞短裙的蘿蔔寶寶在遛狗。
AI生成的圖像:
文本提示:一隻X射線的貓頭鷹:
AI生成的圖像:
文本提示:孔雀橡皮。
AI生成的圖像:
文本+圖像提示:參照上面的貓在下面生成草圖
AI生成的圖像:
更多示例請查看:
OpenAI祭出120億參數魔法模型!從文本合成圖像栩栩如生,仿佛擁有人類的語言想像力
以下,AI科技評論對論文核心內容進行了編譯,具體細節還請參看原論文。
論文連結:https://arxiv.org/pdf/2102.12092.pdf
Blog:https://openai.com/blog/dall-e/
GitHub(VAE in DALL-E):https://github.com/openai/DALL-E
摘要:
按照傳統,文本到圖像的生成一直專注於尋找更好的建模假設,以便能夠在固定數據集上進行訓練。這些假設可能涉及到複雜的架構、輔助損失或邊信息(side information),比如訓練過程中提供的物體部分標籤或分割掩碼。
我們基於transformer 描述了用於此任務的一種簡單方法,該transformer 能夠將文本和圖像token自動回歸建模為單個數據流。有了足夠的數據和規模後,在零樣本情況下進行評估時,我們的方法就可以與先前的特定領域建模(DSM)一爭高下。。
1
引言
從文本到圖像的現代機器學習合成方法始於Mansimov等人在2015年的研究工作,他們將Gregor 等人提出的用於生成圖像標題的生成模型 DRAW 進行擴展,進一步生成新穎的視覺場景。2016年,Reed 等人證明,使用生成對抗網絡(而不是使用遞歸可變自動編碼器)可以提高圖像逼真度。在同年的另一篇工作中,Reed 等人又證明,該系統不僅可以生成具有可識別屬性的對象,還可以零樣本泛化至留出(held-out)類別。
在接下來的幾年裡,研究人員又提出多種方法,推動了文本到圖像生成領域的進展。比如,通過修改多尺度生成器來改進生成模型的架構;整合注意力和輔助損失;利用文本以外的其他條件信息資源。
在2017年,Nguyen等人提出了一種基於能量的條件圖像生成框架。相對於現代方法,該框架在樣本質量上取得了重大進步。他們的方法可以兼并預訓練判別模型,並且證明,將其應用於在MS-COCO上預先訓練的字幕模型時,模型能夠執行文本到圖像的生成。2020年,Cho等人還提出了一種方法,可以優化預訓練跨模態掩碼語言模型的輸入。Manshimov等人在2015年的工作大幅提升了視覺逼真度,但樣本仍然面臨影響失真的「災難」,例如物體變形、不合理的物體放置,或前景和背景元素的不自然混合。
由大規模生成模型驅動的最新進展表明了進一步改進上述問題的可能途徑。具體來說,當計算、模型大小和數據進行仔細縮放時,自回歸 transformer(autoregressive transformer)在文本、圖像和音頻上能取得非常不錯的效果。
相比之下,文本到圖像的生成通常是在較小的數據集(例如MS-COCO和CUB-200)上進行評估。數據集大小和模型大小是否有可能成為限制當前方法發展的因素呢?在這項工作中,我們證明了,在從網際網路上收集的2.5億個圖像文本對上訓練一個包含120億個參數的自回歸transformer,能夠得到一個可通過自然語言控制的靈活且逼真度高的圖像生成模型。
同時,隨之形成的系統無需使用任何訓練標籤,就可以在流行的 MS-COCO 數據集零樣本泛化實現高質量的圖像生成。它比先前由人類評估員在數據集上進行訓練的工作節省了90%的工作時間。此外,它還能夠執行複雜的任務,比如在基本級別上進行圖像到圖像的翻譯。
2
方法
我們的目標是訓練一個transformer進行自動建模,即將文本以及圖片的tokens轉換為單一的數據流。然而,將像素直接作為圖片token會占用大量的內存進行存儲高解析度圖片。另外,似然目標(Likelihood objectives)傾向於對像素之間的近距離相關性進行建模,因此大部分內存會被用來捕捉高頻細節上,忽略了能夠在視覺上識別對象的低頻結構。
基於以上問題,我們借用Oord和Razavi在2017和2019年的工作:兩階段訓練法,進行嘗試解決。
階段1:訓練一個離散變分自動編碼器(DVAE),將每個256×256 RGB圖像壓縮成一個32×32的圖像token網絡,每個網格的每個元素可以取8192個可能的值。這一階段會讓transformer的上下文尺寸(context size)減少192倍,同時還不會大幅降低「視覺」質量。
階段2:將256個BPE編碼的文本token與32×32=1024 圖片tokens連接起來,然後訓練一個自回歸 transformer對文本和圖像的聯合分布進行建模。
圖1:原始圖像(上圖)和離散VAE重建圖像(下圖)的比較
建模公式如上圖所示,整體可以看成聯合分布的似然函數,x代表圖像,y代表圖像的標題,z代表token,使用因式分解p_θψ(x,y,z)=p_θ(x|y,z)pψ(y,z)對該分布進行建模,得到下界。其中:
q_φ表示在給定RGB圖像x2的情況下,由DVAE編碼器生成的32×32圖像token上的分布
p_θ表示由DVAE解碼器在給定圖像token的情況下生成的RGB圖像上的分布
p_ψ表示文本和圖像token在transformer建模中得到的聯合分布。
值得一提的是,這個界(bound)只在β=1時成立,實際上,使用更大的β值非常有好處。
階段1:學習視覺編碼
在階段1的訓練中,針對φ和θ最大化ELB(evidence lower bound),這相當於在圖像上訓練DVAE。一開始將p_ψ設置為K=8192個向量上的均勻分類分布,q_φ為編碼器輸出的32×32網格中同一空間位置上的8192個 logits參數化的分類分布。
但ELB難以優化:因為q_ψ是一個離散分布,不能使用重參數化技巧進行最大化。有人使用在線聚類分配程序加上直通估計器來解決這個問題。我們還使用Gumbel-Softmax技巧轉換q_φ。此外,條件放鬆的ELB使用Adam與指數加權疊代平均法進行最大化。其中,在編碼器的末端和解碼器的開始使用1×1卷積;將編碼器和解碼器重分塊的輸出激活乘以一個小常量等是非常重要的技巧和參數。
階段2:學習先驗
在第二階段,修正了φ和θ,並通過最大化關於ψ的ELB來學習文本和圖像token的先驗分布,其中p_ψ由含有120億個參數的稀疏transformer進行表示。
給定一個文本-圖像對,最多使用256個詞彙大小(vocabulary size)為16384的tokens對小寫標題進行BPE編碼,並使用32×32=1024個詞彙大小為8192的tokens對圖像進行編碼。圖像 token是通過使用 argmax 採樣從 DVAE 編碼器獲得的,沒有添加任何 gumbel 噪聲。最後,文本和圖像token進行連接,並作為一個單一的數據流進行自回歸建模。
我們通過一堆數據中各個種類的總數,對文本-圖像 token 的交叉熵損失進行了歸一化。因為我們主要對圖像建模感興趣,因此我們將文本的交叉熵損失乘以1/8,將圖像的交叉熵損失乘以7/8。目標則通過使用Adam算法,以指數加權的疊代平均法進行了優化。我們大概用了 606,000 張圖像用於驗證,但在收斂時沒有發現過度擬合現象。
數據收集
我們在一個包含330萬個文本-圖像對的數據集 Conceptual Captions 上對模型進行了高達12億參數的初步實驗。
為了擴展到120億個參數,我們從網際網路上收集了2.5億個文本-圖像對,創建了一個與JFT-300M規模相當的數據集。該數據集不包括 MS-COCO,但包含了 Conceptual Captions 數據集和 YFCC100M 的一個過濾子集。由於MS-COCO是基於 YFCC100M 創建的,我們的訓練數據還包含了一部分 MS-COCO 驗證圖像(但沒有caption部分)。
混合精度訓練
為了節省GPU內存並提高吞吐量,大多數參數、Adam 矩和激活都以16位精度存儲。我們還使用激活checkpointing ,並在向後傳遞期間重新計算resblock中的激活。我們還使模型以16位精度對10億個參數進行無差異訓練,這是該項目最具挑戰性的部分。
分布式優化
當以16位精度存儲時,我們的120億參數模型需要消耗約24 GB的顯存,這超過了NVIDIA V100 16 GB的顯存。我們使用參數分片(parameter sharding)來解決這個問題。
如圖5所示,參數分片允許我們通過將其與計算密集型操作重疊,從而幾乎可以完全忽略機器內通信的延遲。
圖5:用於分布式訓練的通信模式。
樣本生成
我們使用預訓練的對比模型(Radford et al., 2021)對從transformer提取的樣本進行重新排序。給定字幕和候選圖像後,對比模型會根據圖像與字幕的匹配程度來分配分數。圖6顯示了增加樣本數量N的效果,我們從中選擇了前k個圖像。這個過程可以看作是一種語言指導的搜索(Andreas et al., 2017),也類似於輔助文本-圖像匹配損失(Xu et al.,2018)。
除非另有說明,否則所有用於定性和定量結果的樣品都無需降溫即可獲得(即t = 1),並使用N = 512進行重新排序。
圖6:增加圖像數量對MS-COCO字幕對比重排序程序的影響。
3
結論
我們研究了一種簡單的基於 autoregressive transformer 的文本-圖像生成方法。我們發現,無論是在相對於以前特定領域方法的零樣本性能方面,還是在單個生成模型的能力範圍方面,規模都可以導致泛化性能的提升(所以這是官方承認大力出奇蹟嗎
)。
花絮
有網友好奇問到是誰想到的文本提示「 穿著芭蕾舞短裙的蘿蔔寶寶在遛狗。」
論文一作Aditya Ramesh對此回復道:「是我首先嘗試[蘿蔔遛狗],後來我的女朋友建議我加上芭蕾舞短裙」
由於微信公眾號試行亂序推送,您可能不再能準時收到AI科技評論的推送。為了第一時間收到AI科技評論的報道, 請將「 AI科技評論」設為 星標帳號,以及常點文末右下角的「在看」。