PRX 第 3 部分:在 24 小時內訓練文字到圖像模型
Hugging Face 與 Photoroom 已證明,只需 24 小時即可從頭訓練出可用的文字到圖像模型。透過結合多項現代架構與訓練最佳化,團隊使用 32 顆 H200 GPU,總計算預算約為 1,500 美元,完成了此項工作。
像素空間訓練與 X 預測
模型採用 x‑prediction 公式,允許直接在像素空間中訓練,省去變分自編碼器(VAE)的需求。為了使序列長度在計算上可控,團隊使用 32 的 patch 大小以及在初始 token 投射層中的 256 維 bottleneck。
在 512px 解析度下,序列長度為 256 個 token;在 1024px 時則增至 1024 個 token。訓練排程直接從 512px 開始,最後在 1024px 進行微調。
感知損失提升視覺品質
直接預測像素使得可以使用傳統電腦視覺的感知損失,以提升收斂速度與視覺品質。團隊在標準 flow matching 目標之上實作了兩項輔助損失:
- LPIPS: 使用權重 0.1 以捕捉低層次的感知相似度。
- 基於 DINO 的感知損失: 使用 DINOv2,權重為 0.01,以提供更強的語意訊號。
這些損失是對所有噪聲層級下的整張圖像池化後計算,而非逐 patch 的特徵,以獲得更佳的實驗結果。
使用 TREAD 的高效 Token 路由
為降低每一步的計算成本,團隊採用了 TREAD(Token Routing for Efficient Architecture-agnostic Diffusion Training)。此方法會隨機選取部分 token,繞過一段連續的 transformer 區塊,再重新注入。
具體而言,50% 的 token 從第二個區塊路由至倒數第二個區塊。為減少在純粹的 Classifier-Free Guidance(CFG)下可能出現的品質退化,實作了一種自我指導機制,透過密集與路由條件預測的比較來進行指導。
表示對齊與優化器
表示對齊使用 REPA 完成,教師模型為 DINOv3。對齊損失在第 8 個 transformer 區塊施加一次,損失權重為 0.5。為與 TREAD 路由保持一致,對齊損失僅在未路由的 token 上計算。
在優化方面,團隊對 2D 參數(矩陣)使用 Muon 優化器,對所有非 2D 參數(偏置、正規化、嵌入)則使用 Adam。
| 優化器組 | 目標參數 | 關鍵超參數 |
|---|---|---|
| Muon | 2D 參數 | lr=1e-4, momentum=0.95, nesterov=true, ns_steps=5 |
| Adam | 非 2D 參數 | lr=1e-4, betas=(0.9, 0.95), eps=1e-8 |
訓練資料與排程
訓練使用了三個合成資料集:
- Flux generated (1.7M 張圖像)
- FLUX-Reason-6M (6M 張圖像)
- midjourney-v6-llava (1M 張圖像),使用 Gemini 1.5 重新生成說明文字以保持一致性。
訓練排程包括在 512px 時執行 100k 步,批次大小為 1024,之後在 1024px 時執行 20k 步,批次大小為 512(未使用 REPA)。
結果與意涵
雖然最終模型仍有一些紋理異常與偶發的解剖錯誤,團隊仍將其描述為「明顯可用」,具備強大的提示遵循能力與一致的美學風格。作者認為剩餘問題可能源於訓練不足與資料多樣性受限,而非配方本身的結構缺陷。
Photoroom 已透過 PRX GitHub repository 開源了訓練程式碼與實驗框架。