這項由澳大利亞昆士蘭大學與澳大利亞聯邦科學與工業研究組織(CSIRO)聯合開展的研究,於2026年5月以預印本形式發布,論文編號為arXiv:2605.07210v1,研究方向歸屬於資訊檢索領域。感興趣的讀者可通過該編號在arXiv平台查閱完整論文。
每當你在搜尋引擎里打下一句話,後台的系統就要在數以億計的文檔里找到最相關的那幾條。這個過程聽起來簡單,實際上卻涉及一套相當精妙的"語義理解"機制——系統不能只靠關鍵詞匹配,還得真正"理解"你的意思。近年來,隨著大型語言模型(就是那種能寫文章、能聊天的AI)的崛起,研究者們開始嘗試讓這類模型直接充當搜尋引擎的"大腦"。然而,有一個困擾了大家很久的問題始終沒有解決:用多個詞語來表示一段文字,效果應該比用一個詞更好,但實際測試中卻幾乎沒有改善,甚至更差——還白白花掉了大量計算資源。
昆士蘭大學的研究團隊決定追根溯源,看看這個"多詞不如單詞"的怪現象,究竟是多詞本身的問題,還是另有隱情。他們的結論出人意料:真正的瓶頸不是"用多個詞來表示"這個想法本身,而是主流語言模型產生這些詞的方式——一個接一個、排隊生成的順序機制。一旦換成能夠同時並行生成所有詞的新型模型,多詞檢索立刻就變得既好用又高效。這套新方法被命名為DiffRetriever,其中"Diff"來自"Diffusion"(擴散),指的是一類與傳統語言模型工作方式截然不同的新型模型。
一、搜尋引擎的"語義大腦"是怎麼工作的
要理解這項研究解決了什麼問題,先得明白現代搜索系統的基本原理。傳統搜尋引擎靠的是關鍵詞匹配:你搜"蘋果手機",系統就找所有含有"蘋果"和"手機"兩個詞的網頁。但這種方法有明顯局限——如果某篇文章寫的是"iPhone使用體驗",一次沒提"蘋果手機",傳統方法就找不到它。
為了解決這個問題,研究者開發出了"語義檢索"技術。其核心思想是:把一段文字壓縮成一串數字(專業上叫"向量"或"嵌入"),這串數字能捕捉文字的深層含義。含義相近的文字,對應的數字串也會很相似。搜索時,系統把你的問題也轉成一串數字,然後找數字串最接近的文檔,這樣即使用詞不同,只要意思相近就能找到。
一個形象的比方是:把每段文字想像成一張"語義身份證",上面用數字編碼記錄了這段文字的"意思指紋"。檢索時,你用自己問題的"身份證"去找指紋最像的文檔。一張身份證能記錄的資訊有限,於是有人提出:何不給每段文字發多張"身份證",每張記錄不同側面的資訊?這就是"多向量檢索"的基本思路,也是著名的ColBERT系統所採用的方法。
問題在於,當時主流的大型語言模型(如GPT、LLaMA這類)生成這些"身份證"的方式很低效——它們必須一張接一張地"列印",每列印一張都要重新過一遍整個模型。你要5張身份證,就要跑5次模型,時間成本直線上升,而且效果還不見得提升。哥倫比亞大學等機構此前的研究(PromptReps)已經證實,多詞版本並不穩定地優於單詞版本,代價卻高出許多。
二、新型模型的"並行印刷機"
昆士蘭大學團隊的突破口,在於一類相對新穎的語言模型——擴散語言模型(Diffusion Language Model)。其中最具代表性的兩個開源模型是Dream(基於Qwen2.5初始化,由浙江大學等機構開發)和LLaDA(從頭訓練,由中國人民大學等機構開發)。
傳統語言模型(如LLaMA、Qwen)的工作方式類似於人從左到右一個字一個字地寫文章:每寫下一個字,都要參考前面所有已寫的字,然後才能決定下一個字是什麼。這種"逐字生成"的方式有一個天然限制:第2個字的生成必須等第1個字確定後才能開始,無法並行。
擴散語言模型的工作方式則截然不同。它的思路更像一個填空遊戲:一開始,所有待填的位置都顯示為"[MASK]"(遮蓋符號),然後模型同時看著所有遮蓋位置和周圍的已知內容,一口氣把所有空格都填上。由於模型在填寫時能同時"看到"左邊和右邊的內容(專業上叫雙向注意力),並且所有空格是同時處理的,這就實現了真正的"並行生成"。
研究團隊敏銳地意識到:如果把需要生成的K個"代表詞"設置成K個[MASK]位置,擴散語言模型就可以在一次前向計算中,同時填出所有K個代表詞,而不需要像傳統模型那樣跑K次。從"排隊列印"變成了"批量印刷",時間成本從隨K線性增長變成了幾乎固定不變。
三、DiffRetriever的具體工作方式
明白了基本原理,再來看DiffRetriever是怎麼具體操作的。
當系統要處理一個用戶的查詢(比如"糖尿病的早期症狀有哪些")時,它會把這句話連同一個特定的提示語一起送給擴散語言模型,提示語大意是"請用幾個詞來代表這個查詢,方便檢索任務"。關鍵是,在提示語的末尾,系統會追加Kq個[MASK]符號——比如K=4時就追加4個遮蓋位置。然後整個序列(原始查詢加上提示加上4個[MASK])一次性送入擴散模型,模型同時填出4個代表詞。
從這4個代表詞中,系統實際上提取兩類資訊。第一類是每個代表詞對應的"隱藏狀態向量"(Hidden State),可以理解為模型內部對這個詞的深層理解,維度通常有幾千個數字,這組數字構成稠密向量(Dense Vector)。第二類是每個代表詞對應的"詞表分布"(Logits),即模型認為這個位置應該填哪個詞的概率分布,經過處理後形成稀疏向量(Sparse Vector)。稠密向量捕捉的是語義層面的資訊,稀疏向量則更接近詞彙層面的資訊,兩者互補。
對於文檔庫中的每一篇文檔,系統也用同樣的方式生成Kp個代表詞(查詢和文檔的代表詞數量可以不同,比如查詢用4個,文檔用16個)。所有文檔的代表向量提前計算好並儲存起來,形成索引。
檢索時,評分的方式採用了來自ColBERT的"最大相似度"(MaxSim)策略:對於查詢的每一個代表向量,在文檔的所有代表向量中找出最相似的那一個,然後把所有查詢代表詞的最高相似度取平均,得到稠密分數。稀疏部分則通過取各代表詞詞表分布的逐元素最大值來合併,再做內積評分。最終,稠密分數和稀疏分數經過歸一化後各取一半,合併成最終的混合分數(Hybrid Score),用於排序。
為了讓這套系統在不同場景下都有更好的表現,研究團隊還在MS MARCO(一個標準的段落檢索數據集)的訓練集上掃描了所有(Kq, Kp)的組合,從{1,2,4,8,16}的笛卡爾積中選出表現最好的配置。結果Dream選出了(4,16)——查詢4個代表詞、文檔16個代表詞,呈現明顯的"文檔偏重"特徵;LLaDA則選出了(4,4),查詢和文檔代表詞數量相同,更為對稱。
研究團隊還設置了一個有監督微調階段:用對比學習的損失函數(InfoNCE)在MS MARCO的訓練數據上調整模型參數,讓模型學習什麼樣的表示對檢索更有幫助。微調時使用LoRA(一種只更新少量參數的高效微調方法,就像給已有的工具加了一個小適配器),所有模型的LoRA配置完全相同,這樣微調後的性能差異就只來自檢索機制本身,而不是訓練配方的不同。
四、實驗設置:公平的四方比拼
為了證明DiffRetriever的優勢,研究團隊設計了一個對比實驗,核心原則是"控制變量"——所有系統使用相同的訓練數據、相同的優化器、相同的超參數,唯一不同的是檢索機制。
實驗涉及四個骨幹模型:兩個傳統自回歸模型(LLaMA3-8B-Instruct和Qwen2.5-7B-Instruct)和兩個擴散語言模型(Dream-v0-Instruct-7B和LLaDA-8B-Instruct),規模都在7到8億參數級別。這四個模型被精心配對:Dream由Qwen2.5初始化後再用擴散目標訓練,因此兩者架構相同、初始化相同,只有訓練方式不同,形成最嚴格的控制組;LLaDA從頭訓練,與LLaMA3配對則是規模相近的補充對照。
對比基線包括五個系統。BM25是傳統的詞頻統計檢索方法,作為基礎參考線。PromptReps是在自回歸模型上運行的代表詞檢索,就是多詞檢索方案失效的那個原始方法。DiffEmbed是另一種利用擴散模型的檢索方法,但它把擴散模型當成BERT風格的編碼器使用,對輸入序列做均值池化,完全不利用擴散模型的[MASK]預測能力。RepLLaMA是在LLaMA3上做了對比微調的單向量檢索器,代表有監督訓練的上限參考。
評測在三個層次上進行:MS MARCO開發集用MRR@10衡量在域表現,TREC DL 2019和TREC DL 2020用NDCG@10衡量精標註的在域表現,BEIR-7(從BEIR基準中選取的7個數據集,涵蓋開放域問答、多跳問答、科學事實核查、生物醫學檢索、金融問答、論點檢索和重複問題檢測)用NDCG@10衡量跨域泛化能力。
延遲測試在單張H100 GPU上進行,使用相同的注意力實現,以每查詢毫秒數計量,確保硬體層面的公平比較。
五、零樣本實驗:兩個模型族的命運逆轉
在沒有任何微調、直接"開箱即用"的零樣本條件下,實驗結果呈現出一個清晰的戲劇性反轉。
單個代表詞(K=1)的情況下,傳統自回歸模型占據優勢。LLaMA3在MS MARCO上達到混合分數0.242,領先兩個擴散模型。Dream單詞版本表現最差,甚至低於BM25基線。DiffEmbed(把擴散模型當普通編碼器用)表現更糟,說明擴散模型在K=1時的劣勢來自骨幹模型家族本身的特性,而非提示詞設計的問題。
然而,當代表詞數量增加到K>1時,畫面發生了根本性的轉變——但這種轉變只發生在擴散模型上。對於自回歸模型,多詞版本的表現持平甚至下降:LLaMA3混合分數在MS MARCO和DL19上有所下滑,Qwen2.5在三個基準上基本持平,沒有任何自回歸多詞配置顯著優於LLaMA3單詞版本。
擴散模型則走向了完全相反的方向。Dream從單詞的0.112躍升到多詞的0.218(在MS MARCO混合分數上幾乎翻倍),反超了它的"母體"Qwen2.5;LLaDA多詞版本達到0.248,超越LLaMA3並成為所有零樣本系統中的最強。每一個擴散模型的多詞收益在統計上都顯著優於同骨幹單詞版本,以及LLaMA3單詞版本。
這裡最有說服力的證據來自Dream與Qwen2.5這對共享架構和初始化的孿生模型。它們的排名在K=1和K>1之間完全顛倒:Qwen2.5在K=1時領先,Dream在K>1時領先。唯一的區別就是解碼方式——順序生成還是並行填充。這就直接指向了結論:多詞檢索的優劣,取決於生成方式,而不是"多詞"這個想法本身有沒有價值。
在延遲方面,差距更加觸目驚心。自回歸多詞(K≤20的零樣本上限)每次查詢需要275到300毫秒,而擴散多詞只需要16到20毫秒,大約相差15倍。用大量時間換來零收益,和用幾乎不增加的時間換來顯著收益——兩種策略的性價比天壤之別。
六、有監督微調:壓縮差距後誰更強
加入對比微調後,所有系統都大幅提升,差距明顯收窄,各代表詞檢索系統集中在一個較窄的區間內。但細看仍有規律可循。
DiffRetriever Dream多詞版本成為微調後最強的代表詞檢索系統,在9個(基準×評分模式)單元格中占據5個最佳位置,包括DL19的全部三種評分模式,MS MARCO稠密分數達到0.433,超過PromptReps LLaMA3多詞(0.430)、DiffEmbed Dream(0.405)和RepLLaMA(0.412)。
一個值得關注的模式是:最佳評分模式發生了轉變。零樣本階段,混合分數(稠密+稀疏)在所有骨幹模型和所有K值下都是最優選擇;但微調後,稠密分數單獨就夠強,稀疏部分反而拖累了混合結果——等權重加權稀疏信號導致混合分數低於純稠密。這說明微調讓稠密向量變得足夠強,稀疏部分的補充價值在有監督條件下大幅下降。
Dream在微調前後的軌跡最為戲劇化:零樣本時是最弱的系統之一,微調後卻成了最強的。相比之下,LLaDA從零樣本到微調的提升幅度(+0.106 BEIR-7)遠小於Dream(+0.195 BEIR-7)。研究團隊給出的解釋是:Dream在初始化時繼承了Qwen2.5的自回歸預訓練權重,包含了對對比微調更友好的表示基礎;而LLaDA從頭在擴散目標下訓練,這種預訓練模式與對比檢索的微調方式配合得不如自回歸預訓練那麼順暢。
七、跨域泛化:在陌生領域的表現
BEIR-7的7個數據集來自完全不同的領域,對檢索系統的泛化能力構成真正考驗。
零樣本跨域結果延續了在域的規律。單詞下擴散模型落後,多詞後翻盤:DiffRetriever LLaDA多詞版本以BEIR-7平均NDCG@10 0.539成為零樣本最強系統,超過LLaMA3多詞(0.500)。
微調後的跨域結果中,兩對骨幹模型出現了分叉。Dream系統(DiffRetriever Dream多詞0.671)超越了PromptReps Qwen2.5多詞(0.664),成為所有系統中BEIR-7平均分最高的,對比DiffEmbed Dream(0.638)和RepLLaMA(0.565)都有顯著領先。LLaDA系統(DiffRetriever LLaDA多詞0.645)則略低於PromptReps LLaMA3多詞(0.655)。
從骨幹模型角度看,Dream系(無論何種檢索機制)和所有自回歸系的系統都集中在0.638到0.671的區間,LLaDA系的系統則集中在0.595到0.645的較低區間——這個差距與檢索機制無關,更像是LLaDA骨幹模型本身在對比微調下的天花板。研究團隊認為這與LLaDA缺乏自回歸預訓練基礎有關,但明確表示這一推斷有待後續工作驗證。
Dream在7個BEIR-7數據集中,在NQ(開放域問答)、FiQA(金融問答)和Quora(重複問題檢測)三個數據集上拿到列最優,其餘四個數據集由自回歸系統占優。Dream的優勢在於各數據集表現均衡,而非在某個領域特別突出。
八、延遲深度分析:時間成本的完整圖景
研究團隊不滿足於單一數字,進一步在兩個維度上測量了延遲的變化規律:隨輸入序列長度的編碼延遲,以及隨索引文檔數量的檢索延遲。
編碼延遲方面,所有系統隨輸入長度大致線性增長,但絕對水平差異極大。自回歸多詞在整個輸入長度範圍內穩定在60到80毫秒,自回歸單詞在15到30毫秒。DiffRetriever多詞和單詞都集中在15到30毫秒,多詞版本的額外開銷僅有5到10毫秒,遠低於自回歸多詞的額外開銷。在微調時K=4的上限下,自回歸與擴散的編碼時間比約為3倍(在較短輸入時),隨輸入增長而收窄,因為固定長度的前向傳播開始主導。零樣本K≤20上限下,比值約為15倍,這是論文中引用的主要數字。
檢索延遲(ANN向量搜索)隨索引文檔數量近似對數線性增長。多向量檢索比單向量檢索搜索代價更高,原因是每次查詢要做Kq次ANN查找,索引中每文檔存Kp個向量。Dream(Kp=16)的索引比LLaDA(Kp=4)大4倍,搜索代價也相應更高。在100萬文檔規模下,最慢的多向量配置(約17毫秒)與最快的單向量配置(約4毫秒)之間的差距,遠小於編碼端的差距,因此端到端延遲的故事仍然由編碼端主導。對於更大規模的部署,Dream的Kp=16會成為更實質性的成本因素,需要在效果和搜索開銷之間權衡。
九、固定預算的代價:還有多少潛力未被釋放
研究的最後一部分提出了一個發人深省的問題:如果每次查詢都能自動選擇最合適的(Kq, Kp)組合,而不是所有查詢用同一個固定配置,會有多大的收益?
研究團隊構造了三種"先知型"上界——它們知道每條查詢在哪個K值下表現最好,但這是理論上限,實際中不可直接部署:只自適應調整Kq、只自適應調整Kp、同時自適應調整兩者。
結果令人震驚。僅調整Kq的先知版本就能讓MS MARCO MRR@10從固定預算的約0.22(Dream)或0.25(LLaDA)提升到約0.30。僅調整Kp的先知版本能恢復更多差距,優於僅調整Kq的版本,說明文檔端的代表詞數量選擇比查詢端更關鍵。同時調整兩者的完整先知版本在MS MARCO上達到約0.46,在BEIR-7上Dream達到約0.68(固定預算是約0.48),LLaDA達到約0.69(固定預算是約0.54)。
更關鍵的發現是:完整先知版本在每一個骨幹模型和每一個基準組合上,都超過了對比微調後的固定預算版本,大約高出0.03到0.07。換句話說,如果能在不更新任何模型參數的情況下,僅通過智能選擇每條查詢的K值,就能超越需要大量計算資源進行對比微調的版本。LLaDA的僅Kp先知版本(BEIR-7約0.62)甚至幾乎追上了微調版本。
這個發現意味著什麼?它指向了一個全新的研究方向:自適應預算路由器(Adaptive Budget Router)——一個輕量級的小模組,根據查詢的特徵預測應該給這條查詢分配多少代表詞預算,然後再送給DiffRetriever編碼。
為了驗證這種路由器是否有可能被訓練出來,研究團隊考察了兩個廉價的查詢表面特徵:查詢長度(子詞數量)和查詢的香農熵(詞元分布的資訊量)。結果表明,這兩個特徵與最優Kq之間存在正相關:查詢越長、資訊量越豐富,最優K值就越大(在稠密評分下,峰值K從最短查詢的約2單調上升到最長查詢的約8)。Spearman相關係數在Dream稠密分數上達到+0.31,LLaDA達到+0.29,在稀疏分數上則稍低(+0.23和+0.13)。稠密方面信號更清晰,與此前觀察到的"稠密向量每增加一個K收益更大"的規律一致。
這些相關係數並不大,僅憑長度和熵兩個特徵還不能復現先知版本的全部收益,但它們證明了先知版本的偏好是有結構的,不是隨機噪聲。研究團隊將設計可部署的路由器留給未來工作。
十、單步還是多步:擴散模型的一個有趣附加發現
擴散語言模型在訓練時通常被設計為多步疊代去噪過程:第一步填出最有把握的幾個[MASK],第二步把已填的當作上下文再填剩餘的,如此反覆。DiffRetriever的主實驗全程只用一步(S=1)。研究團隊也測試了兩步疊代去噪(S=2),結果出人意料。
零樣本下,S=2比S=1顯著更差,幾乎在所有基準和所有數據集上都如此。Dream的MS MARCO混合分數從0.218降到0.172,BEIR-7稠密平均從0.427跌至0.309。這說明在零樣本檢索場景下,單步並行讀取才是讓代表詞檢索有效的關鍵,而非匹配訓練階段的多步去噪過程。
微調後,兩個骨幹模型表現出了分化:Dream依然是S=1更好或持平;LLaDA則在多個BEIR-7數據集上從S=2中獲益(五個數據集上的稠密分數顯著提升),儘管MS MARCO有所下降。研究團隊認為這與兩個模型的微調飽和程度有關——Dream在單步加監督後表示已經接近飽和,而LLaDA還有空間;疊代去噪在一定程度上彌補了LLaDA微調不足的部分,在跨域數據上尤為明顯。主實驗統一使用S=1,是為了跨骨幹和跨基準的一致性比較。
說到底,這項研究的核心貢獻可以濃縮成一句話:多詞檢索本身沒有問題,是讓詞一個個排隊出來的機制有問題。擴散語言模型的並行填充能力,恰好消除了這個瓶頸,讓多詞檢索既能真正提升效果,又不需要付出額外的時間代價。微調後的DiffRetriever在主流跨域檢索基準上超越了同等條件下的所有對比系統,包括有監督對比微調的單向量模型RepLLaMA。更引人遐想的是,那個"先知路由器"的實驗表明,現有的固定預算系統離理論上限還差得很遠,而打開這扇門的鑰匙可能就是查詢的長度和資訊量這樣簡單的特徵。
對於普通用戶來說,這意味著未來的搜索系統有望在不增加響應時間的前提下,對複雜問題給出更精準的答案——長查詢和資訊密度大的查詢會自動分配更多"理解資源",簡單查詢則保持高效。對於研究者而言,自適應預算路由、更大規模擴散模型的探索、以及如何解釋"Dream為何比LLaDA對微調更響應",都是值得深入挖掘的方向。有興趣深入了解技術細節的讀者,可以通過arXiv編號2605.07210查閱完整論文,代碼也已在GitHub的ielab/diffretriever倉庫中開放。
Q&A
Q1:DiffRetriever和傳統搜索方法相比有什麼實際優勢?
A:DiffRetriever能在不增加響應時間的情況下,用多個"語義身份證"來理解一段文字的不同側面,而傳統多詞方法(PromptReps)做同樣的事需要多跑十幾次模型,時間成本高出約15倍,效果卻沒有提升。DiffRetriever在BEIR-7跨域基準上微調後達到NDCG@10的0.671,超過了同條件下所有對比系統。
Q2:擴散語言模型和普通語言模型(如ChatGPT那類)有什麼根本區別?
A:普通語言模型從左到右一個字一個字生成,每個字必須等前一個字確定後才能開始,無法並行。擴散語言模型則把所有待填位置同時處理,藉助雙向注意力(能同時看左邊和右邊的內容)一口氣填出所有空格,真正實現並行生成。這個區別讓DiffRetriever能在單次前向計算中同時產生多個代表向量,而自回歸模型需要多次串行計算。
Q3:DiffRetriever中的"先知路由器"分析說明了什麼潛力?
A:研究團隊發現,如果能為每條查詢自動選擇最合適的代表詞數量(而非所有查詢用同一個固定數量),在不更新任何模型參數的情況下,效果就能超過做了對比微調的版本,在MS MARCO上大約高出0.05,在BEIR-7上高出0.03到0.07。查詢越長、資訊量越大,分配更多代表詞的收益越高(Spearman相關約+0.31),說明這種自適應路由器有可能被訓練出來,是未來重要的研究方向。






