Skip to content

CMU 10-423 L15–L16:Scaling laws 與 Mixture of Experts——模型該多大,大了又怎麼只算一部分

2026年9月30日1 分鐘
TL;DRCMU 10-423 Spring 2026 的 Scaling Up 單元前兩講回答兩個問題。L15 後半講 scaling laws:Kaplan 2020 說模型放大 8 倍、資料約 5 倍就夠,Chinchilla 改說兩者要等比例放大,接著用 Phi 系列與資料過濾的 scaling law 補上「資料品質」這個第三條軸。L16 講 MoE:前饋層佔了 GPT-3 大半參數,把它切成專家、每個 token 只走 top-k 條,記憶體跟著總參數、計算跟著活躍參數,代價是負載平衡與訓練穩定性。這段後半沒有程式作業,驗收靠小考、練習考卷第 13 題與期末專案。

🌏 English version

本文依據 CMU 10-423/623/723 Generative AI Spring 2026 版。 這是 CMU 10-423 導讀系列第 16 篇,進入第五個單元「Scaling Up」。上一篇 HW4 是最後一份程式作業;從這裡開始,課程改用小考、HW623(只限 10-623/723)與期末專案驗收。

用到的官方材料:Lecture 15 投影片(37 頁,前半 Querying Transformer 已在 order 14 講過,本篇只看 Scaling Laws 段)、Lecture 16 投影片與手寫版、課程講次表,以及 Coursework 頁上的練習考卷。全部在 2026-09-30 下載核對。講次表這兩講沒有列 readings,本文引用的論文都是投影片上標註的出處。

版本說明:講次表 3 月 16 日 Lecture 16 連到的兩份 PDF,封面寫「Matt Gormley & Pat Virtue, Mar. 17, 2025」,提醒頁是 Spring 2025 的 HW4 日期,PDF 建立時間也是 2025 年 3 月。也就是說 Spring 2026 沿用了去年的 MoE 投影片。L15 的 Scaling 段註明「Scaling slides credit: Pat Virtue」。錄影只放在 CMU 內部的 Panopto,校外看不到,所以本篇完全依投影片撰寫。

為什麼這一段接在多模態之後

講次表把 L15–L18 歸在「Scaling Up」。前 14 講一直在問「模型長什麼樣、怎麼訓練」,這一段換成工程問題:錢和 GPU 有限時,模型該多大、要餵多少資料,放不下時又怎麼辦。

這四講分工清楚:L15–L16 回答「要多大」與「大了能不能少算一點」,下一篇的 L17–L18 回答「怎麼跑得動」。

L15 後半:Scaling laws

從一個問題開始

Scaling 段開頭放了兩條時間軸,文字模型與影像生成模型各一條,問一個問題:Transformer 2017 年出現、立刻統治 NLP,為什麼 Vision Transformer 要到 2021 年才出現?投影片沒有直接給答案,而是接一張 LLM 規模表,從 GPT-2 列到 LLaMA-3,並在旁邊寫下這一段的引導問題:Meta 是怎麼決定訓練 token 數與模型參數的這個組合?

表中的幾個數字(投影片原樣):

模型年份訓練 token參數
GPT-22019約 100 億15 億
GPT-320203,000 億1,750 億
Chinchilla20221.4 兆700 億
LLaMA-220232 兆700 億
LLaMA-3202415 兆4,050 億

接著一張「訓練 Llama 要花多少錢」的練習:給了 GPU 單價(約 1.5 萬美元)、雲端 GPU 每小時 1–4 美元、700W 功耗的電費,讓你估 Llama-3 70B 的訓練成本。答案欄在投影片上是空的,講次表也沒有 L15 的手寫版。

Power law 與 Kaplan 2020

大多數 LLM 的 scaling law 都假設損失與某個量之間是 power law(冪律),形式是 $f(x) = c,x^{-k}$。投影片並排畫了線性座標與 log-log 座標的同一條曲線:在 log-log 圖上它是一條直線。

Kaplan et al. 2020 的實驗設計,投影片列了會變動的超參數:參數量 N(768 到 15 億)、資料量 D(2,200 萬到 230 億 token)、計算量 C、模型形狀(深度、寬度、head 數)、上下文長度(最多 1024)與 batch size,然後量每個模型的測試損失。

