# 1. 預訓練語言模型(PLMs) 預訓練語言模型(Pretrained Language Models, PLMs)透過大規模自監督式無標註資料訓練,學習通用的語言知識,並可透過微調(fine-tuning)應用於各類下游任務(如文本分類、問答、命名實體辨識等)。 ## 1.1. 語言模型的核心目標 語言模型的目的是建模一段文字序列 $x = (x_1, x_2, \dots, x_T)$ 的機率分布,使模型學會如何從上下文中預測下一個詞,進而掌握語言結構: $P(x)=P(x1,x2,…,xT)$ 可利用鏈式法則分解為: $P(x)=t=1∏TP(xt∣x1,…,xt−1)$ ## 1.2. 語言模型種類:ALM 與 MLM 語言模型的預訓練任務大致可分為兩類:自回歸語言模型(Autoregressive Language Modeling, ALM)、遮罩式語言模型(Masked Language Modeling, MLM)。 ### 1.2.1. ALM 1.模型僅利用前綴資訊,自左向右逐字預測:$P(x)=t=1∏TP(xt∣x<t)$ 2.代表模型:GPT 系列 3.舉例:給定「今天天氣真」,預測下一個詞為「好」、「壞」、「熱」等 ### 1.2.2. MLM 1.模型隨機遮蔽中間詞語,使用雙向上下文預測被遮蔽的詞:$P(x_i \mid x_{\neq i})$ 2.代表模型:BERT、RoBERTa 3.舉例:「今天天 [MASK] 真好」→ 預測「氣」 ## 1.3. 語言模型的架構:基於 Transformer 大多數 PLMs 架構基於 Transformer,包括: 1.Embedding Layer:將詞轉為向量 2.多層 Transformer 層:自注意力處理上下文 3.語言模型頭(LM Head):輸出每個位置的機率分布 時間步 $t$ 的語言模型任務為: $\text{ALM: } P(x_t \mid x_{<t}) \qquad \text{MLM: } P(x_i \mid x_{\neq i})$ # 2. PLMs 面臨的挑戰與微調策略 PLMs 面臨以下兩樣挑戰: 1.標註資料稀少:儘管 PLMs 能學得一般語言結構,但下游任務(如醫療文本分類)通常資料量小、標註成本高,導致微調效果有限。 2.模型過於龐大:PLMs 往往包含數億至數百億參數,在資源有限的設備(如手機、IoT)上無法高效推論。 | 模型 | 參數數量 | 推論延遲 | 訓練資源 | | ---------- | ---- | ---- | -------- | | BERT-base | 110M | 中等 | GPU 訓練 | | BERT-large | 340M | 高 | 多 GPU 訓練 | | GPT-3 | 175B | 極高 | 超級電腦 | 因此,實務應用面臨兩大需求: 1.降低參數數量(Parameter-Efficient) 2.減少資料需求(Data-Efficient) 因應 PLMs 面臨的挑戰,有以下微調策略: | 類別 | 技術 | 解決問題 | 是否需調整模型參數 | 適用場景 | | ------------------- | ----------------------------------------- | --------- | ---------- | -------------- | | Data-Efficient | Prompt Tuning, PET, Few-shot, Zero-shot | 標註資料少 | 可選(部分無需微調) | 任務格式可 prompt 化 | | Parameter-Efficient | Adapter, LoRA, Prefix Tuning, Soft Prompt | 模型太大、不便部署 | 只需微調少量參數 | 多任務共享、邊緣設備 | ## 2.1. 策略一:資料效率導向微調(Data-Efficient Fine-tuning) 為解決標註資料稀缺的問題,研究提出多種資料效率導向的微調方法,讓模型在只有少量資料的情況下,也能有效學習任務。: | 方法 | 說明 | | ---------------------------- | -------------------------------- | | **Few-shot Learning** | 僅使用數個標註樣本完成微調 | | **Semi-supervised Learning** | 使用少量標註資料 + 大量未標註資料進行共同訓練 | | **Zero-shot Learning** | 不使用任何標註資料,僅透過任務描述與 prompt 即可完成推論 | ## 2.2. 策略二:參數效率導向微調(Parameter-Efficient Fine-tuning, PEFT) 為因應模型龐大、微調成本高的問題,PEFT 方法的核心思想為:凍結原始 PLM,大部分參數保持不變,僅新增小模組或修改小部分參數以完成任務。 | 方法 | 插入方式 | 可訓練參數比例 | 優點 | | ------------------ | -------------------- | -------------- | ------------ | | **Adapter** | 每層 Transformer 中插入模組 | \$\sim 5%\$ | 易部署、可共享 | | **LoRA** | 將 Attention 層拆解為低秩矩陣 | \$\sim 0.1%\$ | 支援並行訓練、節省記憶體 | | **Prefix Tuning** | 為每層添加前綴向量 | \$\sim 0.1%\$ | 適合生成任務 | | **Soft Prompting** | 僅調整輸入層嵌入向量 | \$\sim 0.05%\$ | 結構最簡、訓練成本最低 | # 3. 資料效率導向微調(Data-Efficient Fine-tuning) ## 3.1. Few-shot Learning Few-shot Learning 指的是在只有數個標註樣本的情況下進行任務學習與泛化,其效果依賴模型的遷移能力(會不會舉一反三)與先驗知識(原本學過什麼)。 "LM-BFF"(Language Model - Best Friends Forever)提出以 Prompt + Demonstration 結合的方式來進行 few-shot 推論: Task: Is this review positive or negative? Demo 1: The food was amazing. It was [MASK]. → great Demo 2: The food was awful. It was [MASK]. → terrible Input: The food was fine. It was [MASK]. → ? ## 3.2. Zero-shot Learning 與多任務泛化能力 Zero-shot Learning 指的是在模型未曾見過任何標註資料的情況下,僅憑自然語言的任務描述與提示句(prompt),進行推論與預測。必須具備以下前提: 1.PLM 預訓練期間,已學習到跨任務的語言模式(如 QA、情感分析、翻譯等) 2.模型具備將輸入映射至合理輸出的潛在能力 3.Prompt 可視為一種弱監督任務表示轉換方式 當標註資料完全缺乏時,Zero-shot Learning 提供一種理想解法。透過設計合理的任務描述(task description)與 prompt 格式,結合強大的語言模型,模型可在無需再訓練的前提下完成推論任務。 ### 3.2.1. Prompt 設計範例 | 任務類型 | Prompt 格式 | | ----------- | ----------------------------------------------------------------------------- | | 翻譯 | `Translate English to French: cheese → [MASK]` | | 情感分類 | `Review: This movie is wonderful. Sentiment: [MASK]` | | 自然語言推論(NLI) | `Premise: A man is eating. Hypothesis: He is sleeping. Is it correct? [MASK]` | ### 3.2.2. 模型大小對 Zero-shot 效果影響 以 GPT-3 論文中的實驗為例,其結果顯示: 1.模型越大(參數越多):Zero-shot 性能越接近 Few-shot、Fine-tuned 性能 2.從 0.1B → 175B,Zero-shot 準確率顯著提升 ### 3.2.3. 多任務泛化能力:從 Prompt 到 T0 模型 T0 模型(由 HuggingFace 推出)是一種訓練於多任務 prompt 上的 T5 模型,T0 模型即使未看過特定任務,也能進行 Zero-shot 推論。其核心策略如下: 1.收集超過 60 個任務(包含問答、推理、摘要等) 2.每個任務均用自然語言撰寫不同風格 prompt(如「請問...」、「是否表示...」) 3.將 prompt 當作訓練樣本,統一微調 PLM ### 3.2.4. 理論支持與語意遷移假說 大型 PLM 如 GPT-3、T0 在預訓練階段已見過類似任務格式、語境與推論邏輯,因此即便新任務未曾訓練,模型仍能將語意模式遷移到新場景中。 這被視為一種語義泛化能力(semantic generalization),也是 Zero-shot Learning 成立的基礎假說。 ## 3.3. 半監督學習與 Pattern-Exploiting Training(PET) 即使有良好的語言建模能力與 Prompt 設計策略,資料量仍限制了微調成效。半監督學習(Semi-supervised Learning)提供一種方案:利用大量未標註資料搭配少量標註樣本,進一步提升語言模型的遷移能力。Pattern-Exploiting Training(PET)正是一個結合 prompt 工程與半監督學習的代表方法。PET 的做法是:把分類問題轉換成遮罩預測任務。 假設: 1.有少量標註樣本:$L = {(x_i, y_i)}_{i=1}^n$ 2.有大量未標註樣本:$U = {x_j}_{j=1}^m$,其中 $m \gg n$ 流程: 1.以 $L$ 訓練一個教師模型 $f_\theta$ 2.用 $f_\theta$ 對 $U$ 預測 pseudo-label $\hat{y}_j$ 3.將 ${(x_j, \hat{y}_j)}$ 合併進 $L$ 訓練學生模型 ### 3.4.1 Pattern-Exploiting Training(PET)原理 PET 由 Schick & Schütze(2020)提出,是一種適用於少樣本學習的 prompt-based 半監督微調策略。核心理念如下: 1.將分類任務轉換為語言模型的填空任務(cloze-style) 2.搭配 pseudo-label 機制,逐步強化模型學習 ### 3.3.2. PET 組成結構 PET 包含兩大關鍵元件: #### 3.3.2.1. Pattern 將原始輸入轉換為句子模板格式,讓語言模型以填空方式預測答案。 例: Premise: "The man is eating." Hypothesis: "He is sleeping." ➝ Pattern: Based on the passage, is it correct to say "He is sleeping"? [MASK]. #### 3.3.2.2. Verbalizer 將標籤(如 entailment, contradiction, neutral)映射至可預測詞語(如 Yes, No, Maybe)。 | 標籤 | Verbalizer 詞語 | | ------------- | ------------- | | entailment | Yes | | contradiction | No | | neutral | Maybe | ### 3.3.3. PET 訓練流程 PET 訓練共分三階段,可進一步以多種 pattern 集成(ensemble)方式提升穩定性: 1.Supervised Few-shot 預訓練:在少量標註資料上,用不同 pattern+verbalizer 組合訓練多個子模型 $f_1, f_2, ..., f_k$ 2.Pseudo-label Generation:用上一步模型對未標註樣本產生預測結果,選信心高者作 pseudo-label 3.Student Fine-tuning:用 pseudo-label 訓練新學生模型,可合併原始標註資料。 ### 3.3.4. PET數學表示 對於 pattern 處理後的輸入 $x^{(p)}$,PET 預測任務為: $\hat{y} = \arg\max_{y \in \mathcal{Y}} P(\text{[MASK]} = v(y) \mid x^{(p)})$。 其中,$v(y)$ 為 verbalizer 將類別 $y$ 映射成詞語。 ### 3.3.5. PET 與標準微調比較 | 特徵 | 標準微調 | PET 微調 | | ---- | ------------- | ------------------------ | | 輸入格式 | 原始文本 + 標籤 | Pattern 化輸入 + Verbalizer | | 輸出 | 類別標籤(softmax) | \[MASK] 填空詞語 | | 樣本利用 | 只用標註樣本 | 結合 pseudo-labeled 未標資料 | | 模型參與 | 單一模型 | 多模型訓練 + 集成預測 | # 4. 參數效率導向微調(Parameter-Efficient Fine-tuning) 隨著大型語言模型(PLMs)參數數量動輒上億,傳統的全模型微調不僅訓練成本高,亦不利於多任務部署與推論效率。因此,研究者提出多種 Parameter-Efficient Fine-tuning(PEFT) 方法,旨在僅調整少量任務特定參數,保留預訓練模型主幹不變。大型語言模型(PLMs)雖然表現優異,但完整微調會導致以下問題: 1.每個下游任務都需一份完整模型副本,佔用大量儲存空間與記憶體 2.訓練參數過多,容易過擬合,且更新成本高,難以在低資源裝置部署 因此,Parameter-Efficient Fine-tuning (PEFT) 方法的目標是在不調整主模型參數的前提下,僅透過少量任務專屬參數達成微調效果。以下為四種主流 PEFT 方法: | 方法 | 可訓練參數比例 | 插入位置 | 是否改變模型主架構 | 特點 | | -------------- | ----------- | -------------------------- | --------- | ------------------ | | Adapter | \$< 5%\$ | Transformer 層內 | 否 | 插入小型子模組,上下投影 | | LoRA | \$< 0.1%\$ | Attention/FFN 子層旁 | 否 | 加入低秩矩陣,並行於原權重矩陣 | | Prefix Tuning | \$< 0.1%\$ | 每層 attention 的 key/value 前 | 否 | 在每層加入可訓練 prefix 向量 | | Soft Prompting ( Prompt Tuning) | \$< 0.05%\$ | 僅輸入層前方(embedding 前) | 否 | 在輸入端加 trainable 向量 | ## 4.1. Adapter 在每一層 Transformer 中插入一個兩層的全連接模組: $\Delta h = W_{\text{up}} \cdot \sigma(W_{\text{down}} \cdot h)$ 最終表示為: $h' = h + \Delta h$ 其中,$W_{\text{down}} \in \mathbb{R}^{d \times r}$ 為降維,$W_{\text{up}} \in \mathbb{R}^{r \times d}$ 為升維,$\sigma$ 為非線性函數(如 ReLU)。 優點: 1.可快速擴充多任務微調,僅切換 adapter 即可 2.不需儲存多份完整模型權重 ## 4.2. LoRA(Low-Rank Adaptation) 核心想法為以低秩矩陣 $A$, $B$ 模擬原始權重更新。可插入於 Attention 層的 Query、Value 等子模塊,使模型在原有結構下學習新的特化能力: $W_{\text{LoRA}} = W + \Delta W = W + A B$ 其中,$A \in \mathbb{R}^{d \times r}$,$B \in \mathbb{R}^{r \times d}$,$r \ll d$,即 rank 遠小於原維度。 優點: 1.僅需訓練 $O(d \cdot r)$ 個參數 2.可與原模型並行部署 3.高效支援大模型(如 LLaMA、GPT-3) ## 4.3. Prefix Tuning Prefix Tuning 在每層 Attention 模塊的 key 和 value 前插入任務專屬向量,操作方式為: 1.在每一層 Transformer attention 的 key/value 前插入 trainable prefix 向量 2.模型在計算注意力時會同時 attend 這些 prefix 對每層 attention 而言: $\text{Attn}(Q, K, V) \Rightarrow \text{Attn}(Q, [K_{\text{prefix}}, K], [V_{\text{prefix}}, V])$ 優點: 1.不更動主模型任何層參數 2.適合多層導入以控制模型行為 ## 4.4. Soft Prompting(延伸自 Prompt Tuning) Prompt Tuning 只訓練一小段提示向量(Soft Prompt),不改語言模型本體,就能完成下游任務。 Soft Prompting 只在輸入 token 之前加上若干 trainable 向量(非詞彙),例如加上 $n$ 個維度為 $d$ 的向量: $\text{Input} = [P_1, P_2, \dots, P_n, x_1, x_2, \dots, x_T]$ 其中,$P_i \in \mathbb{R}^{d}$ 為可訓練 prompt 向量,$x_j$ 為原始輸入 token 的嵌入表示。 優點: 1.訓練速度快、參數極少 2.可視為 soft 化的 prompt template # 5. Early Exit 提升推論效率 大型 Transformer 模型因其深層結構,在推論階段往往需要通過所有層,導致延遲高與效能瓶頸。在許多實務應用中,輸入樣本難度不一,有些樣本在早期層已能得到高信心預測。 因此,提出 Early Exit(提早退出) 策略,透過中途判斷模型信心,自動決定是否提早產出輸出,避免執行完整深度。 ## 5.1 問題定義 傳統推論需計算所有 $L$ 層: $h^{(L)} = f^{(L)} \circ f^{(L-1)} \circ \dots \circ f^{(1)}(x)$ Early Exit 允許模型在中間某層 $l \leq L$ 停止,當該層輸出達到預設信心閾值 $\tau$ 時即產生預測: $\text{if } \max \left( \text{softmax}(f_{\text{cls}}(h^{(l)})) \right) > \tau \Rightarrow \text{Exit at layer } l$ ## 5.2 策略設計 模型擴充方式: 1.在每層 $l$ 增加 classifier head $f_{\text{cls}}^{(l)}$ 2.設計信心預測器或使用 softmax 最大值作為啟發式準則 決策機制: 1.若 $f_{\text{cls}}^{(l)}(h^{(l)})$ 置信度高,則產出預測並停止前向傳播 2.否則進入下一層繼續推理 ## 5.3 效果分析 實驗顯示,在多個自然語言任務上,Early Exit 可在 幾乎不損準確率的情況下,顯著降低平均推論層數與時間: | 任務 | 模型 | 完整層數 | Early Exit 層數 | 差異(層) | 準確率變化 | | ----- | ---------- | ---- | ------------- | ----- | --------- | | SST-2 | BERT-base | 12 | 6 | -6 | \$+0.5%\$ | | MNLI | BERT-base | 12 | 9 | -3 | \$-0.2%\$ | | QQP | BERT-large | 24 | 10 | -14 | \$-0.4%\$ | 註:此結果來自論文 "Right Tool for the Right Job: Efficient Fine-tuning for Transformers"(2020) ## 5.4 優點與挑戰 優點: 1.有效降低推論延遲,提升反應時間 2.節省計算成本,適用於部署至邊緣裝置 挑戰: 1.如何設計穩定、泛化性強的信心預測器 2.較難在所有任務類型上保證準確率不變 3.多任務學習場景下可能造成過早退出導致性能下降 # 6.技術總結 ## 6.1 核心概念整理 | 問題面向 | 解決策略 | 關鍵技術方法 | | ---------------------------- | ----------------- | ----------------------------------------- | | 資料稀缺(Data Efficiency) | 使用 Prompt 設計與語義遷移 | Prompt Tuning、Soft Prompting | | 模型龐大(Parameter Inefficiency) | 凍結主模型、僅訓練小模組 | Adapter、LoRA、Prefix Tuning、Soft Prompting | | 推論延遲(Inference Cost) | 提早產出、動態調整推理深度 | Early Exit | ## 6.2 各方法特性與比較 | 方法 | 是否改模型主體 | 插入層級 | 訓練參數比例 | 是否支援多任務共享 | 優點 | | ------------------ | ------- | ------------------ | ----------- | --------- | ------------ | | **Adapter** | 否 | 每層 Transformer | \$< 5%\$ | 是 | 易實現、泛化能力強 | | **LoRA** | 否 | Attention / FFN | \$< 0.1%\$ | 是 | 支援並行訓練、適合大模型 | | **Prefix Tuning** | 否 | Attention Prefix | \$< 0.1%\$ | 是 | 注重語義引導 | | **Soft Prompting** | 否 | 僅在 Input 層 | \$< 0.05%\$ | 是 | 結構最輕量 | | **Early Exit** | 否 | 加 classifier per 層 | 無新增參數 | 否 | 降低延遲、節省資源 | ## 6.3 尚待解決的研究問題(Open Questions) ## 6.3.1. 理論基礎與理解 1.為何 Soft Prompting 能有效引導模型? 2.PEFT 方法與原始表示學習之間的表徵轉換關係是什麼? ## 6.3.2. 多任務與終身學習適應 1.如何在無災難性遺忘的前提下整合多個任務? 2.是否能發展出任務感知(task-aware)切換機制? ## 6.3.3. 安全性與隱私性議題 1.Prompt Tuning 是否存在 adversarial prompt 攻擊風險? 2.如何在不洩漏原始模型資訊下完成訓練(例如加密 soft prompt)? ## 6.3.4. 在邊緣設備部署上的可行性 1.如何將 Early Exit 動態調整策略整合至模型壓縮框架? 2.是否能進一步提出資源感知微調方法(resource-aware tuning)?