返回首頁

模型訓練與微調

ShadowPEFT 進入 Hugging Face PEFT 主線,以跨層狀態取代分散式 LoRA 權重增量

ShadowPEFT 把任務調適建模為與凍結骨幹並行的可訓練小模型,並已接入 PEFT 的標準設定、儲存與載入介面。初步實驗優於相近參數量的 LoRA 與 DoRA,但額外記憶體、雙重 KV cache 及尚未進入穩定版都是部署代價。

VamosSandor · CC BY-SA 4.0 · Image source
zh-Hant

Hugging Face PEFT 主分支新增 ShadowPEFT,讓開發者可以透過既有的 `get_peft_model`、`save_pretrained` 與 `from_pretrained` 介面使用一種不同於 LoRA 的參數高效微調方法。LoRA 在選定線性層旁加入彼此獨立的低秩權重增量;ShadowPEFT 則建立一個小型、可預訓練的 shadow network,維持跨 Transformer 深度傳遞的任務狀態。

每個解碼層會先根據骨幹隱藏狀態與 shadow state 的差異,經低秩瓶頸向凍結骨幹注入修正;骨幹完成該層計算後,再以候選值與閘門更新 shadow state。這種雙向資訊流令後段層可以使用先前累積的任務訊號,而不是只依靠局部權重增量。由於更新是輸入相依的運算軌跡,ShadowPEFT 不能像 LoRA 一樣合併回原權重;增量解碼也要同時維護骨幹與 shadow network 的 KV cache。

這個 sidecar 本身具備預測頭,訓練後可由 `unload_shadow()` 拆出獨立執行,也能以較小的既有模型初始化。這為端側先處理簡單請求、複雜請求再連同大型骨幹推論提供一種設計,但不代表同一個小模型可以無條件跨骨幹重用。

作者以 Llama 3.2 3B 在 MetaMathQA 訓練、GSM8K 測試,報告 ShadowPEFT 在 866 萬可訓練參數下取得 48.1% exact-match,高於 LoRA 的 46.9% 與 DoRA 的 46.2%。代價是尖峰記憶體達 28.2GB,高於 LoRA 的 22.3GB;結果也只涵蓋有限模型、資料集與單一 A100 環境。工程團隊還應注意,此功能目前只在 PEFT `main`,必須從原始碼安裝,尚未進入穩定版。下一步值得觀察的是長上下文解碼成本、不同骨幹的相容性,以及 detached shadow 是否能在真實端雲工作負載維持品質。

來源

  1. What If the Adaptation Were a Model? ShadowPEFT in PEFT library
  2. Hugging Face PEFT repository
  3. ShadowPEFT: Shadow Network for Parameter-Efficient Fine-Tuning