DiT – 基於Transfomer架構的擴散模型

AI工具9個月前發佈新公告 AI管理員
5 0

DiT是什麼

DiT(Diffusion Transformers)是一種新型的擴散模型,由William Peebles(Sora的研發負責人之一) 與紐約大學助理教授謝賽寧提出,結合了去噪擴散概率模型(DDPMs)和Transformer架構。擴散模型是一種生成模型,通過模擬數據的逐步去噪過程來生成新的樣本。DiT的核心思想是使用Transformer作爲擴散模型的骨幹網絡,而不是傳統的卷積神經網絡(如U-Net),以處理圖像的潛在表示。近期伴隨OpenAI視頻生成模型Sora的大熱,DiT被視爲Sora背後的技術基礎之一而廣受關注。

DiT - 基於Transfomer架構的擴散模型

在DiT中,圖像首先通過一個自動編碼器(如變分自編碼器VAE)被壓縮成較小的潛在表示,然後在這個潛在空間中訓練擴散模型。這樣做的好處是可以減少直接在高分辨率像素空間訓練擴散模型所需的計算量。DiT模型通過Transformer的自注意力機制來處理這些潛在表示,這使得模型能夠捕捉到圖像的長距離依賴關係,從而生成高質量的圖像。

DiT的官網入口

  • 官方項目主頁:https://www.wpeebles.com/DiT
  • Arixv研究論文:https://arxiv.org/pdf/2212.09748.pdf
  • GitHub代碼庫:https://github.com/facebookresearch/DiT
  • Hugging Face空間:https://huggingface.co/spaces/wpeebles/DiT
  • Replicate Demo:https://replicate.com/arielreplicate/scalable_diffusion_with_transformers
  • Google Colab運行地址:http://colab.research.google.com/github/facebookresearch/DiT/blob/main/run_DiT.ipynb

DiT的技術原理

DiT - 基於Transfomer架構的擴散模型

  1. 數據準備
    • 使用一個預訓練的變分自編碼器(VAE)將輸入圖像編碼成潛在空間的表示。這個潛在表示通常是圖像的低維表示,例如,將256×256×3的RGB圖像編碼成32×32×4的潛在向量。
    • 這個潛在表示隨後被用作DiT模型的輸入。
  2. 分塊化(Patchification)
    • 輸入的潛在表示首先通過一個稱爲“patchify”的過程,將其分割成一系列的小片段(patches),每個片段對應於Transformer模型的一個輸入標記(token)。這個過程類似於將圖像分割成小塊,以便模型可以逐塊處理。
    • 每個片段通過線性嵌入轉換爲一個固定維度的向量,然後添加位置編碼(positional embeddings),以便模型能夠理解片段在圖像中的位置。
  3. Transformer Blocks模塊
    • 輸入的標記序列通過一系列的Transformer塊進行處理。這些塊包括自注意力層、前饋神經網絡以及層歸一化等組件。
    • 在DiT中,研究者們嘗試了不同的Transformer塊設計,包括自適應層歸一化(adaLN)、交叉注意力(Cross-Attention)和上下文條件(In-Context Conditioning)等,以處理條件信息,如時間步長(timesteps)和類別標籤(class labels)。
  4. 條件擴散過程
    • 在訓練過程中,DiT模型學習逆向擴散過程,即從噪聲數據中恢復出清晰的圖像。這個過程涉及到預測噪聲的統計特性,如均值(mean)和方差(covariance)。
    • 使用變分下界(Variational Lower Bound, VLB)來訓練模型,這涉及到最小化預測噪聲和真實噪聲之間的均方誤差(MSE)。
  5. 樣本生成
    • 在訓練完成後,可以通過DiT模型生成新的圖像。首先,從標準正態分佈中採樣一個潛在表示,然後通過DiT模型逆向擴散過程,逐步去除噪聲,最終解碼回像素空間,得到生成的圖像。
  6. 可擴展性
    • DiT模型的可擴展性體現在通過增加Transformer的層數、寬度或輸入標記的數量來提高模型的計算量(Gflops),從而提高生成圖像的質量。這種可擴展性使得DiT模型能夠在不同的分辨率和複雜度下生成高質量的圖像。

DiT模型通過這種方式,利用Transformer的強大表達能力和擴散模型的生成能力,實現了在圖像生成任務中的高效和高質量輸出。

DiT的關鍵特點

  • 基於Transformer的架構DiT採用了Transformer作爲其核心架構,這使得模型能夠處理圖像的序列化表示,並通過自注意力機制捕捉圖像中的長距離依賴關係。
  • 潛在空間操作DiT在潛在空間中訓練,這通常比直接在像素空間訓練更高效。通過使用變分自編碼器(VAE)將圖像編碼到潛在空間,DiT減少了計算複雜度。
  • 可擴展性DiT展示了出色的可擴展性,通過增加模型的計算量(以Gflops衡量),可以顯著提高生成圖像的質量。這種可擴展性允許DiT在不同的分辨率和複雜度下生成圖像。
  • 條件生成能力DiT支持條件生成,能夠根據給定的類別標籤生成特定類別的圖像。這種能力使得DiT在特定領域的圖像生成任務中非常有用。
  • 自適應層歸一化(adaLN)DiT使用了自適應層歸一化技術,這是一種在Transformer塊中使用的歸一化方法,通過學習來調整層歸一化的參數,從而提高模型的表達能力和訓練效率。
  • 多種Transformer塊設計DiT探索了不同的Transformer塊設計,包括自適應層歸一化(adaLN)、交叉注意力(Cross-Attention)和上下文條件(In-Context Conditioning),以處理條件信息。
  • 高效的訓練過程DiT在訓練過程中表現出高度的穩定性,即使在沒有使用學習率預熱和正則化技術的情況下,也能穩定地訓練到高性能。
  • 生成圖像的多樣性和質量DiT能夠生成具有高視覺質量和多樣性的圖像。通過調整類條件生成的指導強度,可以在生成圖像的清晰度和多樣性之間進行權衡。
  • 高計算效率在生成圖像時,DiT能夠在保持高圖像質量的同時,實現較高的計算效率。這使得DiT在資源有限的環境中也具有吸引力。
  • 應用潛力DiT在圖像生成領域具有廣泛的應用潛力,包括藝術創作、遊戲開發、虛擬現實、數據增強等,尤其是在需要生成高質量圖像的場景中。
© 版權聲明

相關文章

暫無評論

暫無評論...