图说GPT网络结构(参数量与计算量估计)

现在AI领域的主流模型几乎都是Transformer网络架构衍生而来。大热的LLM中的生成类模型很多都是来自于Transformer的变体,即decoder only架构。而GPT就是该类中的经典模型。尽管现在变体甚多,但大多没有根本性地改变其套路。

为了阐述方便,首先约定一些符号:

符号 含义
b Batch size
L Transformer layer层数
s Sequence length
n Attention head个数
h Hidden size,或embedding dim
d 每个head的hidden size,与前两者有关系 h = n d h = n d h=nd
V Vocabulary size
P 最大sequence length

在模型的优化时,我们经常需要一些信息,诸如特定配置的模型计算需要多少compute与memory资源,计算与数据传输大概需要多长时间等。这就要求我们对网络中的一些量(如参数量,计算量,内存使用量等)进行一些粗略估计。基于这些估计,还可以得到这些量之间的大致关系。如一个transformer layer的参数量约为 12 h 2 + 13 h 12 h ^ 2 + 13 h 12h2+13h,计算量约为 24 b s h 2 + 4 b h s 2 24 b s h^2 + 4 b h s^2 24bsh2+4bhs2。这意味着,在 h h h远大于 s s s的情况下,计算量与参数量大约是两倍关系。而Backward的计算量又约是Forward计算量的两倍(因需要对输入与权重都计算梯度)。由于transformer layer是网络中参数量(除embedding外)与计算量的主要贡献者。因此,计算量与除embedding外参数量之间有那个著名的公式 C ≈ 6 N C \approx 6 N C≈6N。

但是,诸如这些都是general的结论。实际使用时,我们会碰到各种网络变体,各种配置或各种跑法,另外还可能需要回答一些更细节具体的问题,比如KV Cache节省了多少计算量,需要额外占用多少memory,把某层分布式计算需要增加多少通信量,或者MQA/GQA相比传统的MHA可以节省多少memory等等。而只有了解了那些估计是怎么来的,才能够更加灵活地运用。

下面以经典的GPT2模型为例,在其网络结构上标注了各操作的shape,并进行参数量和计算量估计。

Prefill阶段:

Generation阶段:

相关推荐
小马92622 分钟前
GPT-6 Swarm 架构深度解析:从单体模型到 Agent 集群协同的范式跃迁
gpt·架构·大模型·openai·agent·分布式ai·swarm架构
元Y亨H1 小时前
LangChain API 调用语言模型
langchain·llm
元Y亨H1 小时前
大模型技术 LangChain 概述
langchain·llm
元Y亨H1 小时前
大模型技术 提示词模板 概述
langchain·llm
元Y亨H7 小时前
大模型技术 模型调用结果解析 概述
google·langchain·llm
元Y亨H7 小时前
大模型技术 Ollama 概述
llm·ollama
chaors8 小时前
DeepResearchSystem 0x06:LLM as Judge
llm·agent·ai编程
武子康12 小时前
GPT-5.6 Luna 降价 80%:Agent 真正该重算的是单次成功成本
人工智能·chatgpt·llm
阿文和她的Key15 小时前
GPT-5.6 降价后, API 账单的三层漏斗该怎么拆
人工智能·gpt·ai·chatgpt
Michaelliu_dev18 小时前
多模态大模型推理流程解析
人工智能·llm·多模态大模型·vit·llava·rope·mllm