BERT模型中的参数数量如何计算?

7

《BERT:基于深度双向Transformer的语言理解预训练》一文中,Devlin等人计算出基础模型大小为1.1亿个参数(即L=12,H=768,A=12),其中L表示层数,H表示隐藏层大小,A表示自注意力操作的数量。据我所知,神经网络中的参数通常是指层之间的“权重和偏置”的数量。那么,这个数据是如何根据给定信息进行计算的呢?12768=9216,9216*12=1.1亿。


1
请尝试查看:https://github.com/google-research/bert/issues/656 - Elidor00
1个回答

22

Transformer Encoder-Decoder Architecture BERT模型仅包含transformer架构的encoder块。让我们看一下BERT encoder块的各个元素,以可视化权重矩阵和偏置向量的数量。给定的配置L=12表示将有12层自注意力,H=768表示单个标记的嵌入维度为768维,A=12表示在一层自注意力中会有12个attention头部。编码器块执行以下操作序列:

  1. 输入将是令牌序列的S * d维矩阵。其中s是序列长度,d是嵌入维度。结果输入序列将是令牌嵌入、令牌类型嵌入以及位置嵌入的总和,每个令牌都是一个d维向量。在BERT模型中,第一组参数是词汇表嵌入。BERT使用WordPiece[2]嵌入,该嵌入具有30522个标记。每个标记是768维的。

  2. 嵌入层标准化。一个权重矩阵和一个偏置向量。

  • 多头自注意力。将有h个头,对于每个头,将有三个矩阵分别对应查询矩阵、键矩阵和值矩阵。这些矩阵的第一维将是嵌入维度,第二维将是嵌入维度除以注意头数。除此之外,还将有一个矩阵将注意头生成的连接值转换为最终的令牌表示。

  • 残差连接和层归一化。一个权重矩阵和一个偏置向量。

  • 位置前馈网络将具有一个隐藏层,该层将对应两个权重矩阵和两个偏置向量。在论文中提到,隐藏层中的单元数将是嵌入维度的四倍。

  • 残差连接和层归一化。一个权重矩阵和一个偏置向量。

  • 让我们通过为BERT基础模型的权重矩阵和偏置向量关联正确的维度来计算实际参数数量。

    嵌入矩阵:

    • 单词嵌入矩阵大小[词汇表大小,嵌入维度] = [30522, 768] = 23440896
    • 位置嵌入矩阵大小[最大序列长度,嵌入维度] = [512,768] = 393216
    • 令牌类型嵌入矩阵大小[2,768] = 1536
    • 嵌入层归一化,权重和偏置 [768] + [768] = 1536
    • 总嵌入参数 =

    注意力头:

    • 查询权重矩阵大小 [768, 64] = 49152 和偏置 [768] = 768

    • 键权重矩阵大小 [768, 64] = 49152 和偏置 [768] = 768

    • 值权重矩阵大小 [768, 64] = 49152 和偏置 [768] = 768

    • 一个具有12个头的注意力层的总参数 = 12∗(3 ∗(49152+768)) = 1797120

    • 连接头后的投影密集权重 [768, 768] = 589824 和偏置 [768] = 768,(589824+768 = 590592)

    • 层归一化权重和偏置 [768], [768] = 1536

    • 位置上的前馈网络权重矩阵和偏置 [3072, 768] = 2359296,[3072] = 3072 和 [768, 3072 ] = 2359296,[768] = 768,(2359296+3072+ 2359296+768 = 4722432)

    • 层归一化权重和偏置 [768], [768] = 1536

    • 一个完整的注意力层的总参数 (1797120 + 590592 + 1536 + 4722432 + 1536 = 7113216 ≈ 7)

    • 12个注意力层的总参数 (∗ = )

    BERT编码器的输出层:

    • 密集的权重矩阵和偏置 [768, 768] = 589824,[768] = 768,(589824 + 768 = 590592)

    一个实例中的总参数 = + + =


    偏置不应该是64而不是768吗? - Nathan B
    Jay Alammar的这一部分中,提供了解码器(GPT-2)的详细计算。 - andreipb
    @NathanB 是的,偏置应该是64,因为它必须与输出维度匹配。 - JanosAudran

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接