U5.5 16 分鐘閱讀 2026年9月

U5.5 應用:語言模型、蛋白質序列、圖

本篇重用M4.0明天的天氣只看今天:Markov Chain 與 Transition Matrix·M4.1進去就出不來:Absorbing State 與吸收時間

看到一篇離散生成的論文,
要怎麼一句話說出「它動了哪一格」?

一個離散模型要填哪三格

這兩個單元建立的東西可以壓成一張表的三欄。任何一個離散生成系統,只要回答三個問題就能定位:

槽位問題這兩個單元的選項
pathforward chain 是什麼?source 是什麼、κt\kappa_t(或 αt\alpha_t)長什麼樣?absorbing / uniform / 朝某個 marginal 走 / 混合;線性或其他 schedule(U4.1U5.4
target網路輸出什麼、用什麼 loss?pθ(x0xt)p_\theta(x_0^\ell\mid x_t) 的 logits + 加權 cross-entropy(U4.2);或比值 + score entropy(U5.2
sampler走幾步、每步翻開幾個、翻開的字能不能改?步數 NN 與因子化誤差(U4.3);信心排序;remasking σt\sigma_tU5.3

下面三個應用,每一個都只是在這三格裡填字。這一篇沒有新的數學;它的目的是讓你看到論文時能立刻說出「它動了哪一格」。

語言:LLaDA 與 masked diffusion 語言模型

LLaDA [1] 是目前最有代表性的例子:一個 8B 參數、從頭訓練的 masked diffusion 語言模型,在多數標準 benchmark 上與同規模的 autoregressive(AR)模型相當。

  • path:absorbing,線性 schedule αt=1t\alpha_t=1-t。整串 [MASK] 是起點。
  • targetpθ(x0xt)p_\theta(x_0^\ell\mid x_t),loss 是 U4.2 那條加權 masked cross-entropy——線性 schedule 下權重是 1/t1/t。網路是一個雙向 transformer(沒有 causal mask),如 U4.2 的 Details 所說,可以不吃 tt。預訓練之後用同一個 loss 做 supervised fine-tuning(只遮 response 部分)。
  • sampler:固定步數;為了長序列的品質,採用半 autoregressive 的 block 取樣——把序列切成 block、block 之間從左到右、block 內用 masked diffusion 平行翻開;每步翻開哪些位置用 low-confidence remasking:先對所有被遮位置抽樣,只保留信心高的,其餘遮回去(MaskGIT [7] 式)。注意這個 remasking 是 heuristic、不保持邊際,與 U5.3 那族有區別。

與 AR 的權衡,全部在 U4.3 那張表裡:

  • 速度:AR 生成 LL 個 token 要 LL 次前向;masked diffusion 走 NN 步,每步翻開 L/NL/N 個。NLN\ll L 時快很多——這是「可平行」的意思。但 NN 越小、每步翻開越多、因子化誤差越大;實務上要達到 AR 的品質,NN 常常接近 LL,速度優勢就縮小了。另外雙向 attention 讓 KV cache 無法直接沿用(每一步整串都在變),單步的成本比 AR 一步貴。
  • 品質:每步翻開一個時沒有因子化誤差,等於任意順序的 AR。但雙向 context 帶來兩件 AR 做不到的事:天生會填空(infilling),以及不受生成方向的限制——LLaDA 報告在「倒著補全詩句」這類 reversal 任務上明顯優於 AR 模型,因為 AR 只在一個方向上學過條件分佈。
  • 修正:純 absorbing 翻開就固定;U5.3σt\sigma_t 是保持邊際的修正方式,ReMDM [8] 把它用在 MDLM 規模的模型上。

課堂提問Q1

masked diffusion 語言模型最常被講的優點是可以平行生成。可是上面那條權衡說,要達到 AR 的品質,NN 常常需要接近 LL——那平行到底平行在哪裡?如果速度優勢會縮回去,這條路線真正贏的是什麼?

先想一想,再展開看整理後的答案

會被想到的回答大致有三類:「其實沒有贏,只是另一種寫法」、「贏在硬體利用率」、「贏在可以填空」。第三類是對的方向,但在講它之前要先把「平行」這件事講準。

平行的上限不是架構決定的,是資料的條件相依決定的。 一步同時填 kk 個位置,付的代價就是那 kk 個位置之間的相依被丟掉(U4.3)。所以「能平行多少」是這份資料的性質,不是模型的宣傳詞:相依弱的資料可以放心平行,相依強的資料每一次平行都在賠。下面的 demo 量得到這件事。

在這個前提下,AR 換成 masked diffusion 真正留下來的是三件事:

  1. 雙向 context。 填空(infilling)與不受生成方向限制——LLaDA 報告在「倒著補全」這類 reversal 任務上明顯優於同規模 AR,因為 AR 只在一個方向上學過條件分佈。這不是取樣器補得回來的東西,是訓練目標的差別。
  2. 取樣預算變成一顆可調的旋鈕。 block 大小、每個 block 走幾步、σt\sigma_t——全部在取樣器裡,不必重訓就能換品質。AR 的生成步數就是 LL,沒有這條軸可以調。
  3. 同一個 loss 同時是表徵學習的目標。 U4.2 說 masked diffusion 是 BERT 加上隨機遮罩比例與權重;下一節的 DPLM 就是把這件事直接用在蛋白質上。

所以「AR 還是 diffusion 比較快」問錯了。該問的是:這份資料的條件相依有多強、我願意花幾次網路呼叫。 順著這個問法,還有一項對 diffusion 不利的成本要記住:雙向 attention 讓 KV cache 沒辦法直接沿用(每一步整串都在變),所以單步比 AR 一步貴——BD3-LM [9] 那種 block 設計,一部分就是為了把 cache 拿回來。

互動 demo:block 這顆旋鈕在賣什麼。 還是 Markov toy(L=16L=16、相鄰格以 0.9 相同,切換率真值 0.10),橫軸是網路呼叫次數、縱軸是樣本的切換率,每個點標它的 block 大小。兩個端點先看:B=1B=1(一次一格、16 次呼叫)量到 0.098——那就是 autoregressive,沒有因子化誤差;B=16B=16 且只走 1 步(一次呼叫全部填完)衝到 0.504,等於每格獨立。中間才是有意思的地方:B=4B=4、每個 block 走 2 步(8 次呼叫)量到 0.172,用一半的呼叫次數走完這段路的大約八成。把相依強度切到 0.7(真值變成 0.30):兩端變成 0.498 與 0.299,可讀的範圍整個變窄——相依越弱,平行翻開的代價越小,這正是 Q1 說「平行的上限由資料決定」的樣子。

補充這一篇的數字哪些是量出來的、哪些是論文報告的

上面 demo 的數字是在一個 16 格的 toy 上量出來的,可以自己重跑。而三個應用的敘述——LLaDA 與同規模 AR 相當、EvoDiff 能生成可摺疊的蛋白、DiGress 比連續版好——都是各篇論文報告的結果,設定、資料與評分方式都不一樣,彼此不能直接比大小。

這一篇要記住的是槽位,不是名次:一個系統動了哪一格、為什麼那一格值得動。名次會隨模型規模與 benchmark 改變,槽位不會。

展開細節這條線上其他值得知道的名字
  • MDLM [2]、SEDD [3]:語言上兩條 target 路線的代表——加權 cross-entropy 與 score entropy——U5.2 說過在 absorbing 鏈上它們學的是同一組數字。
  • Block diffusion(BD3-LM):把 AR 與 masked diffusion 內插——block 之間 AR、block 內 diffusion,block 大小是「每步翻開幾個」之外的另一個速度/品質旋鈕,也讓 KV cache 部分回來 [9]。
  • 商用系統:Mercury(Inception Labs [10])與 Gemini Diffusion 都是以 diffusion 為骨架的語言模型,主打生成速度。Mercury 的技術報告有 path 與 sampler 的粗略描述,Gemini Diffusion 目前沒有公開細節可以放進三個槽位。

蛋白質序列

一段蛋白質是二十種胺基酸的序列,長度幾十到幾千。它比自然語言更適合離散擴散的理由有兩個:序列裡的相依是長程且雙向的(相隔很遠的殘基在摺疊後靠在一起),而且最常見的任務不是「從頭寫一段」而是填空——固定一段 motif 或活性位點、生成其餘部分(scaffolding),或者給結構、生成配得上它的序列。這兩件事都是雙向 context 的主場。

  • EvoDiff [4]:在演化尺度的序列資料上訓練離散擴散。path 有兩種:order-agnostic AR(每步只遮/翻一個殘基,即 U4.3 說的「任意順序 AR」)與 D3PM 式的 uniform 變體(含一個依胺基酸替換矩陣設計的 transition matrix,讓「噪聲」偏向生物上合理的替換)。target 是 x0x_0 的 logits;sampler 是反向 posterior。它示範了「不看結構、只看序列」也能生成可摺疊的蛋白。
  • DPLM:把 masked diffusion 當成蛋白質語言模型的預訓練目標,同時做生成與表徵學習——U4.2 說 masked diffusion 是 BERT 加上隨機遮罩比例與權重,DPLM [11] 是這句話在蛋白質上的直接應用。
  • Multiflow [5]:結構與序列共同生成。結構(每個殘基的位置與朝向)是連續的,用 flow matching;序列是離散的,用 discrete flow matching;兩條路徑共用一個網路、共用時間。這是 U5.4 Q1 說「配對留下對齊的意義」的具體例子——(x0struct,x0seq)(x_0^{\text{struct}},x_0^{\text{seq}}) 是成對的,不是各自獨立抽。它也是 U5.3 提到的 stochasticity η\eta 的出處。

三個系統的 path 各不相同,但 target 都是 x0x_0 的 posterior,sampler 都在「每步翻開幾個」上做取捨。序列長度短(幾百)讓 NLN\approx L 的取樣仍然便宜,這是蛋白質比語言更早大規模採用離散擴散的實務原因之一。

圖:DiGress

一個分子圖是節點(原子種類)加上邊(鍵的種類,含「沒有鍵」)。U4.0 說過它是離散資料;DiGress [6] 說明了為什麼不該把它當連續資料處理:對 adjacency matrix 加 Gaussian noise,中間狀態是一個稠密的實數矩陣,不再是圖——稀疏性、整數度數、原子價的約束全部消失,網路要花大量容量學「什麼是圖」而不是「什麼是好的分子」。離散 forward chain 讓每個中間狀態都仍是一個合法的圖

  • path:對每個節點與每條(可能的)邊獨立地跑一條 uniform 型的鏈——但終點不是均勻分佈,而是資料裡節點種類與邊種類的 marginal(大部分是「沒有鍵」)。也就是 Qt=αˉtI+(1αˉt)1m ⁣Q_t=\bar\alpha_t I+(1-\bar\alpha_t)\mathbb 1 m^{\!\top}mm 是 marginal 向量;U4.1 的代數一字不改(1m ⁣\mathbb 1m^{\!\top} 也是投影)。DiGress 報告這比均勻終點好,直覺是噪聲圖的稀疏程度與真實圖相近。
  • target:對每個節點與每條邊輸出 x0x_0 的 logits,cross-entropy。網路是 graph transformer,permutation equivariant:forward 對每個節點與邊獨立加噪聲、本身就是 equivariant 的,所以 equivariant 的網路加上 equivariant 的 forward 給出 permutation-invariant 的 likelihood——不需要像 AR 那樣選一個節點順序。
  • sampler:反向 posterior,每步同時更新所有節點與邊。因子化誤差在這裡特別明顯:邊與邊之間高度相依(一個碳原子最多四根鍵),同時翻開所有邊會生出違反價數的分子。DiGress 的做法是把一些圖層次的統計量(例如各節點的度數、環的數量)當額外輸入餵給網路,讓 marginal 更準;U4.3 那張表最後一行的「顯式建模相依」在這裡是進行中的研究。

回頭看這張表

三個應用放回三個槽位:

pathtargetsampler
LLaDAabsorbing,線性x0x_0 logits,加權 CEblock 半 AR + 信心排序 remasking
EvoDiffOA-AR / uniform 變體(替換矩陣)x0x_0 logits反向 posterior
MultiflowDFM(序列)+ FM(結構),成對x0x_0 posterior(兩種模態)η\eta 的 CTMC 取樣
DiGress朝 marginal 走的 uniform 型鏈節點與邊的 x0x_0 logits反向 posterior,一步更新全圖

兩個觀察。第一,target 那一欄幾乎沒有變化:所有系統都在學 x0x_0 的 posterior,差別全在 path 與 sampler——這印證了 U4.0 的盤點:「在每個 tt 做回歸」是離散世界裡活得最好的那一環。第二,sampler 那一欄是目前變動最快的地方:信心排序、block、remasking、η\eta——它們都在對付同一個東西,U4.3 的因子化誤差,而且都是取樣時的旋鈕、不必重訓。這和連續世界裡 solver 與 εt\varepsilon_t 的研究地位一樣。

先消化一下

想一想

LLaDA 用 NN 步生成長度 LL 的序列。「NLN\ll L 時比 AR 快很多」這句話的代價是:

想一想

DiGress 把邊的 forward chain 終點設成資料裡邊種類的 marginal(大多是「沒有鍵」),而不是均勻分佈。這動的是哪個槽位、為什麼?

想一想

Multiflow 讓結構(連續)與序列(離散)共同生成。這裡「配對」旋鈕的角色是:

參考文獻

  1. Nie, S., Zhu, F., You, Z., Zhang, X., Ou, J., Hu, J., Zhou, J., Lin, Y., Wen, J.-R., Li, C. Large Language Diffusion Models. 2025.(LLaDA。)
  2. Sahoo, S. S. et al. Simple and Effective Masked Diffusion Language Models. NeurIPS 2024.(MDLM。)
  3. Lou, A., Meng, C., Ermon, S. Discrete Diffusion Modeling by Estimating the Ratios of the Data Distribution. ICML 2024.(SEDD。)
  4. Alamdari, S., Thakkar, N., van den Berg, R., Tenenholtz, N., Strome, B., Moses, A., Lu, A. X., Fusi, N., Amini, A. P., Yang, K. K. Protein Generation with Evolutionary Diffusion: Sequence is All You Need. bioRxiv 2023(v2, 2024-11).(EvoDiff。)
  5. Campbell, A., Yim, J., Barzilay, R., Rainforth, T., Jaakkola, T. Generative Flows on Discrete State-Spaces: Enabling Multimodal Flows and Applications to Protein Co-Design. ICML 2024.(Multiflow。)
  6. Vignac, C., Krawczuk, I., Siraudin, A., Wang, B., Cevher, V., Frossard, P. DiGress: Discrete Denoising Diffusion for Graph Generation. ICLR 2023.
  7. Chang, H., Zhang, H., Jiang, L., Liu, C., Freeman, W. T. MaskGIT: Masked Generative Image Transformer. CVPR 2022.(信心排序的 remasking heuristic。)
  8. Wang, G., Schiff, Y., Sahoo, S. S., Kuleshov, V. Remasking Discrete Diffusion Models with Inference-Time Scaling. 2025.(ReMDM。)
  9. Arriola, M., Gokaslan, A., Chiu, J. T., Yang, Z., Qi, Z., Han, J., Sahoo, S. S., Kuleshov, V. Block Diffusion: Interpolating Between Autoregressive and Diffusion Language Models. ICLR 2025.(BD3-LM:block 之間 AR、block 內 diffusion,KV cache 部分回來。)
  10. Inception Labs, Khanna, S., Kharbanda, S., Li, S., Varma, H., Wang, E., Birnbaum, S., Luo, Z., Miraoui, Y., Palrecha, A., Ermon, S., Grover, A., Kuleshov, V. Mercury: Ultra-Fast Language Models Based on Diffusion. 2025.(商用規模的 diffusion 語言模型。)
  11. Wang, X., Zheng, Z., Ye, F., Xue, D., Huang, S., Gu, Q. Diffusion Language Models Are Versatile Protein Learners. ICML 2024.(DPLM。)