面试记录:Qwen14B有多少个注意力头?
前言
这个除了考察Qwen14B的参数细节之外,还有一个很重点的:Qwen-14B并不是传统的MHA中的QKV结构,而是GQA结构。
有多少个头
参考【免费下载】 深入探索Qwen2.5-14B模型的参数设置,Qwen2.5-14B的参数设置如下:
| 名称 | 参数 |
|---|---|
| 参数数量 | |
| 层数 | |
| 注意力头 | |
| 上下文长度 | |
| 多语言支持 |
其中,Q头,KV的头。因此,可以推算出,一共是Q头共用一对KV头。就像这样:
graph TB A[V]---B[K]---C[Q] B---D[Q] B---E[Q] B---F[Q] B---G[Q]
GQA过程参考
首先,当然是把文字输入进去。对于用户的输入文本input_text,首先经过Embedding,将input_text转变为input_embedding和position_embedding。这也就是大模型的第一层隐状态输出
第二层开始,输入都是上一层的隐状态Q、K和V,然后得到注意力
其中,参考上述参数,可以得到,Q矩阵的尺寸为K和V尺寸相同,为
接下来,对于一共Q头,可以计算一共
其中,Q头,KV头,且满足
这一共
为什么使用这个方案?
我们知道,占据显存的主要是中间的KVCache。
在MHA中,对于Q头,就有KV头,而如果采用GQA这种几个Q头共用同一个KV头,就相当于只需要存储KV头,显存占用降低了