譯者 | 朱先忠
審校 | 重樓
簡介
如果我們能讓語言模型更像人類一樣思考,結果會怎樣?如果它們不是一次寫一個字,而是先勾勒出自己的想法,然后逐漸完善,結果又會怎樣?
這正是大型語言擴散模型(LLaDA)所引入的:一種與大型語言模型(LLM)中當前使用的文本生成不同的方法。與傳統的自回歸模型(ARM)不同,后者按順序(從左到右)預測文本,而LLaDA利用類似擴散的過程來生成文本。它不是按順序生成標記,而是逐步細化掩碼文本,直到形成連貫的響應。
在本文中,我們將深入探討LLaDA的工作原理、它的重要性以及它如何有可能塑造下一代LLM。
LLM的現狀
要理解LLaDA所代表的創新,我們首先需要了解當前大型語言模型(LLM)的運作方式。現代LLM遵循已成為行業標準的兩步訓練流程:
- 預訓練:模型通過自監督學習,預測海量文本數據集中的下一個符號,從而學習一般的語言模式和知識。
- 監督微調(SFT:Supervised Fine-Tuning):模型在精心策劃的數據上進行改進,以提高其遵循指令和生成有用輸出的能力。
請注意,當前的LLM也經常使用RLHF來進一步優化模型的權重,但LLaDA并未使用這種方法;因此,我們在此跳過有關RLHF的討論。
這些模型主要基于轉換器架構,使用下一個標記預測一次生成一個標記的文本。
用于文本生成的簡化式轉換器架構(圖片來自作者本人)
以下是數據如何通過此類模型的簡化說明。每個標記都嵌入到向量中,并通過連續的轉換器層進行轉換。在當前的LLM(LLaMA、ChatGPT、DeepSeek等)中,分類頭僅在最后一個標記嵌入上使用,以預測序列中的下一個標記。
這得益于掩碼自注意力機制的概念:每個標記都會關注它之前的所有標記。我們稍后會看到LLaDA如何在其注意力層中擺脫掩碼。
注意力過程:輸入嵌入與查詢、鍵和值矩陣相乘以生成新的嵌入(圖片由作者本人提供,靈感來自【參考文獻3】)
雖然這種方法取得了令人印象深刻的成果,但也存在明顯的局限性,其中一些局限性促進了LLaDA的發展。
當前LLM的局限性
當前的LLM面臨幾個關鍵挑戰:
計算效率低下
想象一下,如果你要寫一本小說,你一次只能思考一個單詞,而對于每個單詞,你都需要重讀到目前為止寫過的所有內容。這基本上就是當前LLM的運作方式——它們一次預測一個標記,需要對每個新標記的前一個序列進行完整的處理。即使使用KV緩存等優化技術,這個過程也相當耗時且計算量巨大。
有限的雙向推理
傳統的自回歸模型(ARM)就像作家一樣,他們永遠無法展望或修改迄今為止寫的內容。他們只能根據過去的標記來預測未來的標記,這限制了他們推理文本不同部分之間關系的能力。作為人類,我們通常在寫下來之前對自己想要表達的內容有一個大致的了解,而目前的LLM在某種程度上缺乏這種能力。
數據量
現有模型需要大量訓練數據才能獲得良好的性能,這使得它們的開發是資源密集型的,并且潛在地限制了其在數據可用性有限的專業領域的適用性。
何謂LLaDA
LLaDA通過用“基于擴散”的過程取代傳統的自回歸,引入了一種根本不同的語言生成方法(我們稍后將深入探討為什么這被稱為“擴散”)。
讓我們從預訓練開始,一步一步地了解這是如何運作的。
LLaDA預訓練
請記住,在預訓練階段我們不需要任何“標記”數據。我們的目標就是將大量原始文本數據輸入到模型中。對于每個文本序列,我們執行以下操作:
- 我們固定最大長度(類似于ARM)。通常,這個值可能是4096個標記。1%的時間,序列的長度是在1到4096之間隨機采樣并填充的,以便模型也能接觸到較短的序列。
- 我們隨機選擇一個“掩碼率”——例如,可以選擇40%。
- 我們以0.4的概率掩碼每個標記。“掩碼”到底是什么意思?我們只需用一個特殊的標記替換標記:<MASK>。與任何其他標記一樣,此標記與模型可以在訓練期間處理和解釋的特定索引和嵌入向量相關聯。
- 然后,我們將整個序列輸入到基于轉換器的模型中。此過程將所有輸入嵌入向量轉換為新嵌入。我們將分類頭應用于每個掩碼標記,以獲得每個標記的預測。從數學上講,我們的損失函數對序列中所有掩碼標記的交叉熵損失進行平均,如下所示:
LLaDA使用的損失函數(圖片來自作者本人)
- 然后……我們對數十億或數萬億個文本序列重復此過程。
請注意,與ARM不同,LLaDA可以充分利用文本中的雙向依賴關系:它不再需要在注意層中進行掩碼。然而,這可能會增加計算成本。
希望你能看到訓練階段本身(數據流入模型)與任何其他LLM非常相似。我們只是預測隨機掩碼的標記,而不是預測接下來會發生什么。
LLaDA SFT(有監督微調)
對于自回歸模型來說,SFT(Supervised Fine-tuning:有監督微調)與預訓練非常相似,只是我們使用的是成對的(提示,響應),并且希望在給出提示作為輸入時生成響應。
這與LlaDA的概念完全相同!模仿預訓練過程:我們只需傳遞提示和響應,僅從響應中掩碼隨機標記,然后將完整序列輸入模型,該模型將預測響應中缺失的標記。
推理的創新
創新是LLaDA變得更加有趣的地方,并且真正利用了“擴散”范式。
到目前為止,我們總是隨機掩碼一些文本作為輸入,并要求模型預測這些標記。但在推理過程中,我們只能訪問提示,并且我們需要生成完整的響應。你可能會認為(這沒錯),該模型已經看到了SFT期間掩碼率非常高(可能為1)的示例,并且它必須以某種方式學習如何從提示生成完整的響應。
然而,在推理過程中一次性生成完整響應可能會產生非常糟糕的結果,因為模型缺乏信息。相反,我們需要一種方法來逐步完善預測,這就是“重新掩碼(Remasking)”的關鍵思想的用武之地。
文本生成過程的每個步驟的工作原理如下:
- 將當前輸入提供給模型(這是提示,后跟<MASK>標記)。
- 模型為每個輸入標記生成一個嵌入。我們僅獲得<MASK>標記的預測。這是重要的一步:我們重新掩碼其中的一部分。具體來說:我們只保留“最佳”標記,即具有最佳預測和最高置信度的標記。
- 我們可以使用這個部分未掩碼的序列作為下一步生成步驟的輸入并重復,直到所有標記都被掩碼。你可以看到,有趣的是,與ARM相比,我們對生成過程的控制力更強:我們可以選擇重新掩碼0個標記(僅一個生成步驟),或者我們可以決定每次只保留最佳標記(步驟數與響應中的標記數相同)。顯然,這里需要在預測質量和推理時間之間進行權衡。
讓我們用一個簡單的例子來說明這一點(在這種情況下,我選擇在每一步保留最好的2個標記):
LLaDA生成過程示例(圖片來自作者本人)
請注意,在實踐中,重新掩碼步驟的工作方式如下。我們不會重新掩碼固定數量的標記,而是會隨著時間的推移重新掩碼一定比例的s/t個標記,從t=1直到降至0;其中,s在【0,t】范圍。具體而言,這意味著隨著生成步長數量的增加,我們重新掩碼的標記會越來越少。
舉例:如果我們想要N次采樣(因此進行了N次離散的操作,從t=1直到t=1/N,步長為1/N),那么取s=(t-1/N)是一個不錯的選擇,并確保在過程結束時s=0。
下圖總結了上面描述的3個步驟。其中,“掩碼預測器(Mask predictor)”表示LLM(即LLaDA),負責預測掩碼標記。
使用LLaDA進行的三個步驟:預訓練(a)、SFT(b)和推理(c)。(來源:【參考文獻1】)
自回歸和擴散可以結合起來嗎?
LLaDA中開發的另一個巧妙的想法是將擴散與傳統的自回歸生成相結合,以充分利用兩全其美的優勢!這稱為半自回歸擴散。
- 將生成過程分成多個塊(例如,每個塊有32個符號)。
- 目標是一次生成一個塊(就像我們在ARM中一次生成一個令牌一樣)。
- 對于每個區塊,我們應用擴散邏輯,逐步揭開標記以顯示整個區塊。然后繼續預測下一個區塊。
半自回歸過程(來源:【參考文獻1】)
這是一種混合方法:我們可能會失去模型的一些“向后”生成和并行化能力,但我們可以更好地“引導”模型走向最終的輸出。
我認為這是一個非常有趣的想法,因為它很大程度上取決于可以調整的超參數(塊數)。我認為不同的任務可能從反向生成過程中受益更多,而其他任務可能從從左到右的更“引導”的生成中受益更多(更多內容見最后一段)。
為何要“擴散”?
我認為有必要簡要解釋一下這個術語的真正來源。它反映了與圖像擴散模型(如Dall-E)的相似性,這些模型在圖像生成任務中非常流行。
在圖像擴散中,模型首先向圖像添加噪聲,直到無法識別,然后逐步學習重建圖像。LLaDA將這個想法應用于文本,通過掩碼標記而不是添加噪聲,然后逐步取消掩碼以生成連貫的語言。在圖像生成的上下文中,掩碼步驟通常稱為“噪聲調度”,而反向(重新掩碼)是“去噪”步驟。
擴散模型發揮作用的方式(來源:【參考文獻2】)
你還可以將LLaDA視為某種離散(非連續)擴散模型:我們不會向標記添加噪音,而是通過掩碼來“停用”某些標記,然后模型學習如何揭示其中的一部分。
結果
讓我們來看看LLaDA的一些有趣的結果。
你可以在論文中找到所有結果。我選擇在這里重點介紹我認為最有趣的內容。
- 訓練效率:LLaDA的性能與具有相同數量參數的ARM相似,但在訓練期間使用的符號少得多(并且沒有RLHF)!例如,8B版本使用大約2.3T符號,而LLaMa3則使用15T符號。
- 針對不同的任務使用不同的塊和答案長度:例如,對于數學數據集,塊長度特別大,并且該模型在此領域表現出色。這可能表明數學推理可能更多地受益于基于擴散和向后的過程。
來源:【參考文獻1】
- 有趣的是,LLaDA在“逆序詩歌完成任務”上表現更好。此任務要求模型以相反的順序完成一首詩,從最后一行開始,然后向后完成。正如預期的那樣,ARM因其嚴格的從左到右的生成過程而陷入困境。
來源:【參考文獻1】
上述實驗證明,LLaDA不僅僅是ARM的一個實驗性替代品:它在效率、結構化推理和雙向文本生成方面顯示出真正的優勢。
結論
我認為LLaDA是一種很有前途的語言生成方法。它能夠并行生成多個標記,同時保持全局一致性,這無疑可以帶來更高效的訓練、更好的推理,以及用更少的計算資源實現更好的上下文理解。
除了效率之外,我認為LLaDA還帶來了很大的靈活性。通過調整生成的塊數和生成步長數等參數,它可以更好地適應不同的任務和約束,使其成為滿足各種語言建模需求的多功能工具,并允許更多人為控制。擴散模型還可以通過更全面的推理在主動AI和代理系統中發揮重要作用。
隨著基于擴散的語言模型研究的不斷推進,LLaDA有望成為邁向更自然、更高效的語言模型的重要一步。雖然現在還為時過早,但我相信從順序生成到并行生成的轉變是人工智能發展的一個有趣方向。
參考文獻
- 【1】Liu,C.,Wu,J.,Xu,Y.,Zhang,Y.,Zhu,X.,& Song,D.(2024)。《大型語言擴散模型》。arXiv預印本arXiv:2502.09992。https://arxiv.org/pdf/2502.09992。
- 【2】Yang,Ling等人。《擴散模型:方法和應用的綜合調查》。ACM Computing Surveys 56.4(2023):1–39。
- 【3】Alammar,J.(2018年6月27日)。《圖解轉換器》。Jay Alammar的博客。https://jalammar.github.io/illustrated-transformer/。
譯者介紹
朱先忠,51CTO社區編輯,51CTO專家博客、講師,濰坊一所高校計算機教師,自由編程界老兵一枚。
原文標題:LLaDA: The Diffusion Model That Could Redefine Language Generation,作者:Maxime Wolf