Skip to content

台大陳縕儂 ADL 2025 Fall 導讀:預訓練三大類與 Prompt Learning——從 BERT、GPT、T5 到「人不懂沒關係機器懂就好」

2026年9月30日1 分鐘
TL;DRADL Fall 2025 第 6 講把預訓練模型分成三類:encoder(BERT 家族,雙向上下文)、decoder(GPT 系列,擅長生成)、encoder-decoder(BART、T5,用去噪目標預訓練)。接著點出預訓練模型時代的兩個實際難關:下游標註資料少,以及模型越來越大、每個任務各存一份放不下。講義的解法是 prompt learning:先用 GPT-3 的 in-context learning 說明「不更新參數也能做任務」,再從人寫的 hard prompt(prompt template+verbalizer、LM-BFF)走到直接優化向量的 soft prompt(P-Tuning、Prefix-Tuning、Prompt Tuning),最後用 Liu 等人的 prompting 分類法收尾。

🌏 English version

本文依據台大陳縕儂《深度學習之應用》(ADL)Fall 2025(114-1,2025/09/01–12/15)9/15 那一週的教材。 這是台大陳縕儂 深度學習之應用 2025 Fall 導讀系列第 8 篇。第 6 篇講了 BERT 與它的家族,上一篇 HW1 把 BERT 用在中文抽取式問答。這一篇把視角拉高:encoder-only、decoder-only、encoder-decoder 差在哪?模型變大之後,為什麼可以只給 prompt 就做任務?

用到的官方材料:

存取等級沿用系列的 A2:本講的講義與影片都公開,本週沒有新作業(HW2 的題目在第 10 篇,只有說明影片)。

預訓練是什麼

講義第 2 頁的比喻:先讀教科書學通識,再去考特定科目。預訓練就是在大量、多樣的資料上先訓練模型,之後再針對特定任務微調。三個關鍵步驟是大規模多樣資料、self-supervised learning、學到通用表示;換來的是可擴展、可泛化、可遷移。

資料從哪裡來?第 3 頁以 BookCorpus(smashwords.com 上的免費書)為例;第 4 頁提到網路規模資料的「合理使用 vs. 著作權」問題:各國法規還在演變,沒有統一標準。

三種預訓練架構

第 5 頁的表是整講的地圖,後面反覆出現:

類型特性例子
Encoder雙向上下文BERT 與它的變體
Decoder語言模型,適合生成GPT、GPT-2、GPT-3
Encoder-Decodersequence-to-sequenceTransformer、BART、T5

Encoder:BERT 家族

第 7–8 頁快速回顧:BERT 用 masked LM 隨機遮 15% 的 token;RoBERTa 主要是用更多資料訓練更久,SpanBERT 遮連續的 span,讓預訓練任務更難也更有用。細節在第 6 篇。

為什麼還需要 decoder

第 9 頁講清楚 encoder 的限制:BERT 這類預訓練 encoder 不會自然地一個字一個字生成。例子是「Vivian goes to [MASK] tasty tea」:encoder 只能填空,decoder 則能從「Vivian goes to」一路接著寫出「make tasty tea」。

Decoder:GPT 系列

  • GPT(Radford 等人 2018):Transformer decoder,在 BooksCorpus(約 7000 本書、5GB)上預訓練;12 層、768 維 hidden、3072 維 feed-forward、BPE 做 40,000 次合併。下游用監督式微調,微調時保留 next-word prediction。
  • GPT-2(Radford 等人 2019):更多資料(來自 Reddit 的 WebText,40GB),適合自然語言生成。
  • GPT-3(Brown 等人 2020):更多資料,來源包括 Common Crawl、WebText2、Books1&Books2、英文 Wikipedia。

第 15 頁把三代並排:GPT 117M 參數、GPT-2 1.5B、GPT-3 175B;GPT-4(2023)與 GPT-5(2025)兩列的參數與資料量都寫「?」——講義誠實標出這些數字沒有公開。

Encoder-Decoder:BART 與 T5

第 17 頁說明這類架構的分工:encoder 享有雙向上下文,decoder 負責用語言模型的方式訓練整個模型。預訓練目標是 span corruption(去噪),在前處理時就做好。