投影片逐條標出的七個結論:

  1. 三個量主導表現:參數 N、token 數 D、FLOPs C。
  2. 模型形狀影響不大。
  3. 只要 N 和 D 一起增加,表現就會變好。
  4. 訓練/測試損失曲線遵循可預測的 power law。
  5. 大模型的樣本效率更高。
  6. 不需要訓練到收斂也能有好表現。
  7. 最佳 batch size 也遵循 power law,而且很大(100–200 萬 token)。

最後一頁引了 Kaplan 的一句話:模型每放大 8 倍,資料只需要放大約 5 倍就不會吃虧。然後下一句是:「但 Hoffmann et al. (2022) 講的是完全不同的故事。」

Chinchilla:大家的資料都太少了

Hoffmann et al. 2022(Chinchilla)的設計是固定計算量 C,同時變動 D 和 N,量出 L(N, D),擬合一個能預測任意 N、D 下損失的模型,再用它推算最佳模型大小。

投影片的重點只有一句:大家用的資料都太少了。 Kaplan 說參數放大 8 倍配 5 倍 token,Chinchilla 則說兩者要等比例放大(參數 2 倍、token 2 倍)。同樣的計算預算下,把模型縮小、資料加多,表現會好很多。投影片沒有替 Meta 寫出答案,但開頭那個引導問題,要靠這一頁的結論去讀:同一張表裡,Chinchilla 用 700 億參數配 1.4 兆 token,比 GPT-3 的 1,750 億參數配 3,000 億 token 小得多、資料多得多。

第三條軸:資料品質

最後一小段叫「Adjusting quality of data」:

  • Phi 系列:不放大模型或資料,而是提高資料品質。Phi-1(Textbooks Are All You Need)在程式任務上的表現可以比肩大很多的模型,Phi-1.5 把同樣的結論推到一般 LLM。
  • 資料過濾的 scaling law:Goyal et al. 2024 處理數量、品質、計算三者怎麼取捨,投影片摘的結論是:計算量愈大,資料可以過濾得愈少。
練習考卷怎麼考這一段

Spring 2026 練習考卷的第 13 大題「Scaling Laws」(4 分)題幹涵蓋:計算預算與資料過濾的關係、Hoffmann 研究對模型大小與資料的結論、測試損失隨參數量的變化、為什麼單純放大模型會邊際遞減、Phi 系列的關鍵洞見,另有兩題 MoE 簡答(為什麼 MoE 比較有效率、為什麼 MoE 難訓練)。解答在另一份 PDF,建議先自己寫再對。

L18 投影片的提醒頁寫明,3 月 30 日晚上的考試(Exam)涵蓋 Lectures 1–15,所以 scaling laws 在考試範圍內,MoE 不在;講次表的 Quiz 5 範圍是 L16–L20。

L16:Mixture of Experts

參數都在前饋層

L16 從一張 GPT-3 參數分解表出發(出處是 OLMoE 論文):總共 1,745.7 億參數裡,前饋層佔 1,159.7 億,attention 佔 579.9 億,embedding 只有 6.2 億。投影片要你自己算每一種層的參數怎麼來。

結論是 Transformer LLM 過半參數在前饋層,所以要動刀就從這裡動。

把一層切成專家

投影片用兩步說明「專家」是什麼:

  1. 一個線性層 $z = Wx + b$ 可以按列切成三塊 $z_i = W_i x + b_i$,總參數不變。
  2. 一個前饋層 $y = U\sigma(Wx + b) + c$ 也能切成三個小前饋網路;當 $W$、$b$、$U^T$ 是三塊堆疊而成時兩者等價。投影片把 $c$ 應該是什麼留成填空題。

注意投影片的附註:MoE 裡每個專家不是線性層,而是一個有一層隱藏層的前饋網路。

Dense 與 sparse gating

