BERT模型参数量计算:8层结构下的参数总数求解
BERT模型参数量计算(给定配置)
基础配置
- 编码器层数:8
- 隐藏状态维度:768
- 注意力头数:8
- 子词词汇表大小:40000
- 前馈隐藏层维度:3072
- 最大输入token数:512
- 计算规则:忽略偏置项、损失计算相关参数
分模块参数计算
1. 嵌入层
嵌入层包含三类可训练参数:
- 词嵌入矩阵:
40000 × 768 = 30,720,000 - 位置嵌入矩阵:
512 × 768 = 393,216 - 段嵌入矩阵:
2 × 768 = 1,536
嵌入层总参数:30,720,000 + 393,216 + 1,536 = 31,114,752
2. 单编码器层参数
每层由多头注意力模块、前馈网络、层归一化组成:
多头注意力模块
每个注意力头维度为 768 ÷ 8 = 96,合并计算8头的参数:
- Q/K/V权重矩阵:
3 × 768 × 768 = 1,769,472 - 输出投影权重矩阵:
768 × 768 = 589,824
该模块总参数:1,769,472 + 589,824 = 2,359,296
前馈网络(FFN)
包含两个线性变换的权重矩阵:
- 第一层(隐藏层):
768 × 3072 = 2,359,296 - 第二层(输出层):
3072 × 768 = 2,359,296
该模块总参数:2,359,296 + 2,359,296 = 4,718,592
层归一化参数
忽略偏置项,仅保留缩放参数(gamma),每层含2个归一化层:
- 单编码器层归一化参数:
2 × 768 = 1,536
单编码器层总参数:2,359,296 + 4,718,592 + 1,536 = 7,079,424
3. 8层编码器总参数
8 × 7,079,424 = 56,635,392
模型总参数量
嵌入层与编码器层参数总和:31,114,752 + 56,635,392 = 87,750,144
即该模型总参数量约为8775万。
内容的提问来源于stack exchange,提问作者Ss Dev
相关产品推荐
相关产品推荐

