文生圖與VLM:生成影像和讀懂影像的兩條路|CMU 10-423 主題單元
「文字加圖片」不能描述清楚模型的工作。文生圖要產生影像,文字是條件;VLM可能接受影像,產生文字回答。資料流方向、輸出目標與驗收不同。原第12–13堂的內容在這裡保留關係地圖,兩條路各有完整例子與檢查。
「文字加圖片」不能描述清楚模型的工作。文生圖要產生影像,文字是條件;VLM可能接受影像,產生文字回答。資料流方向、輸出目標與驗收不同。原第12–13堂的內容在這裡保留關係地圖,兩條路各有完整例子與檢查。
Lab 3 在 MNIST 上從零組出一個有條件的 latent diffusion model,分四段:先用 label dropout 寫 CFG 訓練(在三群高斯混合上驗證),再一塊一塊寫 diffusion transformer(Fourier 時間嵌入、patchify、多頭注意力、adaLN-Zero、depatchify),接著寫一個 VAE,最後把 DiT 搬進 VAE 的 latent 空間訓練。題目與官方解答都公開;繳交走 Canvas 裡的 Gradescope,只有 MIT 修課生能用。
前幾講的演算法已經完整,第 4 講處理規模化時的兩個工程問題。第一,網路要吃圖片、時間 t 和 prompt 三種輸入,吐出一樣大的向量場,所以用 U-Net 或 diffusion transformer(DiT),時間用 Fourier 特徵嵌入、文字用凍結的 CLIP/T5 嵌入。第二,像素空間太大,所以先訓練一個 VAE 把圖壓進 latent space,在那裡做 flow matching,最後再解碼。Stable Diffusion 3 與 Meta Movie Gen Video 都是這套配方:latent 空間裡的 flow matching+DiT 變體+CFG。
L10 從「怎麼找到好的特徵向量」出發:Word2Vec 用代理任務學出 embedding,Autoencoder 用「輸入等於輸出」逼出壓縮後的 latent vector,VAE 再要求 latent 符合常態分布,讓鄰近的點生出相似的圖。接著蔡炎龍把 diffusion model 講成「encoder 用算的、只訓練 decoder 的 autoencoder」,最後收在 Latent Diffusion:先用 VAE 把 512×512 的圖壓成 64×64,diffusion 只在這個小空間裡做。第十週作業不寫程式,用 Bing 生出風格一致的多組圖。
2022 年是 CV 從「辨識」走向「生成」的轉折點——Latent Diffusion Models 在 CVPR 發表後催生了 Stable Diffusion,NeRF 從 2021 年的 25 篇暴增到 CVPR 單場超過 50 篇,ConvNeXt 替 CNN 打了一場漂亮的反擊戰,而 ECCV 則在 Tel Aviv 交出了 157 篇 Oral 的歷史最高紀錄。