MoE 的輸出是加權和 $y = \sum_{i=1}^{N_e} G(x)_i E_i(x)$,差別在 gate $G$:

  • Dense MoE:$G(x) = \text{softmax}(x \cdot W_g)$,每個專家都有非零權重。
  • Sparse MoE:$G(x) = \text{softmax}(\text{topk}(x \cdot W_g + b_g, k))$,只保留分數最高的 k 個。投影片寫明 sparsely-gated MoE 最早是為 RNN 提出,但方法通用,現在主要用在 Transformer。
  • Noisy top-k:在 gate 分數上加一項由輸入決定大小的高斯雜訊。
  • Mixtral:同樣的 top-k gating,但每個專家換成 SwiGLU 前饋網路(Mixtral 論文)。

初始化也有一個小細節:$W_g$ 和 $W_{noise}$ 初始化為全零,一開始等於沒有訊號、只有少量雜訊。

分到不同 GPU 就會塞車

Expert parallelism 把每個專家放在不同的 GPU,每個 token 送到 k 個專家。投影片用兩個小例子說明問題:3 台裝置、每台容量 3 個 token,6 個 token 且 k = 1 時,有的裝置滿了、有的閒著;4 個 token 且 k = 2 時,token 3 被分到已經滿的裝置,就放不進去。

放任不管的話,gate 會集中到訓練早期碰巧受歡迎的少數專家。投影片給的解法(OLMoE 的做法,並註明有很多變體)是在 loss 上加兩個正則項:

$$L = L_{CE} + \alpha L_{LB} + \beta L_{RZ}$$

  • Load balance term $L_{LB} = N_e \sum_i f_i P_i$:$f_i$ 是這個 batch 裡被送到專家 i 的 token 比例,$P_i$ 是分給專家 i 的機率,鼓勵負載分散。
  • Router z-loss $L_{RZ}$:懲罰 router 的大 logit,穩定訓練。

活躍參數:記憶體和計算分開算

top-k 的 k 通常選得很小。投影片的兩個例子:Mixtral k = 2、$N_e$ = 8;OLMoE k = 8、$N_e$ = 64。

活躍參數是被 router 選中、實際參與計算的參數量。粗略來說:

  • GPU 記憶體需求 ∝ 總參數
  • FLOPs 計算需求 ∝ 活躍參數

這就是 MoE 的取捨:用更多記憶體換每個 token 更少的計算。投影片接著放了 Mixtral 與 Llama-2 的比較、OLMoE 的超參數表,以及 OLMoE 論文的「表現 vs. 成本」圖,結論是 MoE 在表現與 FLOPs 之間提供不錯的折衷。

專家該選幾個

最後兩頁對比兩個時期:早期在 LSTM 語言模型上的 MoE 偏好非常多的專家;近期 Transformer LM 則偏好相對少的專家。收尾一頁是 Clark et al. 2022 的 routed LM scaling law,把本講接回 L15 的主題。

自學怎麼讀這兩講

  1. L15 先只看 Scaling 段(投影片右下角編號 13 之後),把 Kaplan 的七個結論與 Chinchilla 的一句話對照,寫下兩者對「參數放大 8 倍時資料要放大幾倍」的不同答案。
  2. 自己算一次 GPT-3 各層的參數(L16 投影片編號 8 的練習),確認前饋層為什麼佔大半。
  3. 用 L16 投影片編號 21–22 的兩個 expert parallelism 例子,手算哪些 token 被丟掉。
  4. 最後做練習考卷第 13 大題,再對解答。

怎麼做:今晚打開 L16 投影片編號 12 那一頁,把「前饋層切成三個專家時 $c$ 該是什麼」這個填空寫出來。寫得出來,就代表你懂了專家其實只是把一個大前饋層重新分組。

這一篇可以確認與不能確認的

可以確認:兩份投影片的文字、公式與出處標註,講次表日期與小考範圍,L18 提醒頁的考試範圍,練習考卷第 13 題的題幹。不能確認:課堂口頭講解與板書(錄影在 Panopto,L15 沒有手寫版)、Llama 成本練習的官方答案、投影片中只有圖、文字抽不出來的數據(例如 Mixtral vs. Llama-2 的比較數字)。

延伸閱讀

系列導覽:上一篇 HW4:用 Q-Former 做文生圖|下一篇 L17–L18:分散式訓練、Flash Attention 與高效解碼|系列總覽

參考資料