兩個模型的差別在第 18 頁用同一個句子示範(Thank you for inviting me to your party last week):

  • BART:輸入被挖空的句子,輸出整句原文。
  • T5:輸入把挖空處換成 <X>、<Y> 這類標記,只輸出缺掉的部分:<X> for inviting <Y> last <Z>。

微調做分類時也不同(第 19 頁):BART 把輸入在 decoder 重複一次、用最後的輸出預測標籤;T5 則把分類也當成 seq2seq,直接生成標籤文字。第 22 頁點出 T5 的多任務預訓練「用 seq2seq 學多個任務」,講義註解這和現在的 post-training 流程很像——這是下一篇後訓練的伏筆。

第 23 頁把兩者並排比較:BART 的訓練資料約是 T5 的 2 倍;位置編碼上 BART 用可學的絕對位置、T5 用相對位置;講義附的理解與摘要任務表中,BART 在多數欄位分數較高。

預訓練模型時代的兩個難關

影片 6.3 的副標叫「預訓練模型世代的難關」。第 24 頁先定義標準做法:用預訓練模型初始化,再針對下游任務調整參數。問題有兩個。

難關一:標註資料少

第 25 頁列出 GLUE 各任務的資料量,從 MNLI 的 391K 到 RTE 的 2.5K,差了兩個數量級。講義的結論是:更實際的情況是 few-shot、one-shot 甚至 zero-shot。

這時 GPT-3 的 in-context learning 登場(第 26–28 頁)。和 fine-tuning 對照:

  • Fine-tuning:預訓練後,用任務的標註資料更新模型參數。
  • In-context learning:預訓練後不再學習,只在輸入裡給說明和少數範例。

講義用一個很在地的例子:英檢的「詞彙與結構」題型說明加一題例題(正確答案為 D),就是在給模型「少數範例」。zero-shot、one-shot、few-shot 的差別只在範例給幾個。

難關二:模型太大

第 33 頁把模型尺寸排成一張表,從 ELMo 93M、BERT-Base 110M、BERT-Large 340M,到 GPT-3 的八種尺寸,最大的 175B 有 96 層。大模型表現更好(第 34–35 頁),但代價是:

  • 訓練成本:第 37–38 頁引用 Sevilla 等人 2022 的算力趨勢分析。
  • Scaling laws:第 39 頁的 Kaplan 等人 2020描述模型品質如何隨模型大小 N、資料量 D、算力 C 變化,可以用來預測表現、分配資源;第 40 頁的 Hoffmann 等人 2022則指出模型大小和訓練 token 數應該等比例擴大——Chinchilla 模型比其他更大的模型小,卻表現更好,講義註解這對微調和推論都有利。
  • 儲存空間:第 41 頁,每個任務都要存一份完整模型。一個 11B 參數的模型,三個任務就是三份 11B。

第 42 頁把兩個難關收成一句:解法是 prompt learning。

Hard prompt:用自然語言提示模型

第 45–46 頁用 NLI 例子對照兩種做法。原本要在 [CLS] 前提 [SEP] 假設 [SEP] 後面接分類器預測 neutral/contradiction/entailment;prompt 版本則把輸入改寫成「Vivian likes dancing. Is it true that Vivian loves singing?」,讓模型直接回答 maybe/no/yes。

第 47–50 頁把 prompt-tuning 拆成三個元件:

  1. Prompt template:人為設計的自然語言輸入格式,例如 前提? [MASK], 假設。
  2. PLM:做語言模型預測(masked LM 或自回歸 LM 都可以)。
  3. Verbalizer:把詞彙映射回標籤,例如 yes → entailment、maybe → neutral、no → contradiction。

第 51–52 頁:少量標註資料就能微調,zero-shot 時甚至完全不調參數。講義引用 Le Scao 與 Rush 2021 說明資料稀少時 prompt-tuning 表現較好,因為它更能利用、也能保留預訓練學到的知識。

LM-BFF(Gao 等人 2021,第 53–54 頁)再往前一步:prompt 加上示範例子(demonstration),並自動生成 template;講義附的是用 RoBERTa-Large 的結果。

