1. 程式人生 > 資訊 >OpenAI 學會“你說我畫”:引數縮水 2/3 效能卻更強,還 get 區域性編輯新技能

OpenAI 學會“你說我畫”:引數縮水 2/3 效能卻更強,還 get 區域性編輯新技能

OpenAI 剛剛推出了一個新的文字生成影象模型,名叫 GLIDE

相比今年年初誕生的大哥 DALL・E,它只有 35 億引數(DALL・E 有 120 億)

規模雖然小了,質量卻不賴。

大家仔細看這效果,“使用計算器的刺蝟”、“星空下的狐狸”、“彩色玻璃窗風格的熊貓吃竹子”、“太空升降艙蠟筆畫”:

是不是很像樣兒?

一位碼農兼藝術家的網友則形容它“和真的難以區分”。

GLIDE 在人類評估員的打分中,確實 PK 掉了使用 CLIP 給圖片排序的 DALL・E。

最有趣的是,這個 GLIDE 似乎具有“智力”—— 會否決你畫出八條腿的貓的主意,也不認為老鼠可以捕食獅子。

OpenAI 歲末新作 GLIDE

GLIDE 全稱 GuidedLanguage toImageDiffusion forGeneration andEditing,是一種擴散模型(diffusion model)

擴散模型最早於 2015 提出,它定義了一個馬爾可夫鏈,用於在擴散步驟中緩慢地向資料新增隨機噪聲,然後通過學習逆轉擴散過程從噪聲中構建所需的資料樣本。

相比 GAN、VAE 和基於流的生成模型,擴散模型在效能上有不錯的權衡,最近已被證明在影象生成方面有很大的潛力,尤其是與引導結合來兼得保真度和多樣性。

▲擴散模型與其他三種生成模型的對比

研究人員訓練了一個 64×64 解析度的文字條件擴散模型,引數 35 億;以及一個 256×256 解析度的文字條件上取樣擴散模型,引數 15 億。

模型有兩種引導形式來獲得更好的生成效果:無分類器引導(classifier-free guidance)和 CLIP 引導

對於 CLIP 引導,他們還訓練了一個噪聲感知的 64×64 ViT-L CLIP 模型 (vit)。

模型採用了 SOTA 論文《Improved Denoising Diffusion Probabilistic Models》(改進的去噪擴散概率模型)的架構,使用文字條件資訊對其進行增強。

對於每個帶噪影象 xt 和相應的提示文字 caption,該模型預測出 p (xt-1|xt,caption)。

為了對文字進行條件處理,模型還將文字編碼為 K 個 token 的序列,並將這些 token 饋送到 Transformer 中,此 Transformer 的輸出有兩個用處:

1、在 ADM 模型中使用最終 token embedding 來代替 class embedding;

2、token embedding 的最後一層在整個 ADM 模型中分別對映每個注意層的維度,然後連線到每個層的注意上下文。

研究人員在與 DALL・E 相同的資料集上訓練 GLIDE,batch size 為 2048,共經過 250 萬次迭代;對於上取樣模型,則進行了 batch size 為 512 的 160 萬次迭代。

這些模型訓練穩定,總訓練計算量大致等於 DALL・E。

在初始訓練完成之後,研究人員還微調了基礎模型以支援無條件影象生成。

訓練過程與預訓練完全一樣,只是將 20% 的文字 token 序列替換為空序列。這樣模型就能既保留文字條件生成的能力,也可以無條件生成。

為了讓 GLIDE 在影象編輯任務中產生不必要的偽影,研究人員在微調時將 GLIDE 訓練樣本的隨機區域擦除,其餘部分與掩碼通道一起作為附加條件資訊輸入模型。

相比 DALL・E,GLIDE 的效果更逼真

  • 定性實驗

研究人員首先比較了 GLIDE 兩種不同的引導策略:CLIP 引導和無分類器引導。

分別用 XMC-GAN、DALL・E(使用 CLIP 重排 256 個樣本,從中選擇最佳結果)和 CLIDE 模型(CLIP 引導 / 無分類器引導)在相同的文字條件下生成了一些結果。

CLIDE 模型的結果未經挑選。

可以發現,無分類器引導的樣本通常比 CLIP 引導的看起來更逼真,當然,兩者都勝過了 DALL・E。

對於複雜的場景,CLIDE 可以使用修復功能進行迭代生成:比如下圖就是先生成一個普通客廳,再加畫、加茶几、加花瓶……

此外,CLIDE 還可以在 SDedit 模型上利用草圖與文字相結合的方式,對影象進行更多受控修改。

  • 定量實驗

研究人員首先通過衡量質量和保真度的帕累託邊界(Pareto frontier)來評估無分類引導和 CLIP 引導之間的差異。

在前兩組曲線中,可以發現無分類器引導幾乎都是最優的 —— 不管是在準確率 / 召回率上,還是在 IS / FID 距離上。

而在繪製 CLIP 分數與 FID 的關係時,出現了完全相反的趨勢。

研究人員假設這是 CLIP 引導正在為評估 CLIP 模型尋找對抗性示例,而並非真正優於無分類器引導。為了驗證這一假設,他們聘請了人工評估員來判斷生成影象的質量。

在這個過程中,人類評估者會看到兩個 256×256 的影象,選擇哪個樣本更好地匹配給定文字或看起來更逼真。如果實在分辨不出,每個模型各得一半分數。

結果如下:

無分類器引導產生了更符合相應提示的高質量樣本

同時,研究人員也將 CLIDE 與其他生成模型的質量進行了評估:CLIDE 獲得了最有競爭力的 FID 分數。

再將 GLIDE 與 DALL-E 進行人工評估。

包含三種比法:兩種模型都不使用 CLIP 重排序;僅對 DALL・E 使用 CLIP 重排序;對 DALL-E 使用 CLIP 重排序,並通過 DALL-E 使用的離散 VAE 對映 GLIDE 樣本。

結果是不管哪種配置,人類評估員都更傾向於 GLIDE 的結果(每項第一行代表 GLIDE)。

當然,說這麼多,GLIDE 也有它的不足,就如開頭的例子,它沒法畫出不合常理的“八條腿的貓”,也就是有智力但缺乏想象力

此外,未優化的 GLIDE 需要 15 秒才能在單張 A100 GPU 上生成一張影象,這比 GAN 慢多了。

最後,po 一張我們在官方釋出的 Colab 連結上親手試的一張效果,還湊合(an illustration of a rabbit,demo 上的模型比較小):

論文地址:

https://arxiv.org/abs/2112.10741

GitHub 地址 (是一個在過濾後的資料集上訓練的小模型):

https://github.com/openai/glide-text2im

Colab 試玩:

https://colab.research.google.com/github/openai/glide-text2im/blob/main/notebooks/text2im.ipynb#scrollTo=iuqVCDzbP1F0