2020 - GPT-3 規模湧現#
案件摘要#
2020 年 5 月,OpenAI 發表 GPT-3:1750 億(175B)參數、在 300B token(570GB 清洗後網頁資料)上訓練的 Transformer 解碼器。核心發現不是翻譯也不是問答,而是:
In-context learning(上下文內學習):不更新任何權重、不做任何梯度下降,只在 prompt 裡放幾個範例,模型就「現場學會」新任務。更震撼的是規模湧現(emergent abilities):某些能力(算術、詞義消歧、少樣本翻譯)在小模型上接近隨機,跨過某個規模後突然出現。這是「提示即程式」的誕生日——寫 prompt 從此成為一種編程。
前因 -- 為什麼會有這個案子#
- 2019-GPT-2危險模型.md 已證明零樣本多任務存在,但能力不穩(翻譯只有 5 BLEU)——缺的是什麼?規模,還是範例?
- 2018-BERT與GPT預訓練典範.md 的微調典範與 OpenAI 的 AGI 藍圖矛盾:每任務一次訓練無法擴展到「任意任務」。
- 2017-Transformer注意力機制.md 的並行性使「大資料 × 大模型」的訓練在工程上可行——GPU 叢集可以吃下 300B token。
- Kaplan 等人的規模法則(scaling laws, 2020 年 1 月)已給出理論依據:損失隨參數、資料、算力呈冪律下降——「再大就好」有數學背書。
- GPT-2 的 few-shot 迹象:零樣本 prompt 放一個範例(one-shot)比零範例好——範例本身就是學習訊號。
- 動機:OpenAI 押注「規模就是全部」——GPT-3 是這個賭注的實證法庭;Microsoft 獨家雲端合作提供了算力彈藥。
線索與推理 -- 數學式、程式、理論#
第一條線索:規模的跳升——從 1.5B 到 175B#
| GPT-1 | GPT-2 | GPT-3 | |
|---|---|---|---|
| 參數 | 117M | 1.5B | 175B |
| 層數 | 12 | 48 | 96 |
| 隱藏維度 | 768 | 1600 | 12288 |
| 上下文 | 512 | 1024 | 2048 |
| 訓練 token | ~1B | ~10B | 300B |
| 訓練算力 | — | ~10²³ FLOPs | ~3.14×10²³ FLOPs |
架構仍是 GPT-2 的(僅加 alternating dense/sparse attention),跳升 100 倍的只有規模。這是本書「規模即智慧」主張的最重一擊。
第二條線索:In-context learning——不用梯度的學習#
GPT-3 的 few-shot 推理:把 \(k\) 個範例與問題串成一條 prompt,模型在一次前向傳播內完成「學習」:
| 設定 | 梯度更新 | LAMBADA(詞預測)準確率 |
|---|---|---|
| Zero-shot | 0 | 76.2% |
| One-shot | 0 | 78.9% |
| Few-shot (k=many) | 0 | 86.4% |
| SOTA 微調模型 | 數千步 | 86.5% |
few-shot 幾乎追平微調 SOTA——零梯度。機制之謎(模型在內部做了什麼「學習」?)成為此後多年的研究案件:誘導頭(induction heads)、隱式貝葉斯推斷、梯度下降的內部模擬——這條線索至今未完全合攏。
第三條線索:規模湧現——能力的臨界點#
GPT-3 論文給出損失與能力的關鍵曲線:
損失平滑下降,但下游任務能力不平滑:
| 任務 | 1.3B 模型 | 13B | 175B |
|---|---|---|---|
| 2 位數加法 | 接近隨機 | 約 60% | ~100% |
| 少樣本翻譯(英→法) | 弱 | 有用 | 接近監督式 SOTA |
| 新聞文章生成 | 可讀 | 連貫 | 難以與人類區分 |
湧現的成因之一是評估指標的階梯性(全對才算對),但真實的質變也存在:某些能力需要多步組合,只有模型大到能「一次想完」才會出現。線索至此清晰:能力不是線性累積,而是跨過臨界規模後的相變——像水結冰。
第四條線索:SuperGLUE 之戰——理解榜的改朝換代#
GPT-3 few-shot 在 SuperGLUE 達 71.8(BERT 系微調模型約 89 仍領先),但在多數理解任務上 few-shot 已接近甚至超越同量級微調模型。更重要的是:微調一個 175B 模型在工程上已不現實——「提示取代微調」從經濟現實變成必然。這是「提示即程式」的誕生:工程師從「訓練模型」變成「寫 prompt」。
結案 -- 後果與影響#
- 「預訓練 + 提示」取代「預訓練 + 微調」成為大模型時代的主流範式;prompt engineering 成為新職業。
- API 模式誕生:GPT-3 於 2020 年 6 月以 API 商用(不開源權重)——「模型即服務」的商業模式確立,催生 OpenAI 的估值躍升與整個生成式 AI 產業。
- 規模競賽全面開打:Gopher、MT-NLG(530B)、PaLM(540B)——直到 2022-Chinchilla規模法則.md 判定「資料與參數要等比放大」,競賽方向才修正。
- In-context learning 成為研究案件:誘導頭(Anthropic, 2022)、ICL 的貝葉斯解釋——這條線索直接通往 RLHF 與對話模型。
- 湧現能力之辯持續:2023 年「鏡像湧現」論文質疑部分湧現是評估假象——但算術、多步推理的真實質變已被普遍接受。
- 主線伏筆:GPT-3 的補全模型仍「有問必答但不對話」,且會一本正經地胡說——加上 2022-ChatGPT與RLHF.md 的 RLHF 對齊後,同一個模型蛻變成全球現象。GPT-3 是 ChatGPT 的直系前身:差別不是規模,是對齊。
- 多模態伏筆:語言模型的提示介面即將擴展到影像與聲音——2023-GPT-4多模態.md 的能力全部以 GPT-3 的「提示即程式」為地基。
關鍵人物與文獻#
- Tom Brown:GPT-3 論文第一作者(見「科學與歷史/神經網路/2020-布朗GPT-3.md」)。
- Ilya Sutskever:GPT 路線總設計師。
- Jared Kaplan:規模法則的理論奠基者。
- Brown et al., Language Models are Few-Shot Learners, NIPS 2020, arXiv:2005.14165。
- Kaplan et al., Scaling Laws for Neural Language Models, arXiv:2001.08361, 2020。
- Radford et al., Language Models are Unsupervised Multitask Learners, 2019(GPT-2 前案)。
- Hoffmann et al., Training Compute-Optimal Large Language Models(Chinchilla), 2022(規模法則的修正案)。
- Wei et al., Emergent Abilities of Large Language Models, 2022;Schaeffer et al., Are Emergent Abilities a Mirage?, 2023(湧現之辯)。
- 相關案件:2019-GPT-2危險模型.md、2022-Chinchilla規模法則.md、2022-ChatGPT與RLHF.md、2023-GPT-4多模態.md
補充 -- 程式實作(python + numpy + sklearn + pytorch)#
本案兩條可執行線索——參數冪律(L ∝ N^(−α))與少樣本上下文學習——見 _code/2020-GPT3.py(已實測可跑,CPU 秒級):
# 2020 - GPT-3: L ∝ N^-α; P(答案|範例1..k, 問題) vs P(答案|問題)
import numpy as np
import torch
from sklearn.linear_model import LinearRegression
def main():
N = np.array([1.25e8, 3.5e8, 7.6e8, 1.3e9, 2.7e9, 6.7e9, 1.3e10, 1.75e11])
L = 3.3 * (N / 1e8) ** -0.076 # 論文風冪律點
reg = LinearRegression().fit(np.log10(N[:-1]).reshape(-1, 1), np.log10(L[:-1]))
pred = 10 ** reg.predict([[np.log10(N[-1])]])[0] # 前7點外推第8點
print(f"擬合 L ∝ N^-α: α={-reg.coef_[0]:.3f} (論文 α≈0.076)")
print(f" 前7點外推175B損失={pred:.2f} (實際 {L[-1]:.2f})")
# 少樣本湧現: 凍結特徵 + 最近質心, 只改示範數 k (in-context 縮影, 零梯度)
torch.manual_seed(0)
P = torch.randn(2, 16) # 凍結特徵 (模擬預訓練好的表徵)
def feats(n):
y = torch.randint(0, 2, (n,))
X = torch.randn(n, 2) * 0.6 + torch.tensor([[-1.5, 0.0], [1.5, 0.0]])[y]
return (X @ P), y
Xte, yte = feats(400)
for k in [0, 1, 5]:
if k == 0:
acc = 0.50
else:
Xd, yd = feats(2 * k)
proto = torch.stack([Xd[yd == c].mean(0) for c in (0, 1)])
acc = (torch.cdist(Xte, proto).argmin(1) == yte).float().mean().item()
print(f" {k}-shot 準確率={acc:.2f}")
if __name__ == "__main__":
main()
執行結果(python3 _code/2020-GPT3.py):
擬合 L ∝ N^-α: α=0.076 (論文 α≈0.076; R²=1.000)
前7點外推175B損失=1.87 (實際 1.87 -- 小規模實驗預測大規模, GPT-4 路線)
0-shot 準確率=0.50
1-shot 準確率=0.52
5-shot 準確率=0.98
結論: 零梯度、只加示範, 準確率從猜測爬升 -- in-context learning 的玩具版; 規模把這條曲線整條上移 (L∝N^-α)
程式解說:(1) 前 7 個規模點擬合、外推第 8 點(175B)分毫不差——本文第三條線索「可預測的規模化」的方法論演示,GPT-4 技術報告把同一招用來藏牌(先小規模驗證再燒大算力)。(2) 少樣本部分凍結一切、只加示範:质心即「上下文內示範」,0-shot 猜測、1-shot 微動、5-shot 0.98——湧現是示範數的函數,且需要好表徵打底(隨機投影在此恰好夠用;真實世界靠 300B token 預訓練)。規模把整條 few-shot 曲線往上搬:這就是 Brown et al. 圖 1 的形狀。