適配器模組 是什麼?

Adapter — 適配器模組 的完整解釋

適配器模組是一種輕量級的模型微調方法,透過在預訓練模型中插入少量可訓練參數,以適應特定任務,同時保持原始模型參數凍結。

容易混淆

適配器 vs 全模型微調 vs LoRA

適配器:在模型中插入小型瓶頸層,只訓練這些新增的參數。

全模型微調:更新模型所有參數,效果好但成本高、容易過擬合。

LoRA(Low-Rank Adaptation):適配器的一種改良,用低秩矩陣分解來近似參數更新,更省記憶體。

最關鍵的區別:適配器和 LoRA 都是「只動一小部分」的省錢做法,全模型微調是「全部重來」的高成本做法。

記住這句就好

不改整台機器,只加一個轉接頭,就能適應新任務。

實際案例

多語言翻譯

Google 在多語言 BERT 上為每種語言加一個適配器,而不是為每種語言訓練一個完整的模型。100 種語言只需要 100 個小型適配器(每個約 2MB),而非 100 個完整模型(每個約 400MB),儲存空間省了 99%。

醫療文本分析

一家醫療 AI 公司想讓通用語言模型理解醫學術語,但只有 5000 筆醫療文本。全模型微調會嚴重過擬合,改用適配器後,只訓練了 0.5% 的參數,在醫療問答任務上的準確率比全模型微調還高 3%。

深入了解

適配器的工作原理

步驟 做什麼 關鍵考量
凍結原始模型 把預訓練模型所有參數鎖定,不讓它們被修改 保留通用知識
插入適配器層 在 Transformer 的每一層中間加入小型瓶頸結構 瓶頸維度越小,參數越少但表達力也越弱
訓練適配器 只用新任務的資料訓練適配器的參數 學習率可以比全模型微調大
推論時組合 把適配器和原始模型組合使用 可以隨時拔掉適配器換回通用模型

情境判斷

Q1(直覺題): 你有一個預訓練的 BERT 模型,想讓它同時處理法律、醫療、金融三個領域的文本分類。你應該微調三個完整模型,還是訓練三個適配器?

→ 訓練三個適配器。三個適配器加起來的參數量還不到一個完整模型的 5%,而且可以共用同一個基礎模型,切換領域只需要切換適配器。

Q2(判斷題): 你的適配器在新任務上表現不如全模型微調,差了 5% 準確率。你應該堅持用適配器,還是改用全模型微調?

→ 看情境。如果你有足夠的資料(幾萬筆以上)和算力,5% 的差距可能值得用全模型微調。但如果資料少、需要多任務切換、或算力有限,適配器的效率優勢更重要。也可以嘗試增加適配器的瓶頸維度或使用 LoRA 來縮小差距。

相關術語

常見問題

適配器可以疊加使用嗎?

可以。你可以先加一個語言適配器(如中文),再加一個領域適配器(如醫療),實現「中文醫療」的組合效果。這種模組化的設計是適配器最大的優勢之一。

適配器的瓶頸維度怎麼選?

通常從 64 開始試,太小(如 8)表達力不夠,太大(如 256)就失去了省參數的意義。實務上需要在效果和效率之間做實驗找平衡點。

適配器和 Prompt Tuning 有什麼差別?

兩者都是「不動原始模型」的微調方法。適配器是在模型內部插入新的層,Prompt Tuning 是在輸入前面加一段可學習的「軟提示」。適配器通常效果更好,但 Prompt Tuning 更簡單。