你有沒有想過,寫一段話之前,你的腦子裡其實已經大致知道這段話會有多長?
不是精確到字數,而是一種感覺。比如你要寫一條微信消息說"我到了",絕不會寫成一篇論文;你要寫一份辭職信,也不會只發三個字。這種對長度的預判,幾乎是我們說話寫字時的本能,快到你根本意識不到它的存在。
但對於一類叫做掩碼擴散模型
的AI來說,這件本能的事,恰恰是它最大的軟肋。
掩碼擴散語言模型:一種和ChatGPT那種"一個字一個字往後寫"的自回歸模型
不同的AI架構,它的生成方式更像是先擺好一整塊畫布,上面全是空白格子(術語叫"掩碼"),然後通過多輪疊代,逐步把這些空白格子填成正確的文字。
這篇來自北京大學的論文,題目叫《面向掩碼擴散機器翻譯的長度自適應解碼》,作者是Yan Zhan
、Mengkai Hou
、Wanting Zhang
和Zhijun Gao
,戳中了這類AI模型一個此前很少被認真研究的痛點:翻譯之前,你到底該給它準備一塊多大的畫布?
畫布太小會丟詞,畫布太大會注水
先說說這個問題到底有多要命。
想像你是一個裝修師傅,接到一個任務:"把這句話翻譯成中文"。但客戶在動工前先遞給你一張已經量好尺寸的畫布,上面寫著"只能填6個格子",不能多也不能少。你打開原文一看,是"Tap Reset Now."(意思是"現在點擊重置")。如果客戶給你的畫布只有5個格子,你要怎麼把"點擊"和"重置"這兩個動作都塞進去還要保證通順?現實中最可能發生的是,你保住了"現在"這個詞,卻把整個動作給丟了。
這不是我瞎編的場景。論文裡真實的實驗案例顯示,用一種基於訓練語料統計出來的"平均翻譯長度比例"(論文裡叫Ratio,也就是不管什麼句子,都按照英文和中文歷史上大致的字數比例分配畫布)來決定畫布大小時,這句"Tap Reset Now."被翻譯成了"現在。",COMET質量分只有0.47。而當畫布多給一個格子,變成6格,翻譯輸出就變成了"點擊重置。",分數飆升到0.91。
多一個格子,分數幾乎翻倍,這就是畫布尺寸的分量。
COMET-22
:一種業界公認的機器翻譯質量自動評分工具,分數越高說明翻譯越準確流暢,滿分是1。
這不是孤立的例子。論文還舉了第二個案例,源句裡帶著一個叫#PRS_ORG#的占位符(在實際的商業和技術文本里,這種占位符經常代表一個具體的組織名或產品名,翻譯時必須原樣保留),畫布給短了,這個占位符直接被丟沒了,分數從0.87掉到0.43。
問題的核心在這裡:固定畫布的擴散模型和自回歸模型有一個根本區別。自回歸模型(像常見的GPT系列)是一個字接一個字往後寫,寫到某個位置覺得該收尾了,就吐出一個"結束符",翻譯就自然停止,天然會根據內容長短調整輸出長度。但掩碼擴散模型不是這樣,它訓練的時候是先給定一整塊畫布,結束符被放在畫布的某個固定位置上,所以在推理階段,如果你給的畫布本身長度不對,模型基本上只能"盡力填滿你給的空間",它沒有一個中途喊停或者主動加長的機制。
這就好比讓一個人在一張固定尺寸的紙上寫作文,紙給小了,內容被硬生生截斷;紙給大了,為了填滿空白,人會不由自主地開始重複、囉嗦,甚至編造一些沒影的內容來湊字數。如果不給這張紙設定合理尺寸,寫出來的東西就會不是缺胳膊少腿,就是注水嚴重。這正是論文反覆強調的一句話:內容太短會丟失資訊,太長模型就有了"編造、重複、稀釋"的空間。
那問題來了,業界現在怎麼解決這件事的?論文裡提到的現狀挺讓人意外:大部分研究掩碼擴散解碼的工作,都在研究"該按什麼順序把空白格子填上"(這個問題論文裡叫"揭示順序
",reveal order),卻幾乎沒有人認真研究過"這塊畫布到底該多大"這件更前置、更基礎的事。
而現有能用的長度決定方法基本只有兩種,一種是拿標準答案的長度直接告訴模型(這在正式評測里叫作弊,只能當作理論上限參考,不能算真正的推理方法),另一種就是剛才說的固定比例,全篇文章不管什麼句子都套用同一個語料統計出來的比例。這兩種方法一個不現實,一個太粗糙。這就是這篇論文要出手解決的空當。
Entropy-Valley
:讓AI自己說"我準備好了嗎"
研究者想出的辦法,名字取得挺有畫面感,叫Entropy-Valley(熵谷,論文裡簡稱EV)。
它的核心思路其實特別樸素:既然模型自己知道自己"有沒有把握",那就乾脆讓它在真正開始翻譯之前,先"試探"幾種不同長度的畫布,看看哪種長度它填起來最有把握,選那個。
這裡要理解一個關鍵概念。
預測熵
:熵在這裡可以理解成"不確定性"的量化指標。如果模型對某個空白格子該填什麼字非常確定,熵就低;如果它拿不準,好幾個候選字的概率都差不多,熵就高。
具體怎麼操作?論文設計了一套四步流程。
第一步,先準備一小批候選畫布長度,不是隨便定的,而是根據訓練語料里源語言和目標語言的歷史長度比例,劃出一個小範圍。比如英譯中場景下,歷史中位比例是0.8,也就是通常中文字數大概是英文單詞數的0.8倍,那麼候選比例就設在0.70到0.90之間,取五個刻度:0.70、0.75、0.80、0.85、0.90。每個比例乘以源句長度,就得到一個候選畫布長度。
第二步,對每一個候選長度,都把畫布填滿純空白(也就是全部格子都標記為"待填"狀態),讓模型做一次前向計算,記錄下模型對每個格子給出的預測分布,算出這塊畫布整體的平均熵。
第三步,比較這幾塊候選畫布的平均熵,選熵最低的那個,也就是模型看起來最有把握、最"輕鬆"能填好的那個長度。這個被選中的最低點,就是"熵谷"這個名字的由來。
第四步,只在這個被選中的畫布上,正式跑完整的去噪解碼流程,把翻譯真正生成出來。
這個設計給我的第一反應是,這不就是"讓模型先自己摸個底"嗎?確實是。而且關鍵在於,這個摸底過程不需要額外訓練任何東西,不需要標準答案,也不需要一個專門訓練出來的"長度預測器",用的完全是模型自己已經具備的能力,只是換了個角度去問它一個問題。
這裡可以打一個比方。假設你去五家不同的裁縫店,把同一塊布料和同一個身材數據交給他們,讓每家先估算一下"如果我照這個尺寸裁,會不會有把握做得合身",而不是直接讓他們動手裁剪。你不需要每家都真正做出一件成品來比較(那樣成本太高),只需要看哪家裁縫說"這個尺寸我有信心"的語氣最堅定,然後把活兒真正交給那一家去完成。如果沒有這個"先問一句有沒有把握"的環節,你可能得五件衣服都做出來才知道哪件合身,浪費布料不說,還費時費力。EV做的正是這件事,用一次輕量級的"探測"代替了昂貴的"全部試錯"。
值得強調的是,EV選出來的這個長度,目標壓根不是去猜中標準答案的真實長度。論文原話說得很直接:"目標不是恢復真實長度,EV選擇的是當前骨幹模型看起來最有準備去填好的那個候選長度。"這句話背後藏著一個挺深的道理:翻譯質量好不好,不完全取決於長度是否精確匹配參考譯文,而取決於給出的這塊畫布,模型是不是真的有能力把它填滿、填對。
論文用一張圖很直觀地展示了這一點。把每個句子的"長度誤差"(也就是選出的長度和參考譯文長度差了多少個詞)和它的翻譯質量分數畫在一張散點圖上,你會發現EV選出的長度平均誤差是2.51個詞,比固定比例方法的3.11個詞要小一些,但離參考長度的誤差為0(也就是完美匹配長度的理論上限)還差得遠。可是即便長度誤差沒有降到最低,EV依然拿到了固定比例方法的65%左右質量提升。這說明質量好壞和長度是否"精確復刻標準答案"這兩件事,壓根不是一回事。
三個語言方向的實測:中文和德語命運不同
光有想法不夠,得看實測數據能不能站住腳。
研究團隊選用的基礎模型是LLaDA-8B,一個80億參數級別的開源掩碼擴散語言模型,在其基礎上用LoRA做了微調。
LoRA:一種參數高效微調技術,全稱是低秩適配。它不去動原模型里幾乎所有的參數,只在模型的某些關鍵層旁邊加一個體積很小的"外掛"結構去學習新任務,這樣訓練成本大幅降低,同時保留了原模型的大部分能力。
微調數據用的是WMT19的20萬條訓練語句對,覆蓋英譯中、中譯英、英譯德三個方向,每個方向獨立訓練三次取平均,最後在WMT22測試集上(每個方向2037條句子)做評測。
結果分方向來看,差異挺明顯。英譯中方向,固定比例方法的COMET分是0.8345,EV提升到0.8517,理論上限(用參考答案長度)是0.8610。算一下差距回收比例,EV吃掉了這個差距的64.9%。中譯英方向更漂亮,固定比例是0.8266,EV是0.8431,理論上限0.8519,差距回收65.3%。而英譯德方向就明顯吃力一些,固定比例0.7170,EV只提到0.7240,理論上限0.7382,差距回收只有33.0%。
對應的sacreBLEU分數(另一種更傳統的翻譯質量評分方式,基於詞語重疊程度)也呈現同樣的規律,英譯中提升1.85分,中譯英提升1.63分,英譯德只提升0.82分。
為什麼英譯德這一方向表現明顯弱一截?論文給出了一個挺誠實的分析。他們額外訓練了一個用同樣微調數據訓練的LLaMA-3-8B自回歸模型作為對照,結果發現在英譯德這個方向上,這個自回歸對照模型比LLaDA模型(即便是配了理論上限的參考長度)還要高出7.4分左右,比配了EV的LLaDA模型高出接近9分。這說明英譯德方向的短板,壓根不是"畫布尺寸沒選對"這件事能解釋的,而是這套掩碼擴散骨幹模型本身在處理英德這種語言對時,能力就是有欠缺的。EV能做的事情有邊界,它只能優化"選多大的畫布"這一層,選不到畫布之外那些和模型本身能力有關的問題。
這裡有個統計學上的細節也值得一提。論文用配對自助法(bootstrap)和威爾科克森符號秩檢驗(Wilcoxon signed-rank test)這兩種統計顯著性檢驗方法反覆驗證結果是不是偶然的。中英方向的結果穩穩地通過了兩種檢驗,說明EV帶來的提升不是噪音;而英譯德方向只通過了威爾科克森檢驗,沒通過自助法檢驗,這也印證了前面說的"英譯德是一個邊界情況",證據強度確實弱一些。
換個AI模型試試:結論還成立嗎
一個研究結論如果只在一個特定模型上成立,說服力總歸有限。研究團隊於是把同樣的實驗流程搬到另外兩個不同的掩碼擴散骨幹模型上做驗證,一個叫Dream-Base(基於Qwen2.5-7B繼續預訓練而來),另一個叫DiffuLLaMA(基於Llama-2-7B繼續預訓練而來)。
結果顯示,無論用哪個骨幹模型,EV在所有測試方向上都穩定超過了固定比例方法這一點沒有變化。但差距回收的具體比例,隨著模型不同而有明顯波動。Dream-Base在三個方向上的差距回收在54%到69%之間,相對均衡;而DiffuLLaMA在英譯德方向反而回收了66.1%,比它在中文相關方向的表現(11.8%和22.3%)要好得多。
研究者對這個現象給出了一個合理猜測:DiffuLLaMA用的是Llama-2的分詞器,詞表只有3.2萬個詞,覆蓋中文的能力天然弱一些;而Dream-Base用的Qwen2的分詞器詞表有15.2萬個詞,對中文的支持要好得多。分詞器好不好,直接決定了模型"理解"和"生成"某種語言的天花板。這也再次提醒我們,EV解決的是畫布尺寸這個層面的問題,它不能替代一個好的分詞器或一個訓練充分的骨幹模型該做的事。
分詞器:把連續文本切分成模型能處理的最小單位(詞元)的工具,切分得好不好,直接影響模型處理某種語言時的精細度和效率。
論文特別誠實地指出了一點:換模型的同時,分詞器、初始化方式、預訓練語料混合比例、模型架構全都一起換了,所以這個跨模型驗證只能說明"EV這個思路在不同模型上都有效",不能精確歸因到底是哪一個因素在起決定性作用。這是一種值得學習的科研態度,不誇大自己實驗能證明的邊界。
不只是數字:三位專業翻譯怎麼看
自動評分工具再准,終究是機器打的分。這篇論文額外找了三位中英雙語的專業翻譯人員,做了一次人工評測,來驗證COMET分數的提升是不是真的對應著人類感知到的翻譯質量提升。
評測方式是這樣的:從英譯中和中譯英各挑100條WMT22測試句子,把EV和固定比例方法生成的譯文匿名打亂順序(每條句子隨機決定誰是A誰是B,評審看不出來),讓評審分別從"充分性"(內容是否完整準確傳達)和"流暢性"(讀起來是否自然)兩個維度打1到5分,再給出一個整體偏好投票。
充分性:衡量譯文有沒有把原文的意思完整、準確地表達出來,缺漏、錯譯都會拉低這個分數。
流暢性:衡量譯文讀起來順不順、像不像人話,跟內容對不對是兩件事。
結果呈現出一個挺有意思的方向性差異。中譯英方向,EV在充分性上比固定比例方法高出0.50分(滿分5分的量表里,這個差距不算小),三位評審的整體偏好投票是45票選EV,25票選固定比例,30票打平。而英譯中方向,充分性優勢就小得多,只有0.18分,多數句子在偏好投票里被判定為打平(53票打平,28票選EV,19票選固定比例)。
兩個方向流暢性的變化都不大,這個細節其實特別關鍵。它說明EV帶來的提升主要體現在"有沒有把內容說全"這件事上,而不是"說得好不好聽"。這和前面講的畫布尺寸這個機制完全對得上:畫布給對了,內容才有地方放,至於放進去的內容語法通不通順,那是另外一套能力決定的事情,EV這層機制管不到。
論文還專門計算了COMET自動分數和人工充分性評分之間的相關係數,英譯中方向是0.637,中譯英方向是0.689,都是中等偏強的正相關,且統計顯著(p
是"選長度"重要,還是"選順序"重要
前面提到過,掩碼擴散解碼領域一直更關心"該按什麼順序把空白格子填上"這個問題,而不是"畫布該多大"。這篇論文專門設計了一個對照實驗,直接把這兩個問題放在同一個天平上稱一稱,看到底哪個更重要。
實驗設計很巧妙:先把畫布長度死死鎖定在參考譯文的真實長度(排除長度這個變量),然後去測試幾種不同的"揭示順序"策略,看看質量分數能差多少。
具體測試了幾種順序方案,包括標準的最小熵優先揭示(MED,也就是先填模型最有把握的格子,這是論文裡默認使用的策略)、反向的"先填源語言依賴性最強的格子"(SIG-first)以及它的反向版本,還有幾種混合策略、嚴格從左到右順序、純隨機順序。
結果是,在畫布長度固定的前提下,這六種源語言引導的揭示順序方案之間,最高分和最低分之間只相差0.0081個COMET點。而嚴格從左到右和純隨機順序的表現,都明顯低於默認的最小熵優先策略。
再對比一下EV帶來的提升幅度:固定比例方法是0.8345,EV是0.8517,理論上限是0.8610,差距是0.0265個COMET點。
把這兩個數字放在一起看:揭示順序策略之間最大的差距是0.0081,而EV相對於固定比例的提升是0.0196(0.8517減0.8345),幾乎是揭示順序差距的2.4倍。如果把理論上限也算進去,整個長度選擇問題的空間跨度是揭示順序空間跨度的3.3倍。
這個對照實驗得出的結論相當明確,也很有分量:在這套掩碼擴散翻譯系統里,決定先填哪個格子,遠不如決定畫布該有多大這件事重要。
這就像蓋房子。工人先砌哪個角、按什麼順序擺磚頭,對最終房子質量當然有影響,但如果地基面積本身畫錯了,房子小了住不下人,房子大了浪費材料還容易結構不穩,這種問題不是靠調整砌磚順序能補救的。論文用這組實驗說的正是這個道理:過去大家一直在研究"怎麼砌牆",卻沒顧上"地基該多大"這件更基礎的事,而恰恰是後者,對最終結果的影響權重更大。
覆蓋率數據:占位符和數字都被拯救了
除了整體質量分數和人工評測,論文還專門統計了一類更具體、更容易被感知到的錯誤:源文本里的占位符和數字,有沒有被保留下來。
這個指標的意義在於,占位符(比如剛才提到的#PRS_ORG#這種代表組織名的標記)和數字,是翻譯里最不能出錯的內容,一旦漏掉,輕則理解出錯,重則整句話意思全變。
統計結果顯示,在英譯中方向,固定比例方法只保住了66.9%的占位符,EV則保住了89.1%,提升了22.2個百分點,這個提升區間的置信區間下界都在12.4個百分點以上,說明這不是偶然波動。數字保留率也從77.6%提升到81.3%。
而在中譯英方向,固定比例方法本身對占位符和數字的保留率已經比較高(96.6%和80.7%),EV的提升幅度就小很多(2.9和1.9個百分點)。這說明中譯英方向翻譯質量的提升,主要靠的不是這類"字面內容保留"的機制,還有別的因素在起作用,論文也坦率承認這部分機制目前還沒研究清楚。
論文還按照"參考譯文長度除以源句長度"這個比例,把句子分成不同壓縮程度的組別,觀察EV的提升在哪個組別里最明顯。結果發現,提升幅度最大的那一組,恰恰是需要的壓縮比例落在候選網格範圍內、且是最主流的一組(占了整個測試集將近一半的句子),這組的COMET提升達到0.0346分。而對於那些需要極端壓縮(目標譯文遠比源句短)的句子,提升幅度就小很多,只有0.0054分。
邊界在哪裡:候選網格框住了什麼
前面提到的Figure 1里第三個案例特別值得展開講一講,因為它恰好揭示了EV這個方法的天花板在哪裡。
源句是"Please give me a moment."(請給我一點時間),標準參考譯文是"請等我一下",長度是6個字,對應的真實壓縮比例大約是0.6。而EV設定的候選網格範圍是0.70到0.90,這意味著無論EV怎麼"熵谷探測",它能選到的最短畫布長度也不可能低於源句長度乘以0.70。
結果就是,固定比例方法(湊巧長度設為6,正好等於參考長度)翻譯出"請等一下",COMET分數0.93;而EV因為網格範圍限制,最短只能選到7個字符的畫布,翻譯出"請給我一會兒",雖然意思也對,但分數反而降到0.77。
這個例子的意義在哪?它說明EV這套機制的能力邊界,是由候選網格本身的寬窄決定的。網格設得太窄,遇到需要極端壓縮的句子就無能為力;網格設得太寬,又會引入更多噪音、增加計算成本。論文附錄里做了網格寬窄的敏感性測試,發現更寬的網格並不總是更好,這也支持了論文選擇一個緊湊固定網格的設計思路,而不是無限制地搜索所有可能長度。
論文對這596個EV表現不如固定比例方法的句子做了失敗原因歸類,發現56.9%的失敗屬於"網格內選錯了"(也就是正確答案其實在候選網格範圍內,但EV憑熵值選中的不是最優的那個),21.6%是"超出網格範圍過度膨脹",21.1%是"壓縮不足"。這個數據分布說明,EV目前最大的短板不是候選網格設置得不合理,而是熵這個信號本身有時候會誤導選擇,選中了一個次優的候選長度。這也為後續研究指明了一個方向:如果能設計一種更聰明的候選長度生成機制,根據熵值曲線的形狀動態調整搜索範圍,而不是死守一個固定網格,或許能進一步壓縮這部分選錯的比例。
這項研究留下的問題,以及它給出的誠實答案
論文最後專門用一節講了這個方法的局限,這種坦誠在很多論文裡其實不常見,值得單獨說一說。
英譯德方向是最明顯的邊界。就像前面提到的,無論是理論上限還是EV,都被同樣數據訓練出來的自回歸對照模型甩開了七八個百分點,說明這個方向的短板根源不在長度選擇上,而在於骨幹模型本身處理英德這種語言對的能力有欠缺。論文還做了一個"解碼步數"的補充實驗,發現在解碼步數達到64步以上時,固定比例方法反而略微超過了EV,這從另一個角度提示,在計算預算充足的情況下,長度選擇帶來的紅利會被攤薄。
人工評測目前只覆蓋了英譯中和中譯英,英譯德和額外測試的德譯法方向都沒有做人工評測,這部分的結論只能依賴自動指標,說服力打了折扣。
候選比例網格是針對每個語言方向單獨設定的,而且是基於WMT22子集的診斷性比較來確定的,如何把這套"設定網格"的流程更系統化、更普適地遷移到新的語言方向,目前還是一個開放問題。論文提出了一個值得嘗試的下一步方向:設計一種"壓縮感知"的候選生成機制,當熵值曲線提示當前固定網格不夠用時,能自動擴展或偏移候選範圍,而不是死守一個預先劃定好的區間。
寫在後面
讀完這篇論文,最觸動我的其實是那個對照實驗的結論,長度選擇比揭示順序重要3倍這個數字。
這多少有點反常識。這個領域這幾年幾乎所有的注意力都投在了"怎麼決定填格子的順序"上,從MaskGIT到各種學習生成順序的方法,大家默認這是那個更值得優化的問題。而這篇論文用一個很乾淨的對照實驗說明,在機器翻譯這個具體場景里,一個更前置、更基礎的決定,畫布到底該多大,權重反而更大。這提醒我一件事:有時候一個領域裡"大家都在研究的問題",未必是那個真正卡住效果的問題。真正的瓶頸可能藏在沒人多問一句的地方。
另一個讓我一直在想的細節是那張長度誤差和翻譯質量的散點圖。EV選出的長度和參考答案的真實長度平均還差著2.51個詞,但翻譯質量卻已經追上了理論上限差距的65%。這說明"猜中標準答案"和"做出好翻譯"根本是兩件不完全重合的事,一個足夠讓模型"有把握去填"的長度,未必是那個和參考答案字數分毫不差的長度。這對所有想用長度預測去優化生成任務的人,都是一個值得記住的提醒。
如果給你一塊畫布,尺寸不一定要精確到和別人畫的那張一模一樣,重要的是,你確實有能力把它填滿、填對。
Q&A
Q1:Entropy-Valley是什麼?
A:Entropy-Valley(熵谷,簡稱EV)是一種給掩碼擴散翻譯模型選擇合適輸出長度的免訓練方法,它通過讓模型對幾個候選長度分別做一次全空白探測,比較預測的不確定性(熵),選出熵最低、模型最有把握填好的那個長度作為最終畫布。
Q2:為什麼掩碼擴散翻譯模型需要提前決定輸出長度?
A:因為這類模型不像GPT那樣一個字一個字往後寫、寫完自然停止,它需要先擺好一整塊固定尺寸的空白畫布再逐步填字,畫布給短了會丟內容,給長了模型會重複或注水,所以選對長度這一步至關重要。
Q3:Entropy-Valley方法效果好不好,有沒有實測數據支撐?
A:在英譯中和中譯英方向,EV分別追回了參考長度理論上限提升幅度的64.9%和65.3%,人工評測也顯示中譯英方向的內容充分性明顯提升;但在英譯德方向效果較弱,只追回了33%,這被認為是模型本身能力的局限而非長度選擇的問題。






