输入“/”快速插入内容

Qwen大模型transformer架构代码走读

2024年5月16日修改
这其实是我的读书笔记,Qwen大模型的Transformer架构解读:
1.
文字解读:
RoPE旋转位置编码:Meta与Hugging Face两种代码实现详解:https://zhuanlan.zhihu.com/p/697282166
2.
视频资源:
注意力机制的3b1b解读(超级推荐):http://xhslink.com/dCsErJ
3.
笔记:
然后在src\transformers\models\qwen2目录下重点看modeling_qwen2.py文件;
目前理解的情况如下:
总体上来说目前是去扣代码中对于这个qwen框架的实现,那么
Qwen2Model是一个类,具体一般是有init和主干代码(forward)为啥叫forward咱也不知道啊。。。
同样Qwen2Decoderlayer也就对应了橙色放大的部分,实现也是一个类,也有init和forward部分;
那其实这里面最难理解的就是Qwen的attention机制,类名是Qwen2Attention,也有init和forward函数;
因为基础太薄弱了,先贴几个名词解释把:
GAQ:GQA 指的是分组查询注意力机制。这种方法通常用于将输入序列划分为不同的组,然后对每个组应用注意力机制。这种方法可以提高计算效率和捕获局部特征。
MAQ:MQA 指的是多查询注意力机制。这种方法允许在同一个注意力头中处理多个查询,从而增强模型的表示能力和灵活性。
RoPE 是一种位置编码方法,用于在 Transformer 模型中引入位置信息。传统的 Transformer 使用固定的正弦和余弦函数来生成位置编码,而 RoPE 则通过旋转变换来表示位置信息,使得模型在捕获相对位置关系方面表现更好。
MLP(Multi-Layer Perceptron,多层感知器)是一种基础的前馈神经网络结构,它由多个全连接层(也称为密集层)组成,是神经网络中最简单但功能强大的模型之一
先mark住,回头再看是否清晰了一些;