Scaling law 回答「总共该加多少参数」,形状经验回答「加在哪个维度」。前者有幂律公式可依,后者只有行业配方可循——这篇笔记把两条线拆开讲清。
各家旗舰模型的「长宽比」惊人地接近:GPT-3 175B 是 96 层 × 12288 宽,LLaMA-70B 是 80 层 × 8192 宽,LLaMA-7B 是 32 层 × 4096 宽。这不是巧合——scaling law 定总量,形状配方在宽度、深度、FFN 比例几个旋钮之间分配。两个问题必须分开看:加多少是科学,加在哪是手艺。
Scaling Law:加多少
Kaplan 2020(OpenAI)确立幂律:loss 随参数量 N、数据量 D、算力 C 各自幂律下降,联合形式为
其中 E 为不可约损失(数据本身的熵),、、 为拟合常数。更关键的推论是算力分配:给定预算 C,最优解是 、——七成新算力砸参数、三成砸数据,「大就是好」的出处。它还埋了一条对形状问题的伏笔:超过某个宽度阈值后,性能主要取决于总参数量,对具体形状不敏感——但太深太窄(d 偏小)明显吃亏。
Chinchilla 2022(DeepMind)纠正了 Kaplan 对数据的低估:给定算力 C,最优 ——参数与数据等比例增长,经验法则约 20 tokens / 参数。Chinchilla 本体(70B、1.4T tokens)用同量级算力打赢 GPT-3 175B(300B tokens),坐实了 GPT-3 那代模型集体「大而欠训练」。
| 研究 | 算力分配结论 | 一句话 |
|---|---|---|
| Kaplan 2020 | , | 算力优先砸参数 |
| Chinchilla 2022 | ,≈20 tokens/参数 | 参数数据等比增长 |
Chinchilla 之后还有一层修正:它只优化「训练一次的成本」,而模型训完要服务亿次推理。当推理成本主导总成本时,最优解变成「小模型 + 远超 20 的 token 数」——Llama 3 8B 用了 15T tokens,约 1875 tokens/参数,是 Chinchilla 法则的近百倍;Qwen、Gemma 系的小模型全部走这条重训超配路线。业界称之为 overtraining:用训练时多余的算力,换推理时每 token 的便宜。
20 tokens/参数是训练最优,不是部署最优
Chinchilla 法则回答「同样训练算力怎么花最划算」。一旦模型要长期在线服务,token 数往上加到远超 20 反而总成本更低——推理侧省的钱远超训练侧多花的钱。
三个旋钮:加在哪
dense Transformer 每层参数约 (d 为 hidden_size)。拆开看:attention 的四个投影(Q、K、V、O)合计 ;FFN 一块 ——GELU 模型中间层取 4d(升维再降维,),SwiGLU 因三分支门控取 (),殊途同归。总参数 ,embedding 项(vocab·d)占比小,不参与主旋律。
| 旋钮 | 参数怎么涨 | 附带代价 |
|---|---|---|
| 加宽 d | 平方涨( 主导) | 激活显存、张量/序列并行通信量平方涨 |
| 加深 L | 线性涨(每层 ) | 串行深度、KV cache、流水线 bubble 变多 |
| FFN 中间宽度 | 跟随 d(GELU 锁 4d,SwiGLU 锁 ) | 不单独当旋钮 |
| 头数 | 头维锁 64/128,加头即加宽 | 等价于加 d |
在合理比例内,加宽与加深近乎可互换,实践中 d 和 L 按经验比例一起涨:主流 dense 模型的 d/L 集中在 80–130(GPT-3 大尺寸档与 LLaMA 多数档恰好都是 128),FFN 与头数按固定倍率跟随 d。现代模型「形状相似」由此而来:LLaMA-7B(d=4096、L=32、FFN=11008≈2.7d)到 LLaMA-70B(d=8192、L=80、FFN=28672),d 翻倍、L 翻 2.5 倍,总参数 10 倍——形状几乎没动,等比放大而已。
形状配方起点
从零设计 dense 模型,从 d/L ≈ 100–130、SwiGLU FFN 取 、头维 64 或 128 起步,几乎不会错得离谱;偏离方向再按瓶颈调。
第四个旋钮:专家数
MoE 出现后,配方变成「d 和 L 涨得保守,专家数当主旋钮」:容量堆在专家里,计算只花在激活的几个专家上。DeepSeek-V3 主干宽度 7168,只比 LLaMA-7B 的 4096 宽 75%、层数 61,容量却到 671B——全在每层 256+1 个专家里。第四旋钮把「容量」从主干形状里解耦出来,这正是 混合专家模型 MoE 的主题,结构与血统在那篇展开。
无论用哪个旋钮,都有几条硬约束兜底:d 必须被头数×头维整除;FFN 与专家中间宽度按 64/128 对齐,否则硬件 cube/tile 利用率直接腰斩;太宽撑爆张量并行通信,太深抬高流水线 bubble 占比。而 d、L、专家数写死在 checkpoint 的 config.json 里——训完之后再想动,等于换底座重训。
落到决策上就三条:通信受限别乱加宽(d 的平方代价一半在通信里);显存受限别乱堆专家(总参数都要驻留);推理成本主导就往 overtraining 方向走,把预算从参数挪给数据。四旋钮里 scaling law 只管总量,怎么分配永远看约束。