zoukankan      html  css  js  c++  java
  • Bert模型参数量估算

    Bert模型参数量估算

    由于BERT模型用到的是Transformer的编码器部分,因此需要先对Transformer的编码器做参数估算

    1 Transformer单独一个编码器(Encoder-block)的参数量估算(忽略偏置、Add&Norm层参数等次要部分):

    H为词向量维度,A为自注意力头数目,也代表投影矩阵组数。

    1. Q、K、V自注意力层(A=12或A=16):
      H \(\times\) dim \(\times\) 3,故是H \(\times\) dim \(\times\) 3 \(\times\) A=H \(\times\) H \(\times\) 3,其中dim=H/A
    2. 一个全连接层:H \(\times\) H
    3. 前馈层:H \(\times\) 4H+4H \(\times\) H
    4. 总计:12 \(\times\) H \(\times\) H
    2 BERT嵌入层参数估算

    嵌入层:30K \(\times\) H(大概词表数与词向量维度,除去type id与position id)

    3 参数总计(L为Encoder-block数目)

    (12 \(\times\) H \(\times\) H) \(\times\) L + 30K \(\times\) H

    4 实际验证

    bert-base中H=768,L=12,则(12 \(\times\) H \(\times\) H) \(\times\) L + 30K \(\times\) H \(\approx\) 107M(原文给出的为110M)
    bert-large中H=1024,L=24,则(12 \(\times\) H \(\times\) H) \(\times\) L + 30K \(\times\) H \(\approx\) 332M(原文给出的为340M)
    主要是由于部分次要参数的省略计算以及BERT两种预训练任务还带有一些参数。

    作者: python之家

    出处: http://www.cnblogs.com/pythonfl/

    本文版权归作者和博客园共有,转载时请标明本文出处;如对本文有疑问,欢迎邮件15256636585@qq.com联系;如发现文中内容侵犯到您的权利,请联系作者予以处理。

  • 相关阅读:
    经典sql面试题(学生表_课程表_成绩表_教师表)
    69道Spring面试题及答案
    Spring常见面试题
    Java基础面试题及答案(六)
    Java基础面试题及答案(五)
    maven工程,java代码加载resources下面资源文件的路径
    oracle的事务级别
    JMeter测试HBase
    JMeter测试clickhouse
    JMeter入门
  • 原文地址:https://www.cnblogs.com/pythonfl/p/15580871.html
Copyright © 2011-2022 走看看