Skip to content

8.5 大模型参数设计

大语言模型的参数配置——隐层维度、注意力头数、层数、FFN 中间维度——看似只是几个数字的选择,实际上蕴含着模型容量、训练效率与硬件利用率之间的深层博弈。一组好的超参数配置不仅决定了模型的表达能力上限,还直接影响训练吞吐量和推理延迟。本节系统梳理主流大模型的参数配置规律,提炼设计原则,并讨论那些常被忽视却至关重要的工程约束。


8.5.1 主流模型参数配置一览

在讨论设计原则之前,先通过一张全景表格建立直观认知。下表收录了从 GPT-3 到 Qwen3 的代表性模型,涵盖不同参数量级和架构选择:

GPT-3 系列模型参数配置

图 8-10:GPT-3 论文(Brown et al., 2020)中的模型参数配置表。从 125M 到 175B,展示了 nparamsnlayersdmodelnheadsdhead 等核心超参数随模型规模的变化趋势,以及对应的 Batch Size 和 Learning Rate 配置。

模型总参数量dmodelnlayersnheadsnkv_headsdheadFFN 中间维度dmodel/nlayers
GPT-3 Small125M76812121264307264
GPT-3 Medium350M102424161664409643
GPT-3 Large760M153624161696614464
GPT-3 XL1.3B204824323264819285
GPT-3175B1228896969612849152128
Llama 3.1 8B8B40963232812814336128
Llama 3.2 1B1B204816328648192128
Llama 3.1 70B70B81928064812828672102
Llama 3.1 405B405B16384126128812853248130
Qwen3 0.6B0.6B102428168128307237
Qwen3 8B8B40963632812812288114
OLMo 3 7B7B409632323212811008128
OLMo 3 32B32B5120644081282764880
MiniMind2-Small26M51288264~136564
MiniMind2104M768168296204848

表 8-8:主流大语言模型参数配置对比。dmodel/nlayers 列即宽深比。

从这张表中可以提炼出若干高度一致的设计模式,下面分别展开。


8.5.2 核心超参数的设计原则

一、隐层维度 dmodel:模型的"基础宽度"

dmodel 是 Transformer 中所有子模块(注意力层、FFN 层、嵌入层)共享的基础维度,是决定模型参数量的最核心超参数。从表 8-8 可以观察到:

  • 7B~8B 级别的模型几乎都选择 dmodel=4096。Llama 3.1 8B、Qwen3 8B、OLMo 3 7B 均如此,这已成为该量级的事实标准。
  • dmodel 的增长速度慢于参数量的增长。从 8B 到 70B,参数量增长约 9 倍,但 dmodel 仅从 4096 增长到 8192(2 倍)。差距主要由层数吸收。
  • 小模型存在 dmodel 的最低阈值。当 dmodel<512 时,每个注意力头分到的维度 dhead=dmodel/nheads 过小,导致注意力机制的区分能力严重退化,增加层数也无法弥补这一底层表征瓶颈。MiniMind 的实践印证了这一点:小模型的 dmodel 下限约为 512。

二、层数 nlayers:模型的"抽象深度"

层数决定了模型构建多层次抽象表示的能力。每增加一层,模型就多一次对信息进行非线性变换和重组的机会。

  • 主流大模型的层数范围在 32~128 之间。8B 级别通常为 32~36 层,70B 级别为 64~80 层,405B 则达到 126 层。
  • 在小模型(< 1B)中,深度优先于宽度。MobileLLM 的系统实验表明,当参数量固定在 125M 或 350M 时,30~42 层的"狭长"模型在常识推理、问答等 8 项基准上均显著优于 12 层的"矮胖"模型。这一发现突破了传统认知——以往为 100M 量级的小模型设计架构时,几乎没人尝试过叠加超过 12 层。
  • 但"深而窄"的窄也有极限。当 dmodel<512 时,增加的层数无法弥补嵌入维度坍塌带来的劣势;当 dmodel>1536 时,继续增加层数的优先级才明显高于增加宽度。

三、注意力头数与头维度:nheads×dhead=dmodel 的约束

多头注意力的经典约束是 nheads×dhead=dmodel,即增加头数就意味着减小每头维度,总计算量保持不变。

  • dhead=128 已成为主流大模型的标准。Llama 3 全系列、Qwen3 全系列、OLMo 3 均采用此设置。128 维的注意力头提供了足够的表征空间,同时恰好是 GPU Tensor Core 友好的尺寸。
  • dhead=64 是小模型和早期模型的常见选择。GPT-3 系列大部分变体和 MiniMind2-Small 均采用 dhead=64
  • Qwen3 打破了严格的 nheads×dhead=dmodel 等式。例如 Qwen3 0.6B 的 dmodel=1024nheads=16dhead=128,Q 投影的输出维度为 16×128=2048,是 dmodel 的两倍。这种"解耦 head_dim"的做法允许在不增加 dmodel 的前提下提升注意力的表达能力,但代价是 Q 投影参数量翻倍。

