Transformer模型的参数计算

  • 输入序列长度(sequence length):10
  • 一次处理的样本数量(batch size):32
  • 输入嵌入维度(embedding dimension):512
  • 位置编码维度:512
  • 每一个Transformer层中注意力头的数量(number of attention heads):8
  • 前馈神经网络(FFN)隐藏层维度(hidden dimension of FFN):2048
  • Transformer层的数量(number of Transformer layers):6

1. 输入嵌入和位置编码(Input Embedding and Positional Encoding)

  • 输入:batch size 为32,Sequence 长度为10,Embedding 维度为512的三维矩阵。
  • 输出:加入位置编码后还是 [32, 10, 512] 的 embedding 表示。

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

2.1 查询、键、值矩阵计算(Query, Key, Value Calculation)
  • 输入:这里需要注意,batch size 不参与计算,所以相对于输入,少了一个维度,真正参与运算的是一个二维矩阵,形状为 [10, 512]
  • 查询、键、值矩阵权重和偏置
  • 对于每个头:
    • 查询矩阵 𝑊𝑄:形状为 [512, 64]
    • 偏置 𝑏𝑄,𝑏𝐾,𝑏𝑉:形状为 [64]
    • 值矩阵 𝑊𝑉:形状为 [512, 64]
    • 键矩阵 𝑊𝐾:形状为 [512, 64]
  • 总权重参数量为:
    • 查询矩阵:8×512×64=262144
    • 偏置:8×64×3=1536
    • 值矩阵:8×512×64=262144
    • 键矩阵:8×512×64=262144
    • 总计:262144×3+1536=787968
  • 输出
    • 查询、键、值矩阵计算:
      • 查询 𝑄:形状为 [10, 8, 64]
      • 值 𝑉:形状为 [10, 8, 64]
      • 键 𝐾:形状为 [10, 8, 64]
2.2 注意力计算(Attention Calculation)
  • 输入:查询 𝑄、键 𝐾、值 𝑉,形状为 [10, 8, 64]
  • 计算

  • 输出:形状为 [10, 8, 64]
2.3 多头注意力(Multi-Head Attention)
  • 输入:每个头的输出,形状为 [10, 8, 64]
  • 拼接:将所有头的输出concat起来,形状为 [10, 512]
  • 线性变换
  • 权重 𝑊𝑂:形状为 [512, 512]
  • 偏置 𝑏𝑂:形状为 [512]
  • 总参数量为:
    • 权重:512×512=262144
    • 偏置:512
    • 总计:262144+512=262656
  • 输出:形状为 [10, 512]
2.4 残差连接和层归一化(Residual Connection and Layer Normalization)
  • 输入:形状为 [10, 512] 的输入加上多头注意力计算得到的输出[10, 512]。
  • 输出:形状为 [10, 512]

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

3.1 第一层线性变换
  • 输入:形状为 [10, 512]
  • 线性变换
    • 权重 𝑊1:形状为 [512, 2048]
    • 偏置 𝑏1:形状为 [2048]
    • 总参数量为:
      • 权重:512×2048=1048576
      • 偏置:2048
      • 总计:1048576+2048=1050624
  • 输出:形状为 [10, 2048]
3.2 激活函数
  • 输入:形状为 [10, 2048]
  • 输出:形状为 [10, 2048]
3.3 第二层线性变换
  • 输入:形状为 [10, 2048]
  • 线性变换:
    • 权重 𝑊2:形状为 [2048, 512]
    • 偏置 𝑏2:形状为 [512]
    • 总参数量为:
      • 权重:2048×512=1048576
      • 偏置:512
      • 总计:1048576+512=1049088
  • 输出:形状为 [10, 512]
3.4 残差连接和层归一化(Residual Connection and Layer Normalization)
  • 输入:形状为 [10, 512] 的输入加上前馈神经网络的输出 [10, 512]。
  • 输出:形状为 [10, 512]

总参数量(每层)

  • 自注意力层
    • 查询、键、值矩阵:787968
    • 多头注意力:262656
    • 总计:787968+262656=1050624
  • 前馈神经网络
    • 总计:2099712
  • 每层总参数量
    • 自注意力层 + 前馈神经网络:1050624+2099712=3150336

总参数量(整个模型)

        共6层Transformer,总参数量为:6×3150336=18902016

  • 23
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值