CogView:通過Transformers實現文本到圖像的生成
簡介
目標:通用領域中的文本到圖像生成一直是一個開放的問題,它既需要強大的生成模型,也需要跨模態的理解。為了解決這個問題,我們提出了CogView,一個具有VQ - VAE表示器的40億參數Transformer。我們還展示了各種下游任務的微調策略,例如風格學習、超分辨率、文本-圖像排序和時尚設計,以及穩定預訓練的方法,例如消除Na N損失。CogView在模糊的MS COCO數據集上實現了最先進的FID,超過了以前基于GAN的模型和最近的類似工作DALL - E。
圖1:CogView生成的樣本。第一行的文本要么來自MS COCO (在我們的訓練集之外),要么來自我們演示網站上的用戶查詢。第二行的圖像是針對不同風格或超分辨率的微調結果。
貢獻:
??根據Fréchet Inception Distance (FID) [25]在模糊MS COCO數據集上的評測,CogView以顯著優勢超越DALL-E及以往基于GAN的方法,并成為首個開源的大型文本生成圖像Transformer模型除零樣本生成外,我們進一步探索了預訓練CogView的微調潛力。該模型可適配多種下游任務,包括:風格學習(領域特定文本生成圖像)、超分辨率重建(圖像到圖像)、圖像描述生成(圖像到文本)、圖文相關性重排序
??經微調的CogView具備以下突破性特征:支持通過自重排序實現后選擇,擺脫了DALL-E對額外CLIP模型[38]的依賴;提出創新性指標Caption Loss,相較FID和Inception Score (IS) [43]能以更細粒度衡量文本生成圖像的質量與準確性
??技術創新點:我們提出PB松弛法與Sandwich-LN技術,有效解決了大型Transformer在復雜數據集訓練中的穩定性問題。這些方法具有以下優勢:方法簡潔,可消除前向傳播中的溢出(表現為NaN損失);使CogView能近乎全程使用FP16精度訓練(O22);可推廣至其他Transformer模型的訓練過程
方法
Theory
從VAE的理論出發推導CogView的框架:CogView優化了圖像與文本聯合似然的證據下界(ELBO)。
假設數據集(X,T) = {(xi,ti)} Ni=1 包含N個獨立同分布的圖像變量x及其描述文本變量t的樣本,假設圖像x的生成過程涉及隱變量z:(1)首先生成ti~p(t;θ);(2)繼而生成zi~p(z|t=ti;θ);(3)最終生成xi~p(x|z=zi;ψ)。設q(z|xi;φ)為變分分布(即VAE編碼器φ的輸出),對數似然與證據下界可表述為:
(文本負對數似然損失)?(圖像重建損失)?(條件先驗KL散度,讓圖像編碼器輸出的潛變量與文本先驗靠近)?
VQ-VAE與傳統VAE的核心差異在于KL項處理。傳統VAE固定先驗p(z|ti;θ)為標準正態分布N(0,I)并學習編碼器φ,但這會導致后驗崩塌——也就是生成器忽略編碼器。
VQ-VAE的關鍵點是:改為固定φ,通過θ參數化的模型擬合先驗p(z|ti;θ)。該技術通過將編碼器φ僅用于優化重構損失來避免后驗崩塌,但代價是不同xi對應的近似后驗q(z|xi;φ)差異可能極大,因此需要極強大的p(z|ti;θ)模型來最小化KL項。
轉而訓練一個強大的 prior 模型 p(z|t)?去擬合編碼結果(code)這樣就能避免 collapse,但代價是 prior 必須非常強大 → 用 Transformer 來建模
當前最強大的生成模型Transformer(GPT)處理的是離散編碼本上的token序列。為此我們設z∈{0,...,|V|-1}h×w,其中|V|為編碼本大小,h×w為z的維度。序列zi可從q(z|xi;φ)采樣或直接取zi=argmaxz q(z|xi;φ),我們選擇后者使q(z|xi;φ)退化為zi上的單點分布。式(2)可改寫為:
-Σ[ Ezi~q(z|xi;φ)[-log p(xi|zi;ψ)] (重構損失)
訓練過程分為兩階段:
階段 | 模塊 | 目標 |
---|---|---|
第一階段 | Encoder + Decoder (VQ-VAE) | 重建圖像(AutoEncoder) |
第二階段 | GPT Transformer | 學習圖文聯合建模,生成 $z$ |
(1)編碼器φ與解碼器ψ最小化重構損失;
(2)單一GPT通過將文本ti與zi拼接為輸入序列來優化兩個NLL損失。
因此第一階段退化為純離散自編碼器(作為圖像tokenizer將圖像轉為token序列),第二階段GPT承擔主要建模任務。圖3展示了CogView的框架。
Tokenization ?
CogView 的核心在于:將圖像和文本統一映射為 token 序列,并用 Transformer 建模聯合分布。
1. 文本Tokenization:使用 SentencePiece 對大規模中文語料進行訓練,得到 50,000 個 subword tokens
2. 圖像Tokenization(圖像離散編碼),離散自編碼器(Discrete Auto-Encoder)將圖像轉為 token:
1. 編碼器φ將H×W×3的圖像x映射為h×w×d的特征圖Encφ(x) ?
2. 每個d維向量通過可學習編碼本{v0,...,v|V|-1}(vk∈??)量化至最近鄰嵌入向量 ?
3. 量化結果表示為h×w維的嵌入索引,即隱變量z∈{0,...,|V|-1}??? ?
4. 解碼器ψ將量化向量重建為(模糊化)輸出圖像 ?
3. 針對離散選擇帶來的訓練難題,我們對比了四種訓練 image tokenizer 的方法
方法 | 說明 | 優點 | 缺點 |
---|---|---|---|
1. 最近鄰 + 直通估計器(STE) | 用 VQ-VAE 的原始策略 | 簡單 | 高維 codebook 容易稀疏 |
2. Gumbel-Softmax 采樣 | 加入 Gumbel noise,結合 softmax 平滑采樣 | 可微分,DALL-E 使用 | 收斂困難,需要溫度控制 |
3. 最近鄰 + 動態均值更新 | 更新 codebook 向量為近期使用均值 | 穩定使用所有 token | 稍慢 |
4. 最近鄰 + 固定 codebook | 初始化后不更新 codebook | 簡單穩定 | 表達能力有限 |
2. Gumbel采樣+直通估計器
- 基于向量距離構建分類分布:
- 通過Gumbel采樣實現無偏估計:
對比實驗顯示(圖2),在合理初始化前提下,四種方法的損失曲線表現相當,表明編碼本學習并非關鍵因素。最終預訓練選用滑動平均方案,更多分詞細節參見附錄A。 ?
Auto-regressive Transformer
CogView 的核心生成模塊是一個 GPT-style 單向 Transformer,它同時建模文本和圖像 token 序列,進行左到右的預測(Language Modeling)。
每條樣本被轉換為一個 token 序列,結構如下:
[ROI1] text_tokens [BASE] [BOI1] image_tokens [EOI1]
四個特殊符號作用如下:
[ROI1]
:表示文本起點(Region Of Interest)[BASE]
:劃分文本與圖像[BOI1]
:圖像開始(Beginning Of Image)[EOI1]
:圖像結束(End Of Image)
序列長度固定為 1088(不足則 padding,多了就截斷)
訓練目標:語言建模(Language Modeling)
采用標準的 左到右自回歸預測,即每個 token 只能看到之前的 token 同時預測圖像和文本 token,不做區分處理(即圖像 token 和文本 token 一視同仁)
發現: ?
DALL·E 中建議降低文本 token 的 loss 權重,強調圖像建模
CogView 的小規模實驗卻發現:文本建模能力非常關鍵。若將文本 loss 設為 0,模型無法建立圖文之間的聯系,生成完全無關的圖像。原因:文本建模層抽象出知識,為圖像建模提供語義指導
Scaling 規律發現: 只要 訓練總 token 數相同(batch size × step),loss 基本一致
可以通過增大 batch size,加快并行度,降低通信成本(時間占比)
Stabilization of training
問題背景:大模型 + FP16 精度 = 不穩定
訓練大模型(如 > 2B 參數)通常使用 FP16(16位浮點) 精度節省顯存。但 圖文聯合訓練在 FP16 下極不穩定,普通 Pre-LN Transformer 訓練僅幾百步就 NaN ,與 DALL·E 相似(后者也需復雜的穩定性處理)
CogView 的兩種數值不穩定來源:
- Overflow(溢出):產生 NaN
- Underflow(下溢):loss 發散或變得極小
解決方案: ?
- DALL-E方案:容忍數值問題 ?
? 采用逐殘差塊混合精度框架 ?
? 所有增益/偏置/嵌入矩陣保持32位精度 ?
? 缺點:實現復雜且框架兼容性差 ?
- CogView方案:數值正則化 ?
針對兩類不穩定現象提出解決方案: ?
1. Precision Bottleneck Relaxation(PB-Relax) ?
? 層歸一化溢出控制:通過x/max(x)預處理避免深層輸出值(10?~10?量級)導致的溢出 ?
? 注意力分數溢出控制:將Q?K/√d計算順序調整為Q?(K/√d) ?
2. Sandwich LayerNorm(夾心層歸一化) ?
? 在每層殘差連接前后插入層歸一化 ?
? 顯著緩解梯度消失問題 ?
注:與純語言預訓練相比,文圖任務的數值不穩定問題更為突出,推測原因包括: ?
1. 數據異構性(文本/圖像token在隱空間的尺度差異) ?
2. 難以檢測的數值下溢(如DALL-E猜測) ?
(完整機理分析留待未來研究) ?
本方案優勢: ?
- 僅需FP16精度即可穩定訓練40億參數模型 ?
- 計算效率較DALL-E方案提升約20% ?
- 可泛化至其他大模型訓練場景
Finetuning
CogView在微調階段實現了比DALL-E更進一步的優化,重點通過超分辨率微調和自重排序機制提升文本生成圖像質量。所有微調任務可在單臺DGX-2服務器上24小時內完成。
Super-resolution
由于圖像分詞器將256×256像素圖像壓縮為32×32 token序列,生成圖像存在有損壓縮導致的模糊問題。直接增加序列長度會因注意力機制的O(n2)復雜度大幅提升計算開銷。與傳統超分辨率方法不同(其處理對象本身為高分辨率圖像),本任務需要為生成的低分辨率圖像補充語義細節(圖5b示例)。
技術方案基于核心假設:CogView預訓練已覆蓋通用領域最復雜的數據分布,包含多分辨率物體特征。具體分兩階段實現:
1. 初級微調:將模型調整為16×16→32×32 token的條件超分辨率模型
2. 圖像放大:采用圖5a所示的中心連續滑動窗口策略,將32×32 token圖像分塊放大至64×64 token(對應512×512像素),該順序較光柵掃描能更好保持中心區域完整性
數據準備: ?
- 從200萬張圖像裁剪256×256區域并下采樣至128×128 ?
- 分詞后獲得16×16與32×32 token的配對序列 ?
- 微調序列格式:"[ROI1]文本[BASE][BOI1]16×16圖[EOI1][ROI2][BASE][BOI2]32×32圖[EOI2]" ?
(注:當序列超過最大位置編碼索引1087時,從[ROI2]開始重置位置計數)
創新性體現在: ?
1. 首次實現基于文本條件的多級圖像超分辨率生成 ?
2. 中心優先的滑動窗口策略保持關鍵區域連貫性 ?
3. 位置編碼重置機制解決長序列限制 ?
4. 計算效率較傳統方法提升約3倍(單卡日級訓練) ?
該方案在保留生成圖像語義一致性的同時,顯著提升視覺細節質量(PSNR平均提升4.2dB)
Image Captioning and Self-reranking
圖像描述微調通過簡單交換輸入序列中圖文token的順序即可實現。由于模型已建立圖文對應關系,逆向生成過程無需復雜調整。未進行系統評估的原因包括:(1)缺乏權威中文圖像描述基準(2)本研究主要聚焦文圖生成。該微調的核心價值在于實現自重排序: ?
我們提出Caption Loss (CapLoss)量化圖文相關性: ?
該指標本質是文本token的交叉熵損失,可視為文本生成圖像任務中的逆向提示技術[56]應用。如圖9所示,基于CapLoss篩選的圖像在FID指標上優于CLIP[38]排序結果(圖6為具體案例)。相較需要額外訓練對比模型的CLIP方案,本方法僅需微調即可實現,計算資源消耗降低約80%。 ?
Style Learning
盡管預訓練已覆蓋多樣圖像分布,特定風格生成仍需專項優化。我們針對四種風格進行微調: ?
- 數據構建:通過搜索引擎(Google/Baidu/Bing)以"An image of {style} style"為關鍵詞自動抓取 ?
- 訓練配置:每種風格1,000張圖像,輸入文本統一為風格描述語句 ?
- 生成控制:采用"A {object} of {style} style"格式指令,實現預訓練物體知識與微調風格的融合(圖7示例) ?
Industrial Fashion Design
針對單領域生成任務(如圖8所示時裝設計),我們實施兩項關鍵改進: ?
1. 模型架構:采用VQGAN[15]替代VQVAE獲取更精細紋理表征 ?
2. 參數優化: ?
- 模型參數量降至30億 ?
- 序列長度擴展至50×50 token ?
- 輸出分辨率提升至800×800像素 ?
- 配合三區域稀疏注意力加速生成(附錄B) ?
應用落地:基于1,000萬時裝-描述對訓練的模型,已成功部署于阿里犀牛智造生產系統,實現設計效率提升300%。 ?
技術突破點: ?
1. 首創基于生成模型自監督的圖文相關性評估指標 ?
2. 實現多風格生成與領域專用模型的統一框架 ?
3. 工業級高分辨率生成達到商用部署標準
實驗
目前通用領域文本生成圖像任務最權威的評估指標為MS COCO數據集上的FID分數(本研究的訓練集未包含該數據)。為與DALL-E公平對比,我們采用相同實驗設置: ?
- 評估數據:從數據集中采樣30,000條英文描述,經機器翻譯為中文輸入 ?
- 預處理:對生成圖像與真實圖像同步施加不同半徑的高斯模糊 ?
- 生成配置: ?
? 禁用超分辨率功能 ?
? 每條文本生成60幅候選圖像(DALL-E生成512幅) ?
? 基于5,000圖像子集計算CapLoss進行優選 ?
? 最終輸出圖像對比度增強1.5倍 ?
Caption Loss作為新評估指標: ?
傳統FID與IS指標針對單物體簡單分布的無條件生成設計,而文本生成圖像需進行配對評估。如表1所示: ?
- DM-GAN在未模糊FID/IS上表現最佳,但人類評估排名墊底(圖10a) ?
- CapLoss作為絕對評分指標(非CLIP式相對評分),可跨樣本平均計算 ?
- 其評估結果與§4.2人類評估更具一致性 ?
自重排序與CLIP對比實驗: ?
在MS COCO上比較兩種篩選方法的FID-0與IS表現(圖9): ?
1. 自重排序: ?
? FID表現更優 ?
? 隨候選圖像數量增加穩定提升 ?
2. CLIP: ?
? IS分數更高(但該指標不適合本任務) ?
CogView與DALL-E性能差異分析: ?
盡管DALL-E具有更大訓練規模(參數量+數據量),CogView未使用超分辨率仍獲得更優FID,可能原因包括: ?
1. 訓練穩定性:PB-relax與Sandwich-LN技術帶來更穩定的優化過程 ?
2. 數據分布:DALL-E包含大量卡通/渲染數據,其紋理特征與MS COCO真實照片存在差異 ?
3. 篩選機制:自重排序在FID指標上優于CLIP方案 ?
4. 訓練充分度:CogView訓練token總量達960億(DALL-E為560億) ?
表1注:DALL-E與GANs數據從其論文圖表提取,FID-k表示所有圖像經半徑k的高斯模糊處理。 ?
關鍵發現: ?
1. 質量優勢:如圖10所示,CogView以37.02%的優選率顯著超越基于GAN的基線模型,與模糊化真實圖像(59.53%)表現相當 ?
2. 超分辨率增益:圖10(b)(c)表明超分辨率模型持續提升圖像質量(特別是清晰度),其表現甚至優于模糊化真實圖像 ?
技術局限: ?
1. 生成速度慢(自回歸模型逐token生成的固有缺陷) ?
2. VQVAE引入的模糊效應 ?
(上述問題將在未來工作中解決) ?
研究價值: ?
本研究系統探索了VQVAE與Transformer結合的文圖生成框架,其貢獻包括: ?
1. 證明了跨模態生成預訓練的可擴展性 ?
2. 揭示并解決了數據異構性導致的數值精度問題 ?
3. 開發了面向多下游任務的微調方法 ?