四、FFN 中间维度:dffdmodel 的比例

前馈网络(FFN)是 Transformer 中参数量占比最大的组件。FFN 中间维度 dffdmodel 的比例是一个关键设计选择:

  • 对于使用 ReLU/GELU 的非门控 FFN,dff=4×dmodel 是经典比例。GPT-3 全系列严格遵循这一比例(如 dmodel=12288 对应 dff=49152)。
  • 对于使用 SwiGLU 的门控 FFN,dff(8/3)×dmodel2.67×dmodel。SwiGLU 引入了第三个线性层(门控投影),参数量变为标准 FFN 的 1.5 倍。为保持总参数量大致不变,将 dff 缩减至 8/3 倍。MiniMind 和 Llama 系列均遵循此原则。
  • 实际工程中存在偏差。Llama 3.1 8B 的 dff=14336,与 dmodel=4096 的比值为 3.5,高于理论的 2.67。OLMo 3 32B 的比值更是高达 5.4。这些偏差通常源于参数预算对齐(如要达到特定的总参数量级别)或硬件效率考量。

8.5.3 宽深比:Aspect Ratio 的设计考量

宽深比(Aspect Ratio)定义为 dmodel/nlayers,刻画了模型的"体型"——高值意味着"矮胖"(宽而浅),低值意味着"瘦长"(窄而深)。

经验黄金区间:100~200。 CS336 课程基于 Kaplan et al.(2020)的 Scaling Law 研究指出,dmodel/nlayers 在 100~200 之间是性能和效率的甜点区。表 8-8 中的大模型数据验证了这一规律:GPT-3 175B 的比值为 128,Llama 3.1 全系列集中在 102~130 之间。

但小模型需要更低的比值。 MobileLLM 和 MiniMind 的实践表明,在数亿参数量级下,传统的 Scaling Law 对架构形状的"不敏感"结论不再成立。Qwen3 0.6B 的比值仅为 37(dmodel=1024nlayers=28),MiniMind2 为 48(dmodel=768nlayers=16)。这些小模型有意选择了更深、更窄的架构,以换取更好的多层次抽象能力。

宽深比影响并行策略选择。

  • 比值较高(矮胖):参数集中在每层的矩阵乘法中,天然适合张量并行(Tensor Parallelism)——将每层的大矩阵切分到多张 GPU 上。但层数较少意味着流水线并行的段数有限,调度灵活性受限。
  • 比值较低(瘦长):层数较多,有利于流水线并行(Pipeline Parallelism)——将不同层分配到不同设备上。但推理延迟与层数成正比(每层的计算必须串行完成),过深的模型会导致生成延迟增大。

因此,宽深比的选择需要在模型能力(深度带来的抽象层次)和系统效率(并行策略、推理延迟)之间找到平衡。


8.5.4 工程约束:64 对齐与硬件适配

超参数配置不仅要满足模型能力的需求,还必须适配底层硬件的计算特性。现代 GPU 的 Tensor Core 以固定大小的矩阵块(tile)为单位进行计算,如果矩阵维度不是 tile 大小的整数倍,硬件要么需要填充(padding)浪费算力,要么无法触发 Tensor Core 加速而回退到低效的 CUDA Core 计算。

一、维度对齐到 64 的倍数

这是最普遍的工程约束。观察表 8-8 中所有模型的 dmodel:512、768、1024、2048、4096、5120、8192、12288、16384——无一例外都是 64 的整数倍(且多数是 128 甚至 256 的倍数)。这并非巧合,而是刻意设计。

NVIDIA GPU 的 Tensor Core 在执行矩阵乘法时,要求矩阵维度对齐到特定粒度:

数值精度最小 tile 尺寸推荐对齐粒度
FP328 × 88 的倍数
FP16 / BF1616 × 1664 的倍数
INT832 × 3264 或 128 的倍数

当前大模型训练普遍使用 BF16 混合精度,因此 64 的倍数是最基本的对齐要求。更保守的选择是对齐到 128 或 256,以在多级缓存和多 SM(Streaming Multiprocessor)调度中获得更均匀的负载分布。

二、FFN 中间维度的自动对齐

在 SwiGLU FFN 中,dffdmodel×8/3 计算得出,结果通常不是整数。MiniMind 等项目采用的标准做法是向上取整到最近的 64 的倍数

dff=64×dmodel×8/364

dmodel=512 为例:512×8/31365.3,向上对齐到 64×22=1408。实际实现中,MiniMind 取值约为 1365(未严格对齐),而工业级模型通常会更严格地执行此约束。

这一对齐操作的性能影响不容忽视。实测表明,一个维度为 1365 的矩阵乘法与维度为 1408 的矩阵乘法相比,后者虽然多算了约 3% 的元素,但由于 Tensor Core 利用率从约 85% 提升到接近 100%,实际耗时反而更短。

三、词表大小的对齐

