機器之心報道
編輯:陳萍、小舟
模型的引數規模並不需要那麼大。
從年初 OpenAI 刷屏社群的 DALL-E 到英偉達生成逼真攝影的 GauGAN2,文字生成影象可謂是今年大火的一個研究方向。現在 OpenAI 又有了新的進展——35 億引數的新模型 GLIDE。
如下圖 1 所示,GLIDE 通常會生成逼真的陰影和反射,以及高質量的紋理。此外,該模型還能夠組合多個概念(例如柯基犬、領結和生日帽),同時將屬性(例如顏色)繫結到這些物件。
除了從文字生成影象,GLIDE 還有影象編輯功能——使用文字 prompt 修改現有影象,在必要時插入新物件、陰影和反射,如下圖 2 所示。例如,在草坪上新增斑馬:
如下圖 3 所示,GLIDE 的零樣本生成和修復複雜場景的能力也很強。
GLIDE 還能夠將草圖轉換為逼真的影象編輯。例如下圖中「一隻戴著領結和生日帽的柯基犬」從塗鴉草圖轉換成了逼真的影象。
上述功能是怎樣實現的呢?在新模型 GLIDE 中,OpenAI 將指導擴散(guided diffusion)應用於文字生成影象的問題。首先該研究訓練了一個 35 億引數的擴散模型,使用文字編碼器以自然語言描述為條件,然後比較了兩種指導擴散模型至文字 prompt 的方法:CLIP 指導和無分類器指導。透過人工和自動評估,該研究發現無分類器指導能夠產生更高質量的影象。
- 論文地址:https://arxiv.org/pdf/2112.10741.pdf
- 專案地址:https://github.com/openai/glide-text2im
該研究發現使用無分類器指導模型生成的樣本既逼真又反映了廣泛的現實知識。人類評估的結果表明,GLIDE 的生成結果優於 DALL-E。
此外,值得注意的是,DALL-E 的引數量是 120 億,而 GLIDE 僅有 35 億引數,卻實現了更優的效能。我們來具體看一下 GLIDE 的模型細節。
具有 35 億引數的文字條件擴散模型:GLIDE
OpenAI 以 64 × 64 的影象解析度訓練了一個具有 35 億引數的文字條件擴散模型(text-conditional diffusion model ),以及一個具有 15 億引數的文字條件上取樣擴散模型(text-conditional upsampling diffusion model),該模型將影象解析度提高到 256 × 256。對於 CLIP 指導(CLIP guidance),OpenAI 還訓練了一個噪聲感知 64 × 64 ViT-L CLIP 模型。
文字條件擴散模型
OpenAI 採用 Dhariwal & Nichol (2021) 提出的 ADM 模型架構,但使用文字條件資訊對其進行了擴充。對於每個噪聲影象 x_t 和相應的文字說明(text caption),模型對 p(xt−1|xt, caption) 進行預測。為了以文字為條件,OpenAI 首先將文字編碼為 K 個 token 序列,然後將這些 token 輸入到 Transformer 模型中(Vaswani 等,2017)。這個 transformer 的輸出有兩種用途:
- 首先,使用最終的 token 嵌入代替 ADM 模型中的類嵌入;
- 其次,最後一層的 token 嵌入(K 個特徵向量序列)分別投影到 ADM 模型中每個注意力層,然後連線到每一層的注意力上下文。
OpenAI 採用與 DALL-E 完全相同的資料集訓練模型,並且使用與 Dhariwal & Nichol (2021) 提出的 ImageNet 64 × 64 模型相同的模型架構,模型通道為 512 ,從而為模型的視覺部分生成大約 23 億個引數。對於文字編碼 Transformer,OpenAI 使用 24 個殘差塊,產生大約 12 億個引數。
此外,OpenAI 還訓練了一個具有 15 億引數的上取樣擴散模型,影象解析度從 64 × 64 增加到 256 × 256 。該模型同樣以文字為條件,但使用寬度為 1024 較小的文字編碼器(而不是 2048 )。
無分類器指導的微調
模型初始訓練完成之後,可以微調基本模型以支援無條件影象生成。訓練過程與預訓練完全相同,只是 20% 的文字 token 序列被替換為空序列。透過這種方式,模型保留了生成文字條件輸出的能力,同時也可以無條件地生成影象。
影象修復與編輯
以前的影象修復工作存在一個缺點,即模型在取樣過程中無法看到整個上下文資訊。為了獲得更好的生成效果,OpenAI 對模型進行了微調:微調時,隨機擦除訓練樣本一些區域,其餘部分與掩碼通道一起作為附加條件資訊輸入模型。OpenAI 對模型架構進行了修改,增加了四個額外的輸入通道:第二組 RGB 通道和一個掩碼通道。在微調之前,OpenAI 將這些新通道的相應輸入權重初始化為零。對於上取樣模型,OpenAI 提供了完整的低解析度影象,但對於未掩碼的區域提供高解析度影象。
CLIP 指導擴散
鑑於分類器指導和 CLIP 指導的相似性,應用 CLIP 來提高文字條件擴散模型的生成質量似乎很自然。為了更好地匹配 Dhariwal & Nichol (2021) 的分類器指導技術,OpenAI 使用影象編碼器訓練噪聲感知 CLIP 模型,該影象編碼器接收噪聲影象,以 64 × 64 的解析度訓練模型。
實驗結果
該研究將 GLIDE 與之前的 SOTA 模型進行了定性比較,結果如下圖 5 所示。GLIDE 生成了更逼真的影象,並且無需 CLIP 重排序或挑選。
定量結果
該研究首先透過檢視影象質量保真度權衡的帕累託前沿來評估無分類器指導和 CLIP 指導之間的差異。下圖 6 在 64 × 64 解析度下評估了這兩種方法的零樣本 MS-COCO 生成。
該研究設定的人類評估實驗如下:
讓人們觀察兩個 256 × 256 的影象,並按如下兩條標準選出一個更優的影象:要麼更好地匹配給定的標題,要麼看起來更逼真。評估結果如下圖 7 所示。
並將人類評估的結果和下表 1 的結果進行比較,然後該研究發現人類和 CLIP 指導給出的分數不一致,因此無分類器指導能夠產生與人類認知一致的更高質量生成結果。
此外,研究者還將 GLIDE 與其他文字生成影象模型進行了比較,結果如下表 2 所示。GLIDE 在 MS-COCO 上獲得有競爭力的 FID。
最後,該研究使用上述人類評估實驗設定比較了 GLIDE 和 DALL-E ,結果如下表 3 所示。注意到 GLIDE 的訓練使用與 DALL-E 大致相同的訓練計算,但模型要小得多(35 億引數 VS120 億引數),所需取樣延遲更少,並且不需要 CLIP 重排序。