7.8 当前模型及若干数字
当前的 Transformer 语言模型采用了许多先进设置。其中一些前文已经提到,例如旋转位置嵌入(RoPE)、RMSNorm,以及使用 SwiGLU 激活函数的门控前馈层(Shazeer, 2020)。这些方法主要用于让模型变得更好、更准确。
还有一些我们完全没有讨论过的进展,重点在于效率,即如何让模型运行得更快或占用更少内存。为了让读者对这类技术有所了解,这里简要介绍其中一种:KV 缓存。
回顾图 7.11 和式 7.34(在下面重复给出),在训练中,注意力向量可以通过两次矩阵乘法非常高效地并行计算:
遗憾的是,推理时无法像训练时一样进行如此高效的注意力计算。这是因为在推理阶段,我们以迭代方式逐个生成下一词元。对于一个刚刚生成的新词元(记为 ),需要分别乘以 、 和 ,以计算它的查询向量、键向量和值向量。然而,重新计算所有先前词元 的键向量和值向量会浪费计算时间,因为我们在先前步骤中已经算过它们了!
KV 缓存(KV cache)是一种避免这类时间浪费的技术。每当计算出键向量和值向量时,我们不再任其丢失,而是把它们存入内存中的缓存;以后需要时,直接从缓存中取出即可。图 7.23 在图 7.11 的基础上作了修改,展示单个新词元所需的计算,并标出哪些值可以从 KV 缓存中取得,而不必重新计算。

图 7.23 注意力计算的一部分(提取自图 7.11)。黑色表示在计算第 4 个词元的注意力分数时,可以存入缓存而不必重新计算的向量。
还有许多其他同样以效率为重点的创新,包括混合专家模型、分组查询注意力(GQA)以及量化。我们希望在第二卷的未来版本中介绍这些内容。
为了让读者对架构参数的大致范围有一个基本概念,图 7.24 列出了少量当前及早期 LLM 的若干架构参数。由于 GPT-5、Claude 和 Gemini 等前沿专有模型的开发者并未披露这些信息,因此这里只列出开放模型。请注意,其中一些模型采用了 GQA 和 SwiGLU 等现代架构(它们的 A 不同,而且不会严格将 设为 的 4 倍),所以这些参数值只能视为粗略近似,用于了解大致规模。
模型 | 年份 | L | d | A | |V| | 上下文 | 参数量 | |
GPT-2 XL | 2019 | 48 | 1600 | 25 | 6400 | 50K | 1K | 1.5B |
GPT-3 | 2020 | 96 | 12288 | 96 | 49152 | 50K | 2K | 175B |
Qwen3-0.6B | 2025 | 28 | 1024 | 16 | 3072 | 152K | 32K | 0.6B |
Qwen3-32B | 2025 | 64 | 5120 | 64 | 25600 | 152K | 128K | 32B |
Llama 3.1 8B | 2024 | 32 | 4096 | 32 | 14336 | 128K | 128K | 8B |
Llama 3.1 405B | 2024 | 126 | 16384 | 128 | 53248 | 128K | 128K | 405B |
图 7.24 一些 Transformer 语言模型的配置。L 表示层数,d 表示模型维度,A 表示注意力头数, 表示前馈维度, 表示词表大小。