大模型架构图(以decoder为例)
可以发现主要是几个模块的组合
- 位置编码
- 注意力层
- MLP层 前馈神经网络
- 归一化层
而各种transformer的改进,就是针对上面这些模块的改进
比如,各种升级点
- 位置编码:从原始的绝对位置编码 -> rope
- 注意力层:MHA -> GQA -> MLH
- MLP层:FFN -> swiglu
- 归一化层:layernorm -> rmsnorm
关键升级点
- tie weights权重绑定
这点在qwen2.5模型技术报告中有提到。
此机制可以把两个模块的参数进行共享。
(1)embedding table:比如一开始的embedding table层,其形状为V x d(假设词表大小为V,embbeding维度为d)
(2)LM head: 还比如最后的LM head模型输出层,将隐藏状态映射回词表空间,形状为d x V
而tie weights机制,就是将这两个模块的参数进行绑定,使得这两个模块的参数共享,梯度会同时更新。好处是减少参数量,防止过拟合,并且符合语言模型的对称性。
可以通过以下方式实现tie weight:
1 |
|