(5)一文懂“NLP Bert-base” 模型参数量计算

Bert 的模型由多层双向的Transformer编码器组成,由12层组成,768隐藏单元,12个head,总参数量110M,约1.15亿参数量。

1、词向量参数(embedding)

词向量包括三个部分的编码: 词向量参数,位置向量参数,句子类型参数。

词汇量的大小vocab_size=30522

隐藏层hidden_size=768 (即词向量维度d_model=768)

文本输入最长大小max_position_embeddings=512

词向量参数token embedding=30522*768

位置向量参数position embedding=512*768

句子类型参数Segment embedding=2*768(2个句子,0和1区分上下句子)

故,embedding总参数 =(30522+512+2)768 = 23,835,648 = 22.7MB*

2、multi-heads参数(Multi-Heads Attention)

单头与多头注意力结构如下:

(5)一文懂“NLP Bert-base” 模型参数量计算

假设输入X(x, 768),则Q=XW(Q)=(x, 64),K=XW(K)=(x, 64),V=XW(v)=(x, 64)

QK(T)=(x, x), V=(x, 64)

Z=softmax(QK(T)/8)*V=(x, 64),12头concat又进行了线性变换(下图为8头Transformer示例)

(5)一文懂“NLP Bert-base” 模型参数量计算

Z(concat)=(x, 64*12)

故W(O) = (768, 768),最终Z=(x, 768),与输入保持一致

权重矩阵W(Q)/W(K)/W(V)维度为:(768, 768/12=64)

权重矩阵W(O)维度为:(768, 768)

故,12 multi-heads的参数为:76864312 + 768768 = 2,359,296

故,12 multi-heads的参数为:2,359,296 * 12 = 28,311,552 = 27MB

3、全连接层(FeedForward)参数

前馈网络feed forword的参数主要由2个全连接层组成,论文中全连接层的公式为:

FFN(x) = max(0, xW1 + b1)W2 + b2

其中用到了两个参数W1和W2,Bert沿用了惯用的全连接层大小设置,即4 * dmodle = 3072,因此,W1,W2分别为(768, 3072),(3072, 768)

故,12层的全连接层参数为:12( 2 * 768 * 3072)= 56,623,104 = 54MB*(未统计Bias)

4、LayerNorm层

(5)一文懂“NLP Bert-base” 模型参数量计算

LN层有gamma和beta等2个参数。在三个地方用到了layernorm层:embedding层后、multi-head attention后、feed forward后。

故,12层LN层参数为:7682 + (7682)12 + (7682)12 = 38,400 = 37.5KB*

5、结论

Base Bert的encoder用了12层,因此,最后的参数大小为:

1)词向量参数(包括layernorm) = (30522+512+2)* 768 + 768 * 2

2)12 * (Multi-Heads参数 + 全连接层参数 + layernorm参数) =

12 ((76864312 + 768768) + (768 * 3072 * 2) + (7682*2))

Total:108808704.0 ≈ 104MB

注:本文介绍的参数仅仅是encoder的参数,基于encoder的两个任务next sentence prediction 和 MLM涉及的参数(分别是768 * 2,768 * 768,总共约0.5M)并未加入,此外涉及的bias由于参数很少,本文也并未加入。

参考:https://blog.csdn.net/weixin_43922901/article/details/102602557

Original: https://blog.csdn.net/huangminqiang201209/article/details/119639001
Author: embed_huang
Title: (5)一文懂“NLP Bert-base” 模型参数量计算

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/530707/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球