
譯者 | 布加迪
審校 | 重樓
本文介紹了最流行的圖像生成模型架構之一的技術層面。
近年來,生成式AI模型已成為一顆冉冉升起的新星,尤其是隨著ChatGPT等大語言模型(LLM)產品閃亮登場。這類模型使用人類能夠理解的自然語言,可以處理輸入,并提供合適的輸出。由于ChatGPT等產品的出現,其他形式的生成式AI也變得流行并成為主流。
由于能夠完全借助自然語言輸入生成圖像,DALL-E和Midjourney等產品在生成式AI熱潮中大受歡迎。這些熱門產品并非憑空生成圖像,相反它們依賴一種名為擴散模型(diffusion model)的模型。
我們在本文中將揭開擴散模型的神秘面紗,以深入了解其背后的技術。我們將討論基本概念、模型的工作原理以及訓練方法。
擴散模型的基礎知識
擴散模型是一類屬于生成式模型的AI算法,旨在根據訓練數據生成新數據。以擴散模型為例,這意味著它們可以根據給定的輸入創建新的圖像。
然而,擴散模型生成圖像的過程有別于通常的方法:模型在數據中添加噪聲(干擾信息),然后去除噪聲。簡單來說,擴散模型修改圖像,然后對其進行完善以生成最終產品。你可以將該模型視為去噪模型,因為它會學習去除圖像中的噪聲。
擴散模型最早正式出現在Sohl-Dickstein等人撰寫的2015年論文《使用非平衡熱力學的深度無監督學習》中。該論文引入了這樣一個概念:使用一種名為受控正向擴散的過程,將數據轉換成噪聲,然后訓練模型來逆轉該過程,重新構建數據,這就是去噪過程。
在此基礎上,Ho等人撰寫的2020年論文《去噪擴散概率模型》引入了現代擴散框架,該框架可以生成高質量圖像,其性能優于之前的流行模型,比如生成式對抗網絡(GAN)。一般來說,擴散模型包含兩個關鍵階段:
- 正向(擴散)過程:通過逐步添加噪聲來污染數據,直到其與隨機靜態圖像難以區分。
- 反向(去噪)過程:訓練神經網絡以迭代去除噪聲,學習如何從完全隨機的數據中重新構建圖像數據。
不妨嘗試更好地理解擴散模型的組件,以便有一番更清晰的認識。
正向過程
正向過程是第一個階段,在此階段,通過添加噪聲系統地降低圖像質量,直到變為隨機靜態圖像。
正向過程是受控且迭代的,我們可以將其概括為以下步驟:
- 從數據集中的一張圖像開始。
- 向圖像添加少量噪聲。
- 這個過程重復多次(可能重復數百或數千次),每次都進一步破壞圖像。
經過足夠多的步驟后,原始圖像將顯示為純噪聲。
上述過程通常在數學上被建模為馬爾可夫鏈,因為每個噪聲版本僅依賴前一個版本,而不是依賴整個步驟序列。
但是,為什么我們要逐漸將圖像變成噪聲,而不是直接將其一步變成噪聲呢?目的是讓模型能夠逐漸學習如何逆轉破壞。小的增量步驟讓模型得以學習從噪聲數據轉換成低噪聲數據,這有助于它從純噪聲逐步重新構建圖像。
為了確定每一步添加多少噪聲,可以使用噪聲調度這個概念。比如說,線性調度會隨著時間的推移逐漸引入噪聲,而余弦調度會比較緩慢地引入噪聲,并將有用的圖像特征保留更長一段時間。
以上是對正向過程的簡要概述。下面不妨了解一下反向過程。
反向過程
正向過程之后的下一個階段是將模型轉變為生成器,該生成器學習將噪聲重新轉換為圖像數據。通過迭代的小步驟,模型可以生成之前并不存在的圖像數據。
通常,反向過程是正向過程的逆過程:
- 從純噪聲開始——一張完全隨機的由高斯噪聲組成的圖像。
- 使用一個訓練好的模型迭代去除噪聲,該模型試圖近似每個正向步驟的反向版本。在每個步驟中,模型使用當前的噪聲圖像和相應的時間步長作為輸入,根據訓練過程中學到的知識預測如何降低噪聲。
- 圖像逐步變得更加清晰,獲得最終的圖像數據。
這個反向過程需要經過訓練的模型來去除噪聲圖像。擴散模型常采用神經網絡架構(比如U-Net),這種自動編碼器結合了編碼器-解碼器結構中的卷積層。在訓練過程中,模型學習預測在正向過程中添加的噪聲成分。在每個步驟,模型還會考慮時間步長,從而根據噪聲大小調整預測結果。
該模型通常使用損失函數(比如均方誤差MSE)進行訓練,該函數用于衡量預測噪聲與實際噪聲之間的差異。通過在大量樣本中最小化損失,模型逐漸能夠熟練地逆轉擴散過程。
與GAN等替代方案相比,擴散模型提供了更高的穩定性和更直接的生成路徑。這種逐步去噪的方法可以實現更具表現力的學習,從而使訓練更可靠、更易于解釋。
一旦模型訓練完畢,生成新圖像的過程將遵循我們上面總結的反向過程。
文本調節
在許多文本轉圖像產品(比如DALL-E和Midjourney)中,這些系統可以使用文本提示引導反向過程,我們稱之為文本調節。如果整合自然語言,我們可以獲得匹配的場景,而不是隨機的視覺效果。
該過程利用預訓練的文本編碼器來實現,比如CLIP(對比語言-圖像預訓練),它將文本提示轉換成向量嵌入。然后,該向量通過交叉注意力等機制被饋入到擴散模型架構中。交叉注意力是一種注意力機制,使模型能夠專注于文本的特定部分,并將圖像生成過程與文本對齊。在反向過程的每一步,模型都會檢查當前圖像狀態和文本提示,并利用交叉注意力機制將圖像與提示中的語義對齊。
這是DALL-E和Midjourney能夠根據提示生成圖像的核心機制。
DALL-E與Midjourney有何不同?
這兩款產品都使用擴散模型作為基礎,但在技術應用上略有不同。
比如說,DALL-E采用基于CLIP的向量嵌入引導的擴散模型進行文本調節。相比之下,Midjourney采用其專有的擴散模型架構,據稱該架構包含一個經過微調的圖像解碼器,針對高真實感進行了優化。
這兩種模型還都依賴交叉注意力機制,但它們的引導風格有所不同。DALL-E強調通過無分類器引導來遵循提示,從而在無調節輸出和文本調節輸出之間取得平衡。相比之下,Midjourney傾向于優先考慮風格解讀,可能對無分類器引導采用了更高的默認引導尺度。
DALL-E和Midjourney在處理提示長度和復雜性方面有所不同,DALL-E模型可以通過在提示進入擴散管道之前對其進行處理來處理較長的提示,而Midjourney往往更擅長處理簡潔的提示。
兩者之間還有更多的差異,但上面這些是你應該了解的與擴散模型相關的差異。
結語
擴散模型已成為DALL-E和Midjourney等現代文本轉圖像系統的基礎。如果利用正向和反向擴散的基本過程,這些模型可以從隨機數據生成全新的圖像。此外,這些模型還可以使用自然語言,通過文本調節和交叉注意力等機制來引導結果。
原文標題:Diffusion Models Demystified: Understanding the Tech Behind DALL-E and Midjourney,作者:Cornelius Yudha Wijaya



























