![]()
這項由香港理工大學計算機系與嶺南大學人工智能研究部門聯合完成的研究,以預印本形式于2026年4月21日發布在arXiv平臺,論文編號為arXiv:2604.19254v1。感興趣的讀者可通過該編號在arXiv上查閱完整論文。
當人工智能大模型越來越"大"的時候,如何讓它學會新技能而又不把以前的功夫全廢掉,成了研究者們最頭疼的問題之一。訓練一個完整的大語言模型,要耗費天文數字般的算力,哪怕是對一個已經訓練好的模型進行"再培訓",費用也高得令普通機構望而卻步。正因如此,一類叫做"參數高效微調"(PEFT)的技術應運而生——它的核心思路是:不動原模型的大部分參數,只訓練一小部分新加入的參數,就能讓模型掌握新任務。
目前最流行的參數高效微調方法叫做LoRA(低秩適應),可以把它理解為給一位廚藝精湛的大廚配備了幾塊專用調料盒:大廚本身的廚藝(原模型參數)完全不變,只是在不同菜肴上各自加了點特調的醬料(分散在各層的低秩矩陣)。這種方式簡單好用,已經成為行業標準配置。然而,研究團隊注意到一個潛在問題:每道菜的醬料都是單獨配的,互相之間沒有協調,整體上缺乏統一的"味覺方向",而且一旦大廚不在,那些醬料盒單獨拿出來根本不知道怎么用。
正是為了解決這個問題,研究團隊提出了一種全新的思路——ShadowPEFT,也就是本文要介紹的"影子網絡參數高效微調"框架。
一、 大模型微調的現有困境:醬料太多卻各自為政
要理解ShadowPEFT解決了什么問題,得先搞清楚現有方法的局限在哪里。
以LoRA為代表的低秩適應方法,做法是在原模型的每一層(或者特定的幾層)中,為每個線性變換矩陣各自加上一對小矩陣(一個"壓縮矩陣"加一個"還原矩陣"),這對小矩陣的參數量遠遠少于原矩陣,但加在一起能產生一個"微調量",輕輕推動原模型往新任務的方向調整。DoRA在此基礎上再做了一步:把權重分解為"量級"和"方向"兩部分分別調整,進一步精細化了這個過程。
這類方法的共同特點是:每一層的調整彼此獨立,互不相知。就像一家餐廳的每位廚師都只知道自己那道菜要怎么做,卻沒有一個總廚在統籌全局的口味方向。整體上,適應的"動作"是分散的、局部的,散布在模型的各個線性層里。而且這些調整用的小矩陣與原模型的內部結構緊密綁定,無法單獨拿出來在另一個場合使用。換句話說,如果原模型是一家大型酒店,LoRA的調整就像給酒店每個房間單獨刷了新顏色,但沒有一個整體設計師在把控整體風格。
此外,LoRA風格的微調還有一個實際部署上的限制:在邊緣計算場景(比如手機、機器人、物聯網設備)中,往往沒有足夠的算力運行完整的大模型,而LoRA的適應權重是直接嵌入在大模型里的,不能單獨拆出來部署一個輕量版本。
二、 影子助手登場:一個統一協調的"全局總廚"
ShadowPEFT的核心想法可以用一個簡單場景來理解:把原來那位大廚(大語言模型)完全凍住,讓他保持原有的廚藝不變,然后為他配備一個輕量級的"影子助手"(shadow model)。這位助手不像LoRA那樣給每道菜單獨調味,而是全程跟在大廚旁邊,觀察每一步烹飪過程,隨時提供統一調整建議,幫大廚把整體口味方向引導到新任務所需的狀態。
具體來說,這位"影子助手"在結構上類似于一個縮小版的原模型,但參數量要少很多。它在整個模型的深度方向上被共享復用——也就是說,原模型每過一層,影子助手也要相應地更新一次自己的狀態,并向原模型當前層的輸出提供一個"修正建議"。這個過程反復進行,直到經過所有層。與LoRA在每一層獨立添加小矩陣不同,ShadowPEFT只有一個影子助手,它的參數在所有層之間共享,形成了一條貫穿整個模型深度的統一適應路徑。
為了讓整個流程在初始時不干擾原模型的正常運作,研究團隊采用了LoRA論文中類似的初始化技巧:影子注入時用的"向上映射矩陣"全部初始化為零,這樣在訓練開始時注入量為零,原模型的行為完全不受影響,隨著訓練推進,影子助手才逐漸學會如何提供有效的修正建議。
三、 影子助手的三步工作流程:注入、編碼、更新
ShadowPEFT在每經過原模型的一個Transformer層時,都會經歷三個步驟,就像一位得力助手與主廚默契配合的三個動作。
第一步叫做"影子注入"。在原模型的某一層開始處理輸入之前,影子助手會把當前的"原模型隱藏狀態"和"影子狀態"做一個比較,計算出兩者之間的差異——可以理解為當前大廚的狀態與"理想目標狀態"之間的偏差。然后,這個偏差通過一對小矩陣(一個壓縮、一個還原,類似LoRA中的低秩瓶頸結構)進行過濾,提煉出最有用的修正信號,再加回到原模型的輸入上。這里有一個重要設計:不是直接把差異原封不動地加進去,而是通過低秩瓶頸過濾,讓模型學會判斷哪部分差異是真正有用的,從而起到"精準調味"而非"倒一整罐鹽"的效果。
第二步叫做"基礎編碼"。原模型的當前層接收到經過影子修正的輸入之后,正常執行自己的計算,輸出新的隱藏狀態。這一步原模型完全不動,只是在接受影子助手提供的修正輸入后進行正常處理。
第三步叫做"影子更新"。原模型這一層處理完成之后,影子助手需要把自己的狀態也往前推進一步,吸收原模型剛剛產生的新信息。這一步采用了類似GRU(門控循環單元)的設計:影子助手先把原模型的新輸出轉化成一個"候選新影子狀態",再用一個"門控信號"來決定應該在多大程度上接受這個新信息、保留多少之前積累的狀態。這種門控機制防止影子狀態在某一層突然"忘掉"所有之前學到的東西,也避免了訓練過程中影子狀態崩潰的風險,讓整個訓練更加穩定。
以上三步在每一層重復執行,影子狀態像一條記憶線索一樣貫穿整個模型,攜帶著從第一層到最后一層積累的任務相關信息,持續對原模型的隱藏狀態施加引導。
四、 訓練方式與兩種部署模式:一個助手,兩種用法
在訓練階段,ShadowPEFT采用聯合損失函數來同時監督"附帶影子的原模型"和"影子模型本身"兩條路徑。對于文本生成任務,損失函數是兩部分的交叉熵損失加權求和:主損失來自附帶影子后的原模型預測,輔助損失來自影子模型自己的預測,后者的權重系數默認設為0.05,起到正則化作用,鼓勵影子狀態自身也編碼足夠的任務相關信息。對于分類任務,則在影子模型的最終狀態上額外加一個分類頭,同樣采用聯合監督。
這個輔助損失的設計有一個深遠的意義:它讓影子模型在被"附加"到原模型上的同時,也在獨立地學習如何解決任務。換句話說,影子助手不只是學會了"怎么幫大廚調整",還學會了"自己也能獨立做菜"。
正因如此,ShadowPEFT在推理階段支持兩種完全不同的部署方式。第一種是"附加影子推理",也就是完整流程:影子助手跟隨原大模型同步運行,對每一層輸出進行修正,最終由原模型輸出結果,這是精度最高的模式,適合算力充足的云端服務器。第二種是"獨立影子推理",也就是只用影子模型自己跑,完全繞開原來那個龐大的原模型。這種模式下,影子模型作為一個輕量級的獨立模型單獨部署,極大地節省算力,非常適合在邊緣設備(手機、機器人、嵌入式系統)上使用。
這種"可拆卸"的設計是ShadowPEFT區別于LoRA系方法的根本性優勢之一——LoRA的適應權重必須依附在原模型上才能工作,無法單獨剝離出來部署一個輕量版本。
五、 影子模型的預訓練:讓影子助手先"上學"再"上崗"
研究團隊還探索了一個有趣的問題:影子模型是用隨機參數初始化好,還是先單獨預訓練一遍、再來做微調任務助手,效果有什么區別?
為了回答這個問題,他們以Qwen3 8B(80億參數的大模型)為原模型,用Qwen3 0.5B(5億參數的小模型)作為影子模型,分別測試了隨機初始化和預訓練初始化兩種方案。預訓練的過程中有一個技術細節值得關注:0.5B模型和8B模型的隱藏維度不同,直接對接會出問題。研究團隊用了一個叫做"Moore-Penrose偽逆"的數學技巧來初始化維度對齊的投影矩陣,這個技巧的作用是讓拼接后的組合輸出頭盡可能接近原來0.5B模型的輸出分布,避免從完全隨機狀態開始重新學習。然后,他們在FineWeb-Edu(英文教育內容數據集,采樣10萬條)和悟道語料庫(中文內容,采樣10萬條)上對影子模型繼續預訓練,使用標準的因果語言建模目標。
預訓練帶來的效果非常顯著:在附加模式下,預訓練影子的表現整體優于隨機初始化影子,尤其是在推理密集型任務上,GSM8K(數學應用題)準確率從隨機初始化的80.21%提升到82.18%,SQuAD v2(閱讀理解)從87.39%提升到87.78%。更令人關注的是獨立部署模式:預訓練影子在獨立運行時平均得分達到62.11,而隨機初始化影子獨立運行時得分只有約35,接近崩潰。這說明,經過充分預訓練的影子模型不僅能更好地輔助原模型,還真的能獨當一面,作為一個輕量級的獨立模型使用。
六、 實驗結果:在三種規模的模型上全面測試
研究團隊在Qwen3家族的三個規模(0.6B、4B、8B參數)上進行了全面測試,對比方法包括LoRA和DoRA,評估基準涵蓋五個數據集,分為兩大類任務。
生成類任務方面,采用了MMLU(大規模多任務語言理解,類似高考綜合題庫)、GSM8K(小學奧數題,測試數學推理能力)和SQuAD v2(閱讀理解,包含有些問題根本無法從文章中找到答案的情況)三個基準。理解類任務方面,采用了Amazon評論情感分類(判斷商品評價是正面還是負面)和20新聞組(把新聞文章分入20個主題類別)兩個數據集。所有方法都盡量控制在相近的可訓練參數量下進行公平比較,而ShadowPEFT實際使用的可訓練參數量還略少于LoRA和DoRA。
實驗結果整體呈現出一個清晰的趨勢:ShadowPEFT在三個模型規模上均取得了最高的平均分。在0.6B規模上,ShadowPEFT平均62.27,LoRA 61.81,DoRA 62.08;在4B規模上,ShadowPEFT 75.43,LoRA 74.55,DoRA 74.85;在8B規模上,ShadowPEFT 76.92,LoRA 76.51,DoRA 75.99。各項單項指標上,ShadowPEFT在大多數任務上也保持領先或持平,差距雖然不算巨大,但在五個基準上表現一致,說明這種優勢并非偶然。
值得一提的是,當使用隨機初始化的0.5B影子模型時,附加模式下的表現(76.60平均分)已經很有競爭力,但略低于使用預訓練影子的77.11。而一旦切換到獨立影子模式,隨機初始化版本得分僅35.11,遠遠低于預訓練版本的62.11。這個對比鮮明地展示了預訓練對于獨立部署能力的決定性作用。
七、 消融實驗:影子更新模塊到底有多重要?
研究團隊還做了一個"拆零件"的實驗,專門驗證影子更新模塊(也就是那個GRU風格的門控狀態更新機制)的作用。實驗在Qwen3 4B上進行,對比了有無更新模塊兩種情況下在GSM8K和Amazon兩個任務上的表現。
結果相當有意思:去掉更新模塊之后,GSM8K的準確率從79.00%下降到76.57%,降幅超過2個百分點,而Amazon情感分類幾乎沒有變化(62.66%對比62.64%)。這個差異背后有直覺上合理的解釋:數學推理是一個多步驟、需要在層與層之間傳遞和累積中間狀態的任務,影子狀態的持續更新對于保持這條推理鏈條至關重要;而情感分類本質上是一個"看完整體感覺"的任務,影子模型在第一層之后的初始狀態里已經包含了足夠的判斷線索,后續更新反而顯得可有可無。這個實驗從另一個角度驗證了ShadowPEFT框架設計的合理性。
八、 泛化能力測試:在一個任務上練,到另一個任務上用
為了評估ShadowPEFT在跨任務場景下的泛化能力,研究團隊做了一組"跨數據集遷移"實驗:在一個數據集上微調Qwen3 4B,然后用2-shot示例提示的方式,在另外兩個沒見過的數據集上測試表現。
實驗覆蓋了三種訓練條件,分別是在GSM8K、SQuAD v2和MMLU上訓練。結果顯示,在所有三種訓練條件下,ShadowPEFT的分布外(OOD)平均分均優于LoRA和DoRA。以GSM8K訓練條件為例,ShadowPEFT的OOD平均分為50.61,LoRA為50.40,DoRA為48.57——DoRA在這個條件下相比LoRA有明顯退步,研究團隊分析認為這可能與DoRA額外的權重量級分解在泛化時帶來的不穩定性有關。SQuAD v2訓練條件下,ShadowPEFT OOD平均53.23,LoRA 52.41,DoRA 52.92。MMLU訓練條件下三者整體較接近,但ShadowPEFT仍以76.64對比LoRA 76.57和DoRA 75.18略占上風。
這組實驗表明,集中式的層級適應設計相比分散的逐層低秩擾動,在向未知任務遷移時表現出更穩健的泛化能力。
九、 參數規模擴展:更大的影子模型并非越大越好
一個自然而然的問題是:影子模型越大,效果就越好嗎?研究團隊專門做了參數擴展實驗,在Qwen3 8B為原模型的設定下,將影子模型的可訓練參數從0.1B一路擴展到0.5B,同時對比LoRA和DoRA在相同參數規模下的表現變化。
ShadowPEFT隨著影子模型增大,GSM8K準確率從81.35%(0.1B)穩步上升到82.12%(0.4B),隨后在0.5B時略微回落到81.80%,出現輕微飽和跡象。這條先升后穩的曲線說明更大的影子模型確實能帶來更強的適應能力,但存在一個收益遞減的天花板。相比之下,LoRA的表現曲線幾乎是一條水平直線(80.52%到81.28%之間波動),這是因為LoRA的參數增加是通過提高秩來實現的,而研究表明對于LoRA類方法,秩超過一定閾值后反而容易損害泛化能力,甚至加速遺忘。DoRA的情況更糟,準確率隨參數增大單調下降(81.12%降至77.79%),這種退化模式與已知的低秩方法局限性完全吻合。ShadowPEFT通過增加影子模型容量而非提高適應矩陣的秩來擴展參數量,從根本上繞開了這個問題,實現了相對更健康的參數規模擴展。
十、 推理效率:多出來的影子助手會拖慢速度嗎?
多加了一個影子模型,推理時不會慢很多嗎?這是實際部署中最關心的問題之一。研究團隊在三種規模的模型上分別測量了10次推理延遲并取均值,結果令人寬慰。
在0.6B規模上,LoRA均值81毫秒,DoRA 84毫秒,ShadowPEFT 84毫秒,ShadowPEFT僅比LoRA多約3毫秒,增幅3.7%;在4B規模上,LoRA 101.2毫秒,DoRA 107.2毫秒,ShadowPEFT 107.2毫秒,僅比LoRA多約6毫秒,增幅5.9%;在8B規模上,LoRA 103.3毫秒,DoRA 109.2毫秒,ShadowPEFT 109.2毫秒,比LoRA多約5.9毫秒,增幅5.7%。整體而言,ShadowPEFT相比LoRA的延遲開銷保持在4%到6%之間,與DoRA基本持平,遠低于人們可能擔心的"多跑一個模型會慢一倍"的情況。
這種低開銷的關鍵在于設計上的巧妙:影子模型的前向計算可以與原模型的計算并行進行,影子注入和更新模塊只增加了很輕量的殘差連接操作,整體計算開銷相當有限。
十一、 機器人實戰測試:影子助手在真實場景中表現如何?
研究團隊還做了一個頗具現實感的系統級測試:在宇樹Go2機器狗的指令理解場景上評估ShadowPEFT的實用價值。他們構建并發布了一個專用數據集,包含4771條雙語(中英)指令,涵蓋34種預定義機器人技能(如TurnAround旋轉、FrontFlip前空翻、PlayKungFu打功夫等)以及一個特殊的[REMOTE]類別,用于標記那些超出本地處理能力、需要轉交云端處理的請求。
在這個場景下,ShadowPEFT的優勢被展現得相當直觀。獨立影子模式可以部署在機器狗本地,處理常見的技能指令;當遇到天氣查詢、復雜數學、講笑話、講解飛機飛行原理這類超出本地能力的請求時,獨立影子模型不會強行給出錯誤答案,而是輸出[REMOTE]標簽,將請求轉發給云端運行的完整ShadowPEFT模型處理。
從測試結果來看,ShadowPEFT在準確率(99.35%)和測試總耗時兩個維度上均優于LoRA(97.7%)和DoRA(97.7%)。更重要的是,由于簡單指令可以本地快速處理而無需訪問云端,整體交互延遲大幅降低。具體案例中可以看到,獨立影子模型能正確識別"嘿,來個大轉圈"對應TurnAround指令,對于"今天天氣怎樣"則返回[REMOTE]標簽而非瞎編一個答案,對于"19+18等于幾"也正確轉發云端而非胡亂作答。相比之下,LoRA和DoRA在部分案例中出現了幻覺現象,比如把"解釋飛機怎么飛"誤識別為DrawPlane(畫飛機)指令,或者把"嘿,來個大轉圈"誤判為FrontFlip(前空翻)。這個測試從系統層面驗證了ShadowPEFT可分離部署設計的實際價值。
歸根結底,ShadowPEFT做的事情是把散落在模型各處的"零星調整"整合成了一條有記憶、有協調、可獨立工作的"適應通道"。它沒有徹底顛覆現有微調方法的基礎思路,而是在參數共享和狀態傳遞上做了一個結構性的重新設計,讓適應模塊從"各掃門前雪"變成了"全局統一指揮"。對于普通用戶來說,這意味著未來用手機或本地設備運行一個針對特定場景(比如客服機器人、智能家居助手、機器人控制)定制過的小模型,既不需要一直依賴云端的大模型,又能在需要時無縫切換到更強大的云端版本,這種"輕量本地+按需云端"的組合很可能成為未來智能助手的主流部署模式之一。
這項研究目前的局限在于,受算力資源約束,實驗只在參數量不超過8B的模型上進行,更大規模模型(如70B級別)以及更多樣的模型架構上的效果還有待驗證。研究團隊表示這些方向將在未來工作中繼續探索。如果你對技術細節感興趣,可以通過論文編號arXiv:2604.19254在arXiv平臺找到完整論文。
Q&A
Q1:ShadowPEFT和LoRA的根本區別是什么?
A:LoRA在大模型每一層獨立加入一對小矩陣來做調整,各層之間沒有協調,而且這些調整權重必須依附在原模型上無法拆離。ShadowPEFT則用一個共享的"影子模型"貫穿整個模型深度,這個影子模型有自己的狀態記憶,可以跨層統一協調,還能單獨拆出來在邊緣設備上獨立部署,不依賴大模型也能工作。
Q2:ShadowPEFT獨立部署的影子模型性能怎么樣,能替代大模型嗎?
A:如果影子模型是隨機初始化直接微調的,獨立運行時性能很差,基本不可用。但如果事先對影子模型進行了預訓練,獨立運行時的平均性能可以超過同參數量的LoRA或DoRA微調版本。不過它遠不能替代大模型,更適合的場景是處理常見的簡單任務,復雜請求還是轉交大模型處理。
Q3:ShadowPEFT推理速度比LoRA慢多少?
A:實測中ShadowPEFT相比LoRA的推理延遲增幅在4%到6%之間,比如8B規模上LoRA約103毫秒,ShadowPEFT約109毫秒,差距很小。這是因為影子模型的計算可以與原模型并行,注入和更新模塊都很輕量。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.