重點
- Stanford Hazy Research(Christopher Ré、Azalia Mirhoseini、Simran Arora 指導)在 10 月 12 日(美國時間)發表 Next-Concept Modeling(NCM),一種非自迴歸的文字生成框架。
- 先用多尺度殘差 VQ-VAE 把文字編成由粗到細的多層離散代碼,再讓 transformer 一層一層生成,同一層的代碼全部平行預測。
- LM1B 上用 12 次前向計算得到生成困惑度 93.05,最強的擴散基線 DUO 用 128 次、得到 97.30;實測生成時間快 21 倍。
- OpenWebText 快 10 倍、XSum 摘要快 31 倍,品質相當;訓練 token 少 4 到 4.9 倍。
- 實驗都在 LM1B、OpenWebText、TinyStories 這類學界常用的小型基準上,對照組是擴散語言模型,擴展性結果仍是初步的。
要解決什麼
自迴歸模型一次生成一個 token,輸出越長、步數越多。擴散語言模型(diffusion language model,DLM)可以平行修改多個位置,是目前主要的替代路線,但有三個成本:
- 取樣步數一減少,品質就快速下滑。
- 每一步都要處理整條序列。
- 要把訓練資料跑很多遍才有好品質。
NCM 改變的是模型生成的對象。它先生成很短的粗略代碼序列,再逐層生成較長、較細的序列。前幾層很短,所以前幾步特別便宜。
方法:兩個階段
第一階段:多尺度 tokenizer。 一個多尺度殘差向量量化變分自編碼器(residual VQ-VAE)把文字編成多層離散代碼。因為是殘差量化,每一層編碼的是前面各層還沒表達到的部分。做法沿用影像生成的 VAR(逐尺度預測),針對文字改了三處:
- 每一層有自己的 codebook。
- 用 nested dropout 訓練,讓前幾層不依賴後面各層也能帶有意義的資訊。
- 加入 token 層級的重建目標,讓解碼回來的文字準確。
第二階段:生成器。 tokenizer 凍結後,訓練一個 transformer,根據前面各層的累積重建結果預測下一層。前面各層的重建會被縮放到當前這層的位置數,注意力是區塊對角的。訓練時所有層在同一次前向傳播裡一起預測,並隨機破壞一部分條件代碼,讓模型在推論時對自己前幾層的錯誤比較耐受。
推論時由粗到細一層一層生成,每層內部平行;全部層生成完,再由 tokenizer 的解碼器轉成文字。作者說明,名稱裡的「concept」指粗層代碼承載的資訊,個別代碼不一定對應人讀得懂的語意單位。
部落格展示了一個德譯英的例子:生成分 11 層,每一層解碼出的句子逐漸接近參考譯文,最後一層的 BLEU 是 77.8。
層數的消融實驗在 TinyStories 上做:層數 K 取 4、8、16、32,最粗一層固定 1 個代碼、最細一層 128 個。層數越多,生成困惑度越好,但邊際效益遞減。四個 tokenizer 都能重建至少 99.95% 的 token。
結果
| 任務 | NCM | 對照 |
|---|---|---|
| LM1B 無條件生成 | 12 NFE,生成困惑度 93.05,快 21 倍 | DUO:128 NFE,97.30 |
| OpenWebText 無條件生成 | 品質相當,快 10 倍 | 最強擴散基線 |
| XSum 極簡摘要 | ROUGE-L 相同,快 31 倍 | 最強擴散基線 |
| WMT14 德譯英 | 相當或更好 | 最強擴散基線 |
| Sudoku | 所有難度都勝過,NFE 更少 | 自迴歸與擴散基線 |
NFE(number of function evaluations)是生成器被呼叫的次數。生成困惑度由 GPT-2-large 替生成樣本打分,越低越好。為了排除「樣本變單調、困惑度自然變低」的可能,論文另報單樣本的單詞熵:LM1B 上 NCM 是 4.31、DUO 是 4.30,保留資料本身是 4.31。
速度用實際時間量測。作者指出擴散文獻常只報 NFE,忽略每次計算的成本差異。LM1B 的測試在一張 H100 SXM 80GB 上、以 batch 16 生成 1,024 條序列。21 倍同時來自較少的 NFE,以及每步較低的平均成本(前幾層序列很短)。
其他發現:
- 訓練效率:LM1B 與 OpenWebText 上,訓練 token 分別比強擴散基線少約 4.9 倍與 4 倍,已把 tokenizer 與生成器的訓練都算進去。
- 測試時擴展:生成快,同樣時間預算內可以產生更多候選,再用最小貝氏風險(MBR)解碼挑出最好的,WMT14 的 BLEU 與 XSum 的 ROUGE 都因此提高。
- Sudoku:題目越難,NCM 退步越少。作者的假設是由粗到細生成有助於全域規劃,先定整體結構再解決細節。
跟既有工作比
- 自迴歸模型逐 token 生成;NCM 的步數等於層數,與輸出長度無關。
- 擴散語言模型每步都在全長序列上反覆修正;NCM 的早期步驟只處理很短的序列。
- VAR 在影像上從低解析度逐步預測到高解析度;NCM 把這個做法搬到文字,文字沒有現成的解析度,所以層級要靠 tokenizer 學出來。
- 今年 2 月的 ConceptLM(Next Concept Prediction)名稱相近,做法不同:它在一般的下一個 token 預測之外加一個「概念」預測目標,生成仍是自迴歸的。
限制
- 實驗基準都是擴散語言模型文獻常用的小型資料集,對照組是擴散模型。部落格與摘要沒有跟同規模的自迴歸模型比速度,也沒有列出模型參數量。
- 作者自己稱擴展性結果是初步的:參數加大會持續改善困惑度,但還不知道更大規模時是否成立。
- 生成困惑度是參考模型打的分,不是人工評估;作者也承認這個指標無法完整反映品質,所以另做了翻譯與摘要。
- 層數消融只測了 NCM 內部不同深度的影響,無法證明加速完全來自層級結構。
- 層級結構對每個樣本都一樣,tokenizer 與生成器分開訓練。作者列為下一步的方向:聯合訓練兩者,並依題目難度決定何時停止或加算。