本篇重用M1.4去噪就是取 Posterior Mean(Tweedie)·M1.1從鞋子猜身高:Conditional Expectation·M1.2天氣預報該報幾度:MSE 的最小值是 Conditional Expectation·M2.3導航每 30 秒更新一次:Euler 法與它的誤差·M0.2導航的三十秒:Taylor 展開與「假設直線」
空格
上一篇的損失
LCM=E[λ(tn)d(fθ(xtn+1,tn+1), fθ−(x^tn,tn))]
裡,xtn+1=x0+tn+1ϵ 是普通的加噪聲,唯一沒說清楚的是 x^tn:「從 xtn+1 出發,沿同一條 PF-ODE 軌跡往乾淨端走一格的點」。真實的那個點 xtn 需要解 ODE,我們沒有;但我們只需要一個夠好的近似。Song et al. [1] 給了兩個。
Consistency distillation(CD)。 有一個訓好的 teacher 給 score sϕ(x,t)≈∇logpt(x)。U6.0 說本單元的 PF-ODE 是 dtdx=−t∇logpt(x),從 tn+1 往 tn 走一步 Euler:
x^tnCD=xtn+1+(tn+1−tn)tn+1sϕ(xtn+1,tn+1).
(tn<tn+1,所以是往回走;用 E[ϵ∣x]=−t∇logpt 改寫成 xtn+1−(tn+1−tn)ϵ^ϕ 也一樣。)這個點與真實 xtn 差了兩件事:teacher 的 score 誤差,以及 Euler 一步的局部誤差 21Δt2∥x¨∥——U3.2 的那個量,Δt=tn+1−tn。這是一個蒸餾:它把 teacher 的知識、一小步一小步地,壓進 fθ。
Consistency training(CT)。 沒有 teacher。注意到 xtn+1 本來就是用某一組 (x0,ϵ) 造出來的,那就用同一組,在 tn 再造一次:
x^tnCT=x0+tnϵ.
程式碼上這是一行:x_hat = x0 + t[n] * eps。不需要任何網路呼叫、任何 score。
第一次看到 CT 的人通常會皺眉。x0+tnϵ 不在 xtn+1 的 PF-ODE 軌跡上——它在那條穿過 x0、方向是 ϵ 的直線上;而 U2.3 Q1 花了一整篇說:條件路徑是直的,邊際軌跡是彎的,兩者不是同一條線。拿一個不在軌跡上的點,要求 fθ 在那裡的輸出等於 fθ(xtn+1),這看起來就是在教錯的東西。
課堂提問Q1
CT 沒有 teacher、沒有 score,x0+tnϵ 也明明不在同一條 PF-ODE 軌跡上。它憑什麼能學到 consistency function?
先想一想,再展開看整理後的答案
常見的答案分三類:「因為 Δt 很小,x0+tnϵ 和 xtn+1 靠得很近,所以差不多」(對一半——靠近是必要的,但不是理由;靠近的錯點還是錯點);「因為 fθ 會自己平均掉」(方向對了,但要說清楚是誰在平均、平均成什麼);以及「這又是那個條件與邊際的事」。第三個是對的,把它算出來。
算一次條件期望。 把 CT 的目標改寫成從 xtn+1 出發的形式:
x0+tnϵ=(x0+tn+1ϵ)−(tn+1−tn)ϵ=xtn+1−Δt⋅ϵ.它是「從 xtn+1 沿 −ϵ 方向退 Δt」。但 ϵ 是這一筆樣本自己的噪聲,不是 xtn+1 的函數——很多不同的 (x0,ϵ) 會造出同一個 xtn+1,每一組退的方向都不同。固定 xtn+1,對所有這些 (x0,ϵ) 取後驗平均:
E[x0+tnϵxtn+1]=xtn+1−Δt E[ϵxtn+1]=xtn+1+Δt tn+1∇logptn+1(xtn+1).第二個等號是 Tweedie(U6.0 的展開框:E[ϵ∣xt]=−t∇logpt)。右邊正是 CD 的 x^tnCD,而且用的是真實 score,不是 teacher 的近似。
所以 CT 的目標是 CD 目標的條件版本:每一筆樣本都是錯的(退的方向是自己的 ϵ,不是平均方向),但錯的方向對 xtn+1 的後驗是零均值的,平均起來就是對的方向。這就是 U1.2 的 conditional trick——條件目標好算、邊際目標難算,而回歸自動對條件取後驗平均——換到 consistency 上的樣子。U5.2 那張表已經列過它的幾個版本(score、速度、bt 與 ηt、比值),每一個都是同一句話:我們不需要邊際量,只需要一個在期望上等於它的條件量。
但這裡有兩個新的細節,也是為什麼上面第一類答案裡「Δt 很小」不是多餘的。
細節一:目標經過了一個非線性函數。 先前那幾個版本的條件目標都是直接被回歸的量(ϵ、x1−x0、x˙t、比值),MSE 對它取期望是精確的。這次條件目標 x^tnCT 是先餵進 fθ− 再被比較。fθ− 非線性,所以
E[fθ−(x0+tnϵ,tn)xtn+1] = fθ−(x^tnCD,tn).差多少?x0+tnϵ 在給定 xtn+1 下的條件變異數是 Δt2Var(ϵ∣xtn+1),Jensen gap 的量級是 Δt2 乘 f 的二階導數。這是 O(Δt2) 的東西——隨 Δt→0 消失,但 Δt 大時不能忽略。
細節二:Euler 本身相對真實軌跡就有誤差。 就算完美地平均成 x^tnCD,它也只是真實 xtn 的一步 Euler 近似,差 21Δt2∥x¨∥。這一項 CD 也有;它是 U3.2 的局部誤差,係數是曲率,同樣隨 Δt→0 消失。
兩項合起來,就是 Song et al. [1] 那條定理的精神:在 Δt→0 時,CT 的損失與(用真實 score 的)CD 損失只差 o(Δt),兩者訓出同一個 f。(定理的精確條件——d 的形式、對 f 的 Lipschitz 與二階可微假設、θ−=θ——請查原文;這裡只用它的結論。)
一句話總結:CT 不是「沒有 teacher」,它的 teacher 是資料本身——(x0,ϵ) 這一組配對就是一條條件軌跡,而條件軌跡的後驗平均就是真實的 PF-ODE。
為什麼時間網格要慢慢變細
Q1 的兩個細節給了一張很實用的圖。固定一個 xtn+1,看 CT 那一側的目標 fθ−(x0+tnϵ,tn):
- 它的期望偏離真實的 f(xtn,tn),偏離量是 O(Δt2) 乘上曲率(Euler 誤差)與 f 的二階導數(Jensen gap)。這是 bias。N 個網格點的 bias 疊起來,整個 fθ 偏離真值 O(Δt)——這是 Song et al. [1] 定理裡「CD 損失為零則 ∥fθ−f∥=O(Δt)」的內容,係數由曲率決定。
- 它的散佈來自不同的 (x0,ϵ) 退向不同方向,標準差是 O(Δt)。這是 variance。
單看兩項都隨 Δt 變小,似乎 Δt 越小越好。但損失比較的是 fθ(xtn+1) 與 fθ−(x^tn) 的差,這個差本身在 Δt→0 時也趨近零——真正有資訊的訊號(兩點輸出的真實差距)是 O(Δt) 量級,而目標的 noise 也是 O(Δt)。Δt 一小,訊噪比不再改善,梯度被 variance 主導,訓練變慢、甚至不收斂 [1, 2]。
於是有一個真正的取捨:Δt 大(N 小)→ 訊號強、好訓,但 bias 大,fθ 學到的是「假設每一段是直線」的錯誤終點;Δt 小(N 大)→ bias 小,但訊號被淹沒。Song et al. 的解法是時間網格的 curriculum:訓練初期用小 N(N=2 起),fθ 快速學到一個粗糙但方向正確的版本;然後逐步增加 N(到 150 或更多),每次加細都在把上一階段的 bias 消掉,而因為 fθ 已經接近真值、相鄰兩點的輸出已經很接近,variance 造成的擾動相對可控。改進版本 [2] 把這條 curriculum 改成指數成長(N 每隔固定步數翻倍,到 1280),這是下一篇的內容。
展開細節「CT 的目標其實是假設這一段是直線」——把 Q1 接回配對交叉
Q1 裡三個點的幾何值得再說一次。從 xtn+1 往乾淨端走 Δt:CT 走的是這一筆條件直線的方向 −ϵ;Euler 走的是經過此點的所有條件直線方向的後驗平均 −E[ϵ∣xtn+1];真實軌跡走的是一段曲線。前兩者都是直線,差別在方向是「自己的」還是「平均的」——這正是 U2.3 Q1 的圖:條件直線交叉,邊際速度是交叉處的平均,邊際軌跡因此彎曲。CT 的 bias 有兩層:條件方向對平均方向的偏差(零均值、進 variance)、平均方向的直線對曲線的偏差(不是零均值、進 bias)。第二層就是 U3.2 的曲率積分在 CM 裡的樣子。
反過來想:如果配對是不交叉的(U3.3 reflow 之後、或 U3.4 的 OT 配對),條件直線幾乎就是邊際軌跡,CT 的目標就幾乎落在軌跡上,bias 幾乎為零、不需要小 Δt。這解釋了為什麼「先拉直、再做 CT」在實務上是一個常見的組合。
CD 與 CT 各付什麼
兩邊的取捨可以並排看:一個要 teacher 但目標乾淨,一個不要 teacher 但目標帶噪。
| CD | CT |
|---|
| x^tn | teacher 走一步 Euler | 同一組 (x0,ϵ) 在 tn 重加噪 |
| 需要 | 訓好的 teacher(每步多一次網路呼叫) | 只要資料 |
| x^tn 的誤差 | teacher 誤差 + Euler 曲率誤差 | Euler 曲率誤差 + 條件目標的 variance(+ 非線性的 Jensen gap) |
| 上限 | teacher | 資料分佈本身 |
| 對 N 的敏感度 | 較低(目標是確定的) | 高(bias–variance 取捨,需要 curriculum) |
CD 是蒸餾,一步一步把 teacher 壓進 fθ,訓練較穩,但上限是 teacher。至於品質,早期的比較裡 CD 明顯較好,而下一篇的 iCT 會把這個差距抹掉。CT 是一個獨立的生成模型家族——從資料直接訓出一步生成器,不經過任何 diffusion 模型。這件事在 2023 年是新的:它說「一步生成」不必是 diffusion 的附屬品。代價是 variance、以及對時間網格與各種穩定技巧的依賴,下一篇處理。
先消化一下
參考文獻
- Song, Y., Dhariwal, P., Chen, M., Sutskever, I. Consistency Models. ICML 2023.(CD 與 CT 的定義;定理:CD 損失為零則 ∥fθ−f∥=O(Δt);CT 損失與 CD 損失只差 o(Δt);N 的 curriculum。)
- Song, Y., Dhariwal, P. Improved Techniques for Training Consistency Models. ICLR 2024.(CT 的 bias–variance 分析與指數 curriculum。)
- Karras, T., Aittala, M., Aila, T., Laine, S. Elucidating the Design Space of Diffusion-Based Generative Models. NeurIPS 2022.(本單元 PF-ODE 與時間網格的來源。)