U7.3 Shortcut 與 Align Your Flow:同一張表的其他格子
本篇重用M0.3漂流的溫度計:全導數、微分穿過積分與 JVP·M2.3導航每 30 秒更新一次:Euler 法與它的誤差
同一個輸出,換一條恆等式
上一篇 MeanFlow 把網路輸出定成平均速度 ,用 Eulerian 恆等式訓練。U7.1 的表上還有第三條恆等式——progressive,兩小步等於一大步。如果輸出一樣是平均速度,但改用 progressive 恆等式,會長什麼樣? 那就是 Shortcut model。
Shortcut:兩個 步的平均等於一個 步
Shortcut model(Frans et al. [1])的網路是 ,第三個輸入是步長 :從 往資料端跳 這麼長的時間,落點是
對照上一篇的記號, 就是 ——同一個平均速度,只是第三個輸入從「目標時刻」換成「時間差」。
Progressive 恆等式說 。用平均速度寫:一大步的位移 等於兩小步位移的和 ,其中 是走完第一小步的位置。兩邊除以 :
讀法很直白:大步的平均速度,是兩個小步平均速度的平均。 這條式子裡完全沒有 ——和 U7.1 說的一樣,progressive 恆等式本身不含速度場,動力學要從最小的一步進來。Shortcut 的最小一步是 :
就是 U2.2 的 flow matching 損失,條件速度照用——這是 U1.2 的 conditional trick,而且這裡 是被回歸的目標、不乘在任何含 的東西上,所以沒有上一篇展開框裡那個陷阱。
訓練把兩種樣本混在一個 batch 裡:大部分(原文約四分之三)是 的 FM 樣本,其餘是 self-consistency 樣本——抽一個 ,用網路自己算右邊、stop-gradient、當成 的目標。步長取離散的網格 , 也落在對應的格點上;每一級 的目標由 那一級提供,資訊從 FM 底層一級一級往上 bootstrap。取樣時選一個 ,走 步; 就是一步。
Shortcut 與 MeanFlow 並排
兩者輸出同一個物件,值得把差別說乾脆:
| Shortcut | MeanFlow | |
|---|---|---|
| 輸出 | 平均速度 | 平均速度 |
| 恆等式 | progressive(兩個 步 = 一個 步) | Eulerian() |
| 動力學從哪進來 | 的 FM 樣本 | 每個樣本裡顯式的 (條件速度) |
| 需要 JVP | 否,多一次前向算 處的 | 是,一次 JVP |
| 步長 | 離散網格、2 的冪 | 任意 |
| 誤差結構 | 沿階梯逐級累積(U6.1 的累積換寫法) | 無階梯; 的 bootstrapping |
| teacher | 否 | 否 |
兩者都不要 teacher,理由不同:Shortcut 是「progressive 配 FM 底層」,MeanFlow 是「Eulerian, 在輸入點」——正是 U7.1 表上不要 teacher 的兩條路各一個代表。Shortcut 的階梯結構也讓 U3.2 的圖像換了一種樣子出現:底層 FM 的誤差不是被步數放大,而是被「級數」放大—— 級。
符號這一篇的 u 與 s 各有兩個意思
Align Your Flow:distillation 設定下同時用兩條
前兩個方法都從頭訓練。若手上有 teacher,U7.1 的表多出一條可用的路:Lagrangian—— 在輸出點,只有 teacher 能給。Align Your Flow(AYF,Sabour, Fidler & Kreis [2])就在這個設定下,把 Eulerian 與 Lagrangian 兩條恆等式都寫成連續時間的 distillation 目標(原文稱 AYF-EMD 與 AYF-LMD),全導數同樣用 JVP 算, 一律由 teacher 提供。
AYF 有兩個觀察值得記下來。第一,它明確指出 consistency model 是 flow map 把目標時刻釘在資料端的特例,並且證明(對 Gaussian 資料)存在一個次佳的 consistency model,使得步數變多之後 反而上升——這就是 U6.5 說的「ODE 那個 的保證在多步 CM 上沒有」,而 AYF 把「沒有保證」補成了一個具體的反例。flow map 沒有這個問題,因為多步不需要回到資料端再加噪。第二,它不單押一條恆等式,而是把 EMD 與 LMD 搭配使用,並加上 tangent normalization 這類 U6.4 談過的穩定手段。至於兩條各自在哪個區域比較不穩、為什麼要搭配,我沒有核對到原文的具體敘述,這裡只記結構——要照著做之前,先讀原文 [2] 的實驗那一節。此外 AYF 在蒸餾時對 teacher 用 autoguidance、在最後階段加 adversarial finetuning——這兩項屬於工程加料,放進表上時只記主線:AYF = Eulerian + Lagrangian,連續時間,要 teacher。
課堂提問Q1
Shortcut 與 MeanFlow 都不用 teacher。但 MeanFlow 的恆等式對任何一對 直接成立,Shortcut 卻要從 一級一級 bootstrap 上來,還多付 級的誤差放大。
既然如此,Shortcut 還有什麼存在的理由?
先想一想,再展開看整理後的答案
兩個,而且都不是「它比較早發表」。
一、它不需要微分。 MeanFlow 的 identity 裡有一個沿軌跡的全導數 ,實作要 JVP、等於在訓練迴圈裡多一階微分。U6.4 後半整節在談的 tangent normalization、tangent warmup、時間 embedding、double normalization——那一整套穩定手段,全部是為了付這一階微分的代價。Shortcut 的恆等式 只有函數求值,沒有導數,所以那一整套都不需要。
二、步長是網路的一個輸入,而且是離散的格點。 Shortcut 訓完之後,「我要走 8 步」就是取 呼叫 8 次,每一次都落在訓練時看過的格點上。MeanFlow 的 是連續的,任意一對都能問,但也就沒有「這一對我練過」這件事。
代價確實是 bootstrapping,而它和 U6.1 的逐輪減半是同一種代價換了位置:PD 把它攤在訓練的輪次上(每輪一個新模型),Shortcut 把它攤在同一個網路的步長維度上(一級一級往上填)。所以 U3.2 的誤差累積在這裡不是被步數放大,是被級數放大——級數只有 ,比步數少得多,這也是它還撐得住的原因。
一句話:MeanFlow 用一階微分換掉 bootstrapping,Shortcut 用 bootstrapping 換掉一階微分。 兩者都是 U7.1 那張表上「不要 teacher」的合法走法。
回頭看 CTM
U7.0 介紹 CTM 時已經寫出它的損失:, 由 teacher 從 解 ODE 到 。現在有了三條恆等式的名字,可以確定它的格子:這是 progressive 恆等式 ,其中第一段 不是學生自己,而是 teacher 的 solver。所以 CTM 和 Shortcut 同一欄(progressive),差在底層:Shortcut 的底層是 FM 自己、逐級 bootstrap;CTM 的底層是 teacher、一次到位。而 貼近 的極限則滑向 Eulerian——這就是 soft consistency matching 的「soft」:它在 progressive 與 Eulerian 兩格之間連續移動。
另一個差別是輸出物件:CTM 的 輸出位置,用 U6.2 那套 、 參數化保證恆等條件;Shortcut 與 MeanFlow 輸出平均速度,恆等條件自動成立。這是兩種座標的選擇,不影響用哪條恆等式。
先消化一下
參考文獻
- Frans, K., Hafner, D., Levine, S., Abbeel, P. One Step Diffusion via Shortcut Models. ICLR 2025.(步長輸入、self-consistency 目標、 的 FM 底層。)
- Sabour, A., Fidler, S., Kreis, K. Align Your Flow: Scaling Continuous-Time Flow Map Distillation. 2025.(AYF-EMD 與 AYF-LMD;consistency model 隨步數退化的觀察。)
- Kim, D. et al. Consistency Trajectory Models. ICLR 2024.
- Geng, Z., Deng, M., Bai, X., Kolter, J. Z., He, K. Mean Flows for One-step Generative Modeling. 2025.
- Boffi, N. M., Albergo, M. S., Vanden-Eijnden, E. Flow Map Matching. 2024.