Soft prompt:人不懂沒關係,機器懂就好

Hard prompt 的問題在第 55 頁:

  • 人覺得合理的 prompt,對模型不一定有效(講義引 Liu 等人 2021)。
  • 預訓練模型對 prompt 的選擇很敏感(Zhao 等人 2021)。

所以乾脆不找文字,直接優化向量:

方法做法講義重點
P-Tuning(Liu 等人 2021)直接優化 prompt 的 embedding,而不是找 prompt 文字例子:為「The capital of Britain is [MASK]」搜尋 prompt
Prefix-Tuning(Li 與 Liang 2021)只優化每一層的 prefix embedding訓練時間與空間更有效率
Prompt Tuning(Lester 等人 2021)每個任務只存一小段 prompt(只在一層),推論時可以混合不同任務共用同一個原始模型表現有競爭力,空間效率更好

第 59 頁把 fine-tuning、prefix-tuning、hard 與 soft prompt-tuning 並排比較表現與空間效率。這條線直接接到第 10 篇 PEFT:Adapter 與 LoRA 也是在回答「不動整個大模型,只調一小部分」。

Prompting paradigm:一張分類地圖

第 60–66 頁依 Liu 等人 2021 的綜述,把 prompting 研究分成五個維度,影片 6.6 叫它「基於提示的研究大補帖」:

  • 預訓練模型:left-to-right LM(GPT 系列)、masked LM(BERT、RoBERTa)、prefix LM(UniLM)、encoder-decoder(T5、BART)。
  • Prompt engineering:形狀(cloze 填空 vs. prefix 前綴)、人工設計 vs. 自動(離散如 LM-BFF,連續如 Prefix-Tuning)。
  • Answer engineering:答案的形狀(token、span、句子)與設計方式。
  • Multi-prompt learning:ensemble、augmentation、composition、decomposition、sharing。
  • Training strategies:哪些參數要調——promptless fine-tuning(BERT)、tuning-free prompting(GPT-3)、fixed-LM prompt tuning(Prefix-Tuning)、fixed-prompt LM tuning(T5)、prompt+LM tuning(P-Tuning)。

最後這個維度最實用:拿到一篇新方法,先問它調模型參數、調 prompt 參數,還是都不調。

讀完這篇能做什麼

  • 看到一個模型名稱,說出它屬於 encoder、decoder 還是 encoder-decoder,以及預訓練目標是什麼。
  • 解釋 fine-tuning 和 in-context learning 的差別,以及 scaling laws 在資源分配上回答什麼問題。
  • 區分 hard prompt(template+verbalizer、LM-BFF)和 soft prompt(P-Tuning、Prefix-Tuning、Prompt Tuning)在「調什麼、存什麼」上的不同。

怎麼做:拿上一篇 HW1 的 paragraph selection 當例子,試著把它改寫成 prompt 形式:設計一個 template(例如「問題:…段落:…這段能回答問題嗎?[MASK]」)和一個 verbalizer(能/不能),再對照講義第 61–66 頁,寫下這個做法在五個維度上各屬於哪一格。

本文能確認與不能確認的

能確認:講義 67 頁的每頁標題、列點與表格文字,影片標題與長度(播放清單核對),上面每篇 arXiv 論文的標題(arXiv 核對)。

不能確認:本文沒有逐字聽寫影片,老師口頭補充的例子與評論沒有寫進來。講義中的圖表(GPT-3 各任務表現、訓練成本、scaling laws、LM-BFF 與 prompt tuning 的結果)只轉述標題與結論,數字請以原論文為準。GPT-3 資料量講義寫 45TB,這是講義的數字,本文沒有另外核對原論文的前處理前後定義。

延伸閱讀:站上 CS224N 第 7 講:預訓練講同樣的三種架構與 in-context learning;CS336 的 scaling laws 基礎把 Kaplan 與 Chinchilla 講得更深;CS224U 的 in-context learning從 prompt 設計與 DSPy 的角度延伸。

系列導覽:系列總覽|上一篇 HW1 中文抽取式問答|下一篇 後訓練:Instruction Tuning、RLHF 與 InstructGPT

參考資料