Transformer Decoder-Only 参数量计算

Transformer 的 Decoder-Only 架构(如 GPT 系列模型)是当前大语言模型的主流架构,其参数量主要由以下几个部分组成:

  1. 嵌入层(Embedding Layer)
  2. 自注意力层(Self-Attention Layers)
  3. 前馈网络(Feed-Forward Network, FFN)
  4. Layer Normalization 和偏置项

|--------------------------------|-----------------------------------------------------------------------------------------------------------------|
| Operation | Parameters |
| Embedding | ( n_vacab + n_ntx ) × d_model |
| Attention:QKV | 3 × n_layer × d_model × d_attn |
| Attention:Project | n_layer × d_model × d_attn |
| Feedforward | 2 × n_layer × d_model × d_ff |
| Layer Normalization 和偏置项 | 4 × n_layer × d_model |
| Total(Attention + Feedforward) | 2 × n_layer × d_model × ( 2 × d_attn + d_ff ) ≈ 12 × n_layer × d_model^2 假设d_attn = d_model,d_ff = 4 × d_model |

参数定义:

d_mdole:模型维度;

n_layer:层数;

d_attn:注意力输出维度;

d_ff:前馈网络维度;

n_ntx:最大上下文长度(token)

n_head:注意力头数

n_vacab:词汇表大小

1. 嵌入层(Embedding Layer)

嵌入层的作用是将输入 token 转换为高维向量表示。参数量为:n_vacab × d_model

此外,绝对位置编码通常由可学习的嵌入矩阵实现,其权重维度为: n_ntx × d_model

此外,在语言模型中,输出层通常与嵌入层共享权重矩阵(Tie Embedding),因此不需要额外计算输出层的参数量。

所以嵌入层总参数数:( n_vacab + n_ntx ) × d_model

备注:假设输入 x_i = (w_1, w_2,..., w_n_ntx),长度为n_ntx,batch 大小为b,则原始输入维度为:(b,n_ntx),经过embedding后输出维度为(b, n_ntx, d_model)

2. 自注意力层(Self-Attention Layers)

每个 Transformer 层包含一个多头自注意力机制(Multi-Head Self-Attention, MHSA),其参数量主要来自以下三部分:

  • 线性变换矩阵:生成 Query、Key、Value
  • 输出投影矩阵:将多头结果拼接后进行线性变换

假设:

  • 输入的维度为 d_model
  • 注意力头数为 h
  • 每个头的维度为 d_k(通常满足 d_k = d_attn / h)
  • QKV输出维度d_attn,然后经过投影,输出维度 d_model
(1) 生成 Query、Key、Value 的线性变换矩阵

每个头的 QKV 都需要一个独立的线性变换矩阵,因此总的参数量为:

Attention QKV Parameters = 3 × d_model × d_attn

(2) 输出投影矩阵

多头注意力的结果需要通过一个线性投影矩阵转换回 d_model 维度,因此参数量为:

Attention Project Parameters = d_attn × d_model

(3) 总自注意力层参数量

单个自注意力层的参数量为:

Self-Attention Parameters = 3 × d_model × d_attn + d_attn × d_model = 4 × d_model × d_attn

如果有 n_layer 个 Transformer 层,则总的自注意力层参数量为:

Total Self-Attention Parameters = 4 × n_layer × d_model × d_attn

备注:嵌入层输出的 x维度是(b, n_ntx, d_model),W_Q维度是(d_model, d_attn),则Q = x * W_Q维度是(b, n_ntx, d_attn),通过self-attention后,输出维度为(b, n_ntx, d_attn),然后通过attention project后维度是(b, n_ntx, d_model)

3. 前馈网络(Feed-Forward Network, FFN)

每个 Transformer 层包含一个两层的前馈网络(FFN),其参数量主要来自以下两部分:

  • 第一层从 d_model 映射到 d_ff(通常是 d_model 的 4 倍)。
  • 第二层从 d_ff 映射回 d_model
(1) 第一层参数量

第一层将 d_model 映射到 d_ff,因此参数量为:

First Layer Parameters=d_model × d_ff

(2) 第二层参数量

第二层将 d_ff 映射回 d_model,因此参数量为:

Second Layer Parameters=d_ff × d_model

(3) 总前馈网络参数量

单个前馈网络的参数量为:

FFN Parameters=d_model ×d_ff + d_ff × d_model = 2 × d_model × d_ff

如果有 n_layer 个 Transformer 层,则总的前馈网络参数量为:

Total FFN Parameters = 2 × n_layer × d_model × d_ff

备注:(b, n_ntx, d_model)经过FFN后输出维度是(b, n_ntx, d_model)

4. Layer Normalization 和偏置项

每个 Transformer 层包含两个 Layer Normalization 操作(分别在自注意力和前馈网络之后),每个 Layer Normalization 包含两个可学习参数(缩放因子和偏移因子)。

总的 Layer Normalization 参数量为:

LayerNorm Parameters = n_layer × 2 × 2 × d_model = 4 × n_layer × d_model

5. 总参数量

Total Parameters = ( n_vacab + n_ntx ) × d_model + 4 × n_layer × d_model × d_attn + 2 × n_layer × d_model × d_ff + 4 × n_layer × d_model

Total Parameters ≈ 4 × n_layer × d_model × d_attn + 2 × n_layer × d_model × d_ff = 2 × n_layer × d_model × ( 2 × d_attn + d_ff )

假设d_attn = d_model, 以及d_ff = 4 × d_model,则

Total Parameters ≈ 12 × n_layer × d_model^2

6. 实际例子

以 GPT-3 为例:

  • 词汇表大小 n_vacab = 50257
  • 模型维度 d_model = 12288
  • 前馈网络维度 d_ff=4 × d_model = 49152
  • 层数 n_layer = 96
  • 最大上下文长度 (token)n_ntx = 2048

代入公式:

Total Parameters = (50257 + 2048) ×12288 + 96×(4×122882+8×122882) + 4×96×12288

计算结果约为 175B 参数,与 GPT-3 的实际参数量一致。

相关推荐
人工小情绪1 分钟前
深度学习模型部署
人工智能·深度学习
Codelinghu3 分钟前
「 LLM实战 - 企业 」构建企业级RAG系统:基于Milvus向量数据库的高效检索实践
人工智能·后端·llm
幻云20107 分钟前
Next.js指南:从入门到精通
开发语言·javascript·人工智能·python·架构
智算菩萨13 分钟前
Anthropic Claude 4.5:AI分层编排的革命,成本、速度与能力的新平衡
前端·人工智能
小Pawn爷18 分钟前
12. 智能与风险并存:金融AI的成本,合规与伦理平衡术
人工智能·金融·llm·合规
●VON18 分钟前
AI 保险机制:为智能时代的不确定性兜底
人工智能·学习·安全·制造·von
开发者导航19 分钟前
【开发者导航】一键解决AI生成内容格式复制难题的剪贴板工具:PasteMD
人工智能
bu_shuo31 分钟前
将AI生成的数学公式正确复制到word中
人工智能·chatgpt·word·latex
AI科技星34 分钟前
光速飞行器动力学方程的第一性原理推导、验证与范式革命
数据结构·人工智能·线性代数·算法·机器学习·概率论
摘星编程37 分钟前
RAG的下一站:检索增强生成如何重塑企业知识中枢?
android·人工智能