2020-GPT3與縮放定律#
案件摘要#
2020 年 5 月,OpenAI 發表 GPT-3(Brown 等人《Language Models are Few-Shot Learners》,NeurIPS 2020):1750 億參數、以約 3000 億 token 訓練的自回歸語言模型。它不需要微調,只要在 prompt 中給幾個例子(few-shot / in-context learning),就能執行翻譯、問答、程式碼生成等任務。破案的關鍵證詞來自同年 1 月 Kaplan 等人的《Scaling Laws for Neural Language Models》:模型損失隨參數、資料、算力呈冪律下降。這樁案件確立了「規模就是能力」的現代 LLM 範式。
前因 -- 為什麼會有這個案子#
- GPT-2(2019,15 億參數)已經展示 zero-shot 的潛力:單一語言模型不微調就能勉強做閱讀理解與摘要,但規模不足,品質離實用有一段距離。
- BERT(2018)確立的「預訓練 + 微調範式」雖然橫掃榜單,但每個新任務都要標註資料、都要重新訓練一次——對 OpenAI 而言,這條路線擴展性太差。
- Kaplan 等人 2020 年 1 月的縮放定律研究給出關鍵線索:在跨越七個數量級的範圍內,語言模型的測試損失是參數量 \(N\) 、資料量 \(D\) 、算力 \(C\) 的平滑冪律函數——沒有飽和的跡象。
- OpenAI 於是下了一個大賭注:與其設計更精緻的架構或微調流程,不如把規模推到極限。GPT-3 就是這個賭注的實驗證明。
線索與推理 -- 數學式、程式、理論#
縮放定律:冪律的第一現場#
Kaplan 等人的核心發現:當資料與算力不成瓶頸時,測試損失隨參數量 \(N\) 冪律下降:
資料與算力同理: \(L(D) \propto D^{-\beta_D}\) 、 \(L(C) \propto C^{-\beta_C}\) 。更一般的三因子形式:
這條平滑曲線的偵查意義:只要把曲線上的點畫出來(log-log 圖是一條直線),就能外推「再大一點的模型會有多好」。冪律沒有提供解釋,但提供了可靠的預測——這正是工程賭注需要的東西。
GPT-3 的規模與訓練#
GPT-3 沿用 GPT-2 的 decoder-only 自回歸架構,只做少量修改(alternating dense/sparse attention),把參數推到 1750 億:
訓練語料混合了 Common Crawl、WebText、書籍與維基百科,約 3000 億 token。對照當時最大的 BERT(3.4 億)與 GPT-2(15 億),GPT-3 大了一個數量級以上。
Few-shot / in-context learning:無需梯度的學習#
第二個破案時刻:GPT-3 在 prompt 中給 \(K\) 個範例(few-shot, \(K \in \{1, 10, 100\}\) ),就能在許多任務上逼近甚至超過微調過的模型。它不是在學習參數,而是把範例放進條件:
與 BERT 範式的對照:BERT 是「MLM 預訓練 + 每任務梯度微調」,GPT-3 是「自回歸預訓練 + in-context 條件化」。前者的知識儲存在權重裡,每換任務要重訓;後者的「適應」發生在前向計算的注意力之內,成本是幾個 prompt token。
湧現能力:跨越門檻才出現的能力#
第三條線索由 Wei 等人(2022)整理:某些能力(多位數算術、詞語消歧、Chain-of-Thought 推理)在小模型上近乎隨機,跨過某個規模門檻後突然出現。這個「湧現」現象成為規模賭注最有力的旁證——但也埋下爭議:Schaeffer 等人(2023)指出,部分湧現可能只是不連續評估指標(如 exact match)造成的度量偽象,換成連續指標後曲線就變平滑。
程式示範:模擬縮放定律的 log-log 圖#
以下 Python(numpy + matplotlib)畫出冪律損失曲線並做外推:
import numpy as np
import matplotlib.pyplot as plt
alpha = 0.076 # Kaplan 縮放定律的參數指數
L_inf = 1.6 # 不可約損失(熵的下限)
N_c = 8.8e13 # 特徵參數量常數(Kaplan 2020)
def loss(N):
return L_inf + (N_c / N) ** alpha
N_range = np.logspace(9, 11.5, 12) # 觀測點:10億到約3000億參數
L_obs = loss(N_range) + np.random.default_rng(0).normal(0, 0.005, len(N_range))
N_extrap = np.logspace(8.5, 12.5, 100) # 外推曲線
plt.figure(figsize=(7, 4.5))
plt.loglog(N_extrap, loss(N_extrap), label=r"$L(N)=L_\infty+(N_c/N)^{\alpha}$")
plt.scatter(N_range, L_obs, color="red", zorder=3, label="observed models")
plt.axvline(175e9, color="gray", ls="--", label="GPT-3 (175B)")
plt.xlabel("parameters N (log)")
plt.ylabel("test loss (log)")
plt.legend()
plt.title("Scaling Laws: power-law on log-log axes")
plt.tight_layout()
plt.savefig("scaling_law.png", dpi=120)
# 冪律在 log-log 下是直線:扣除不可約損失後,斜率即 -alpha
slope = np.polyfit(np.log(N_range), np.log(L_obs - L_inf), 1)[0]
print(f"fit slope = {slope:.4f} (theoretical -alpha = {-alpha:.4f})")
# 觀察:扣除 L_inf 後,log-log 圖近似直線,斜率回到 -0.076 附近
結案 -- 後果與影響#
- 「規模就是能力」成為 LLM 軍備競賽的宣言:PaLM(2022,5400 億參數)、GPT-4(2023)持續推高規模。
- Chinchilla(Hoffmann 等人,2022)修正 Kaplan 的配方:在固定算力下,資料與參數應等比例放大(約 20 token/參數)——計算最優(compute-optimal)訓練成為新標準。
- in-context learning 改寫了 NLP 的工作方式:任務模型被 prompt engineering 取代,開發者不再訓練模型,而是撰寫範例與指令。
- 湧現能力的哲學爭論持續:能力是真正的相變,還是度量方式的偽象(Schaeffer 2023)——問題仍未完全結案。
- GPT-3 API(2020 年 6 月)開啟「模型即服務」的商業模式,LLM 從學術論文走進產品。
關鍵人物與文獻(條列,含真實文獻書目)#
- Tom Brown、Benjamin Mann、Nick Ryder 等人(OpenAI):Language Models are Few-Shot Learners. NeurIPS 2020(GPT-3,arXiv:2005.14165)。
- Jared Kaplan、Sam McCandlish 等人(OpenAI):Scaling Laws for Neural Language Models. arXiv:2001.08361, 2020。
- Alec Radford、Jeffrey Wu、Rewon Child 等人:Language Models are Unsupervised Multitask Learners(GPT-2). OpenAI Technical Report, 2019。
- Jacob Hoffmann、Sebastian Borgeaud 等人:Training Compute-Optimal Large Language Models(Chinchilla). NeurIPS 2022(arXiv:2203.15556)。
- Jason Wei、Yi Tay、Rishi Bommasani 等人:Emergent Abilities of Large Language Models. TMLR 2022(arXiv:2206.07682)。
- Rylan Schaeffer、Brando Miranda、Sanmi Koyejo:Are Emergent Abilities of Large Language Models a Mirage? NeurIPS 2023(arXiv:2304.15004)。