💡 一句話定義
Scaling Laws(規模法則) =模型的預測誤差(loss)會隨著參數量 N 、訓練資料 D 、算力 C 變大,以冪次律(power law) 平滑且可預測地下降。Chinchilla 進一步指出:在固定算力下,N 與 D 要一起等比例放大 最有效率,經驗法則是每個參數約配 20 個 token 。
🎮 互動:Scaling 沙盒 + 成本計算機
上半部拉「參數 N」「資料 D」兩根桿,看 loss 怎麼變、算力多大、是否 compute-optimal;下半部選 GPU,估算要燒多少 FLOPs、GPU 時數與金額 。試試 GPT-3 預設 感受一下規模。
📈 Scaling 沙盒
GPT-2 (1.5B)
GPT-3 (175B)
Chinchilla (70B)
7B×20(最佳)
參數量 N –
訓練資料 D(tokens)–
預測 Loss(越低越好) –
訓練算力 C ≈ 6ND –
每參數 token 數 –
Loss 組成:越往右越是「訓練不足」造成,最左邊那塊是語言本身的隨機性(降不下去) 。
不可約 loss E(語言熵)
參數不足項 A/Nᵅ
資料不足項 B/Dᵝ
–
💸 算力成本計算機
沿用上面的 N、D,用 C ≈ 6ND 估算訓練成本(皆為量級估計,可自行調整)。
V100
A100
H100
MFU 有效利用率 40%
投入 GPU 數量(估牆鐘時間)–
每顆 GPU 每小時價格(US$)
估算訓練成本 –
GPU 時數 –
牆鐘時間 –
用電量 –
碳排(粗估) –
📉 冪次律:為什麼「砸資源」有效
Scaling law 的神奇之處是:在 log-log 圖上,loss 對算力幾乎是一條直線 ——代表你能事先預測 「再多花 10 倍算力,loss 大概降到多少」。Chinchilla 把 loss 拆成三塊:
$$ L(N, D) = \underbrace{E}_{\text{語言本身的熵}} + \underbrace{\frac{A}{N^{\alpha}}}_{\text{參數不足}} + \underbrace{\frac{B}{D^{\beta}}}_{\text{資料不足}} $$
E≈1.69 是降不下去的「不可約 loss」;把 N、D 放大會壓低後兩項,但永遠碰不到 E。
⚖️ Chinchilla:算力要「聰明花」
🎯 compute-optimal 固定算力下,N 與 D 等比例 一起放大,loss 最低。
📏 20 tokens/參數 經驗甜蜜點:每個參數大約配 20 個訓練 token。
😮 GPT-3 其實欠訓練 175B 只吃 300B tokens(≈1.7×),資料太少,沒把算力用滿。
同樣的算力,Chinchilla(70B×1.4T)比更大的模型 loss 還低,而且更小、推論更便宜 。這翻轉了「越大一定越好」的直覺——大,但要配夠資料 。
🧮 算力怎麼估:C ≈ 6ND
訓練一個 Transformer 的總算力可用一條好記的公式估:C ≈ 6 × N × D (FLOPs)。其中 N=參數量、D=訓練 token 數;係數 6=前向 2 + 反向 4 FLOPs/每參數每 token。
以 GPT-3 為例:$6 \times 175{\times}10^{9} \times 300{\times}10^{9} \approx 3.15 \times 10^{23}$ FLOPs——跟論文回報的數字幾乎一致。用上面的計算機可以把它換算成 GPU 時數與金額。
🤔 為什麼模型越做越大?又不能「只」放大?
為什麼變大: 因為 scaling law 幾乎保證「更多參數+更多資料+更多算力 → 更低 loss、更多湧現能力」,而且可預測、可規劃預算。
為什麼不能只放大模型: Chinchilla 證明資料常是瓶頸 ——模型太大、資料太少只是浪費算力;而且優質資料有限、算力有成本、還會逼近不可約 loss E。所以是「大,但要配得剛剛好」。
⚠️ 規模法則的邊界
Scaling 不是萬能:① loss 永遠碰不到 0,會逼近不可約 loss E ;② 高品質資料會用完 (data wall),逼出合成資料、多輪利用等做法;③ loss 下降不等於 所有能力線性提升,有些能力是湧現 的、有些指標會飽和;④ 越大則訓練與推論成本、能耗、碳排 越高。規模是槓桿,不是免費午餐。
✅ 自我檢測
Q1. Scaling Laws 是什麼?
模型 loss 會隨參數、資料、算力變大而以冪次律平滑、可預測地下降;讓我們能事先估算「多花多少資源、loss 大概降到哪」。
Q2. Chinchilla 的核心發現是什麼?
固定算力下,參數 N 與資料 D 要等比例一起放大才最有效率(compute-optimal),經驗上每個參數約配 20 個 token;許多舊模型(如 GPT-3)其實資料太少、欠訓練。
Q3. 訓練算力怎麼估算?
用 C ≈ 6ND(FLOPs):N 是參數量、D 是訓練 token 數,係數 6 來自前向 2+反向 4 FLOPs/每參數每 token。
Q4. 為什麼 loss 降不到 0?
因為有「不可約 loss E」——語言本身的隨機性/熵。放大 N、D 只能壓低參數項與資料項,永遠逼近但碰不到 E。
Q5. 「越大越好」對嗎?
不完全。要大得對——資料常是瓶頸,模型太大而資料太少只是浪費算力;還要考量成本、能耗與能力是否真的提升。
🎯 重點整理
本質: loss 隨 N/D/C 以冪次律可預測地下降。
公式: L(N,D)=E+A/Nᵅ+B/Dᵝ;C≈6ND 估算算力。
Chinchilla: compute-optimal,N 與 D 等比例放大、每參數約 20 tokens。
洞見: GPT-3 欠訓練;資料常是瓶頸,「大」要配夠資料。
邊界: 不可約 loss、資料上限、能力湧現、成本能耗。