当前位置: 首页 > news >正文

Transformer Decoder-Only 参数量计算

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

  1. 嵌入层(Embedding Layer)
  2. 自注意力层(Self-Attention Layers)
  3. 前馈网络(Feed-Forward Network, FFN)
  4. Layer Normalization 和偏置项
OperationParameters
Embedding( n_vacab + n_ntx ) × d_model 
Attention:QKV3 × n_layer × d_model × d_attn
Attention:Projectn_layer × d_model × d_attn
Feedforward2  × 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 的实际参数量一致。

相关文章:

  • ESP32-S3 学习笔记(1)
  • RabbitMQ概念详解
  • RagFlow 完全指南(一):从零搭建开源大模型应用平台(Ollama、VLLM本地模型接入实战)
  • 零基础玩转sqlmap - 从入门到摸清数据库
  • 力扣70题解
  • Vue3入门(1)简单的用户列表页
  • 效率办公新工具:PDF Reader Pro V5.0功能解析与使用体验
  • mysql主从复制是什么
  • 【质量管理】什么是过程?
  • 【数据库知识】Mysql进阶-高可用MHA(Master High Availability)方案
  • 如何使用 Netstat 查看监听端口
  • 大数据基础——Ubuntu 安装
  • 金融行业NLP优化:英特尔至强AI加速实战案例
  • 【python】基础知识点100问
  • opencv关键点检测
  • Ubuntu 24服务器部署abp vnext应用程序的完整教程
  • 谷歌与微软的AI战争:搜索、云服务与生态布局
  • 金仓kingbase数据库管理工具KStudio.exe无法启动且不报错的解决办法
  • [SAP] SAP ERP用户参数设置
  • LLM 论文精读(七)Rethinking Reflection in Pre-Training
  • 广东省中医院脾胃病科大科主任张北平病逝,年仅52岁
  • 从这些电影与影像,看到包容开放的上海
  • 人民日报钟声:通过平等对话协商解决分歧的重要一步
  • 60余年产业积累,“江苏绿心”金湖炼就“超级石油工具箱”
  • 中美会谈前都发生了什么?美方为何坐不住了?
  • 上海“量子城市”先导应用场景落地曹杨社区,提供哪些服务?