同样的逻辑也适用于词表维度。输出投影层(LM Head)的权重矩阵形状为 dmodel×VV 为词表大小),若 V 不是 64 的倍数,每次前向传播中最大的矩阵乘法都无法充分利用 Tensor Core。因此:

  • Llama 3 将词表大小设为 128,256(=128×1002,同时是 64 的倍数)。
  • Qwen3 的词表大小为 151,936(=64×2374)。
  • MiniMind 的词表为 6,400(=64×100)。

对于词表大小不满足对齐要求的模型,常见的补救措施是在词表末尾填充(pad)若干从不使用的 dummy token,使总维度对齐到 64 的倍数。这一操作在训练速度优化中可带来 10~30% 的额外加速。

四、注意力头数的约束

nheadsnkv_heads 的选择还受到并行度的约束。在张量并行(Tensor Parallelism)中,注意力头被均匀分配到多张 GPU 上,因此:

  • nheads 必须能被张量并行度整除。若使用 8 卡并行,则 nheads 应为 8 的倍数。
  • nkv_heads(GQA 中的 KV 头数)同样必须能被张量并行度整除,否则 KV 缓存无法均匀切分。

这解释了为什么 Llama 3.1 所有规模的 nkv_heads 统一为 8——恰好支持最多 8 路张量并行。


8.5.5 从经验法则到系统化设计

MoE 与稠密模型的参数效率对比

图 8-11:MoE 架构与稠密模型的对比示意。MoE 通过路由器将不同 token 分配给不同专家(Switching FFN Layer),在不增加推理计算量的前提下大幅扩展模型总参数。这种稀疏激活策略是 8.1 节所述 DeepSeek V3 等模型能够突破万亿参数的关键,也直接影响了参数设计中 FFN 层规模的选择。

将上述设计原则和工程约束综合起来,可以归纳出一套系统化的参数配置流程:

第一步:确定参数预算。 根据训练算力、推理成本和目标性能确定总参数量 N。Chinchilla Scaling Law 提供了在给定计算预算下的最优参数量-数据量配比(约 20:1 的 token/parameter 比),但如果推理成本是主要考量(如 Llama 3 的场景),应选择更小的模型配合更多数据("过训练"策略)。

第二步:选择 dmodelnlayers 遵循以下约束:

  • dmodel 为 128 的倍数(更严格地,为目标张量并行度 × dhead 的倍数)。
  • 大模型的 dmodel/nlayers 落在 100~200 区间;小模型可以降低至 40~80 以换取更深的架构。
  • 粗估公式:Transformer 每层的参数量约为 12×dmodel2(注意力层 4d2 + SwiGLU FFN 3×d×(8d/3)=8d2),总参数约 12×dmodel2×nlayers(不含嵌入层)。

第三步:设定注意力头配置。dmodel 确定后:

  • 选择 dhead(128 为首选,小模型可降至 64)。
  • nheads=dmodel/dhead(或在解耦设计中独立设定)。
  • nkv_heads 根据 GQA 组数选择,须同时满足整除 nheads 和张量并行度的约束。

第四步:计算 FFN 中间维度。 对于 SwiGLU,先按 dmodel×8/3 计算基础值,再向上取整到 64(或 128)的倍数。

第五步:对齐检查。 逐一验证 dmodeldffV(词表大小)是否满足 64 对齐;nheadsnkv_heads 是否满足并行度整除。任何不满足的维度都应调整到最近的合法值。


8.5.6 总结

大模型参数设计是经验法则与硬件约束共同塑造的工程艺术。本节的核心要点如下:

  1. FFN 扩展比:非门控 FFN 使用 4×dmodel,SwiGLU 门控 FFN 使用 (8/3)×dmodel,是在参数量等价条件下的自然推导结果。

  2. 宽深比 100~200:这是大模型性能-效率甜点区的经验共识(GPT-3、Llama 3 均落在此区间)。但小模型应主动降低宽深比(至 40~80),选择"深而窄"的架构以获取更好的抽象能力。

  3. dhead=128 是当代标准:从 Llama 3 到 Qwen3,几乎所有主流模型都采用 128 维的注意力头。Qwen3 进一步解耦了 dheaddmodel/nheads 的等式关系,为小模型提供了更灵活的设计空间。

  4. 64 对齐是底线dmodeldff、词表大小必须对齐到 64 的倍数(BF16 训练下的 Tensor Core 最小粒度要求)。不满足此约束的维度将导致 GPU 利用率大幅下降,宁可多算 3% 的冗余元素也不要浪费 15% 的硬件算力。

  5. 并行度决定头数下界nheadsnkv_heads 必须能被目标张量并行度整除,这是分布式训练对超参数的硬性约束。

参数配置没有唯一正确答案,但有大量"明显错误"的选项。遵循上述原则可以规避绝大多数陷阱,将设计空间从无限可能缩减到少数几个合理候选,剩余的微调则交给小规模实验验证。