transformer模型的参数量和计算量

参考https://zhuanlan.zhihu.com/p/624740065,本文为个人学习记录。

前言

大规模语言模型(Large Language Model, LLM)的大体现在两个方面:模型参数规模大,训练数据规模大。以GPT3为例,参数量为1750亿,训练数据达到了570GB。进而,训练大语言模型面临两个主要挑战:显存效率和计算效率。

现在业界的大语言模型都是基于transformer模型的,模型结构主要是encoder-decoder(代表模型是T5)和decoder-only(分为Causal LM——代表模型GPT,Prefix LM——代表模型GLM)。本文分析的是decoder-only框架transformer模型。

先定义一些数学符号,记transformer模型的层数是 l l l,隐藏层维度为 h h h,注意力头数为 a a a,词表大小为 V V V,训练数据的批次大小为 b b b,序列长度为 s s s

模型参数量

transformer模型由 l l l个相同的层组成,每个层分为两部分:self-attention块和MLP块。

self-attention块的模型参数有 Q 、 K 、 V Q、K、V QKV的权重矩阵 W Q 、 W K 、 W V W_Q、W_K、W_V WQWKWV和偏置,输出权重矩阵 W O W_O WO和偏置,4个权重矩阵的形状为 [ h , h ] [h,h] [h,h],4个偏置的形状为 h h h。self-attention块的参数量为 4 h 2 + 4 h 4h^2+4h 4h2+4h

MLP块由2个线性层组成,一般地,第一个线性层是先将维度从 h h h映射到 4 h 4h 4h,第二个线性层再将维度从 4 h 4h 4h映射到 h h h。第一个线性层的权重矩阵 W 1 W_1 W1的形状为 [ h , 4 h ] [h,4h] [h,4h],偏置的形状为 [ 4 h ] [4h] [4h]。第二个线性层权重矩阵 W 2 W_2 W2的形状为[4h,h],偏置形状为 [ h ] [h] [h]。MLP块的参数量为 8 h 2 + 5 h 8h^2+5h 8h2+5h

self-attention块和MLP块各有一个Layer normalization,包含了2个可训练参数:缩放参数 γ \gamma γ和平移参数 β \beta β,形状都是 [ h ] [h] [h],2个layer normalization的参数量为 4 h 4h 4h

所以,每个transformer层的参数量为 12 h 2 + 13 h 12h^2+13h 12h2+13h

此外,词嵌入矩阵的参数量也较多,词向量维度通常等于隐藏层维度 h h h,词嵌入矩阵的参数量为 V h Vh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值