DiT在數學和形式上是錯的?謝賽寧回應:不要在腦子里做科學
「兄弟們,DiT 是錯的!」
最近一篇帖子在 X 上引發了很大的討論,有博主表示 DiT 存在架構上的缺陷,并附上一張論文截圖。

圖 1. 我們引入了 TREAD,這是一種能夠顯著提升基于 token 的擴散模型骨干網絡訓練效率的訓練策略。當應用于標準的 DiT 骨干網絡時,我們在無引導 FID 指標上實現了 14/37 倍的訓練速度提升,同時也收斂到了更好的生成質量。
圖中橫軸代表訓練時間(以 A100 GPU 的小時數為單位,log 尺度,從 100 小時到 10000 小時),縱軸代表 FID 分數(越低越好,代表生成圖像質量越高)。
博主認為,這個圖的核心信息不是 TREAD 的速度優勢,而是 DiT 的 FID 過早穩定,暗示 DiT 可能存在「隱性架構缺陷」,導致其無法繼續從數據中學習。

博主提到的論文發表于今年 1 月(3 月更新 v2),介紹了一種名為 TREAD 的新方法,該工作通過一種創新的「令牌路由」(token routing)機制,在不改變模型架構的情況下,極大地提升了訓練效率和生成圖像的質量,從而在速度和性能上都顯著超越了 DiT 模型。
具體而言,TREAD 在訓練過程中使用「部分令牌集」(partial token set) vs 「完整令牌集」(full token set),通過預定義路由保存信息并重新引入到更深層,跳過部分計算以減少成本,同時僅用于訓練階段,推理時仍采用標準設置。這與 MaskDiT 等方法類似,但更高效。

- 論文標題:TREAD:Token Routing for Efficient Architecture-agnostic Diffusion Training
- 論文地址:https://arxiv.org/abs/2501.04765
- 代碼:https://github.com/CompVis/tread
博主在后續回復中逐步展開了對 DiT 的批判,并解釋 TREAD 如何暴露這些問題。
博主指出,該論文揭示了 DiT 模型的設計缺陷。具體來說,研究發現在訓練過程中,如果將模型中的一部分計算單元替換為「恒等函數」(Identity Function)—— 也就是讓這些單元什么計算都不做,僅僅是「直通」數據,相當于被臨時禁用了 —— 模型的最終評估分數反而會提高。

接著博主指出 DiT 的兩個「可疑」的設計:
- 整個架構都使用「后層歸一化」(Post-LayerNorm)

博主認為 DiT 使用了一種已知不太穩定的技術(后層歸一化),來處理一個數值范圍變化極其劇烈的任務(擴散過程)。
- adaLN-zero

博主認為,這個模型雖然整體上自稱是「Transformer」架構,但在處理最關鍵的「指導信息」(即條件數據)時,并沒有使用強大的 Transformer,而是用了一個非常簡單的 MLP 網絡(多層感知機)。
更具體地,adaLN-zero 通過完全覆蓋注意力單元的輸入,并注入任意偏置來覆蓋輸出,這限制了模型的表達能力,相當于「討厭注意力操作」(hate the attention operation),從而削弱了 DiT 的整體潛力。

博主還提到與早期論文相關的 LayerNorm 研究,指出 LayerNorm 的偏置和增益參數可能對梯度調整影響更大,而非真正改善模型性能。他認為,adaLN-zero 正是利用了這一點,名為「梯度調節」,實則像是在「給小模型偷偷注入過擬合的偏置」。

- 論文標題:Understanding and Improving Layer Normalization
- 論文地址:https://arxiv.org/abs/1911.07013
看了這篇帖子,DiT 的作者,紐約大學計算機科學助理教授謝賽寧有些忍不住了。
在 2022 年,謝賽寧發表了 DiT 的論文,這是擴散模式首次和 Transformer 相結合。

- 論文標題:Scalable Diffusion Models with Transformers
- 論文鏈接:https://arxiv.org/pdf/2212.09748
在 DiT 問世之后,Transformer 逐步代替原始擴散模型中的 U-Net,在圖像和視頻生成任務中生成高質量的結果。
其核心思想是采用 Transformer 代替傳統的卷積神經網絡作為擴散模型的主干網絡。

這一方法業已成為 Sora 和 Stable Diffusion 3 的基礎架構,同時也確定了 DiT 的學術地位。
在 DiT 論文剛剛問世時,就已接連受到質疑,甚至以「缺乏創新」為由被 CVPR 2023 拒稿。
這一次面對 DiT 在數學和形式上都「是錯的」的論調,謝賽寧發推做出了幾點回應。

從字里行間來看,謝賽寧對這個帖子多少有些情緒:
我知道原帖是在釣魚騙點擊率,但我還是咬一下鉤……
坦白講,每個研究者的夢想其實就是發現自己的架構是錯的。如果它永遠都沒問題,那才是真正的大問題。
我們每天都在用 SiT、REPA、REPA-E 等方法試圖打破 DiT,但這需要基于假設、做實驗、進行驗證,而不是只在腦子里扮演式地做科學…… 否則,你得出的結論不僅僅是錯的,而是根本連錯都談不上。
也難怪謝賽寧語氣有些不善,原帖博主的一些說法可能有些拱火的嫌疑:


謝賽寧也從技術角度對于原帖子提出的一些問題進行了回復,在對原帖的部分問題進行了反駁后,他也同樣說明了 DiT 架構目前存在一些硬傷。
截至今天,DiT 的問題:
- tread 更接近于 stochastic depth,我認為它的收斂性來自正則化效應,這讓表示能力更強(注意推理過程是標準的 —— 所有模塊都會處理所有 token);這是非常有意思的工作,但和原帖說的完全不是一回事。
- Lightning DiT 已經是經過驗證的穩健升級版(結合了 swiglu、rmsnorm、rope、patch size=1),有條件就應該優先使用它。
- 沒有任何證據表明 post-norm 會帶來負面影響。
- 過去一年最大的改進點在于內部表示學習:最早是 REPA,但現在有很多方法(例如 tokenizer 層面的修正:VA-VAE / REPA-E,把語義 token 拼接進噪聲潛變量、解耦式架構如 DDT,或者通過分散損失、自表示對齊等正則化手段)。
- 始終優先采用隨機插值 / 流匹配(SiT 在這里應該是基線)。
- 對于時間嵌入,使用 AdaLN-zero;但遇到更復雜的分布(如文本嵌入)時,應采用交叉注意力。
- 不過要用對方式 —— 采用 PixArt 風格的共享 AdaLN,否則會白白浪費 30% 的參數。
- 真正的「硬傷」其實是 DiT 里的 sd-vae:這是顯而易見卻長期被忽視的問題 —— 它臃腫低效(處理 256×256 圖像竟需要 445.87 GFlops?)、不是端到端的。像 VA-VAE 和 REPA-E 只是部分修復,更多進展還在路上。
評論網友也對回應中提到的技術細節感興趣,謝賽寧也都對相關疑惑做出了回復:


算法的迭代進步總是伴隨著對現有算法的質疑,雖說所謂「不破不立」,但 DiT 仍然在擂臺中央,不是么?

































