Add. 上亿的参数量是怎么来的

master
ben.guo 1 year ago
parent 2fb6c2b669
commit a3c7f56e73

BIN
.DS_Store vendored

Binary file not shown.

BIN
assets/.DS_Store vendored

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 KiB

@ -125,3 +125,28 @@ A矩阵里的第一行第二列的值则是QK矩阵第一行跟V的第二列
也就是最终的矩阵A里面就是每个文本对所有文本的关注度的总权重权重总和并且有64个维度每个头和每个批次里。在训练过程中通过不断的训练后推理阶段就能得出输入文字中哪些文字的权重比较高重要性
### 注意力输出结果
<img src="../assets/image-20240503135051251.png" alt="image-20240503135051251" style="zoom:50%;" />
前面我们的矩阵A已经算好了矩阵A经过Concat合并成一开始的[4, 16, 768]的形状即12个头都合并到一起。再结果一次W的权重矩阵相乘最终输出[4, 16, 768]维度的矩阵。
> 大家应该也注意到除了Wo另外3个Wqkv都是[768, 768]维度的矩阵并且生成的Q、K、V、A都是统一维度的这样最大的好处是能简化计算包括代码以及并行计算。
Wq、Wk、Wv、Wo这4个矩阵的值都是不一样的每个头以及每个Block里即我们前面讲到的GPT-3据说有175层里都是唯一的且只有一份。比如Wq只要是一个头里不管跟哪个X相乘都是一样的值除非训练的过程中自动给它调整了。
### 上亿的参数量是怎么来的
> WHAT大家平时看到的7B、13B模型就代表着70亿、130亿的模型参数的模型。
继续上文。也就是说每个子模块有4个WWq、Wk、Wv、Wo每个768以及一开始输入的X也会随之改变X是词向量前面我们GPT-2输出的是50257维度是768且GPT-3据说有175层Block
公式为:
$$
((4*768)+(1*50257*768))*175 = 6,755,078,400
$$
上面单单是子模块就有67亿的参数量了还没包括前馈神经网络的部分后面会详解神经网络里也有W权重等需要保存。

Loading…
Cancel
Save