GQA MQA

以 Llama 2 7B 的一层 decoder 为例,batch = 1,输入 prompt 长度为 T 个 token。

MHA 固定参数:hidden = 4096,head 数 = 32,head_dim = 128。

GQA(n_kv = 8)的 prefill

MQA(n_kv = 1) 的 prefill

和 GQA 一样,只是共享得更彻底:

第 2 步:W_K、W_V 变成 [4096, 128],K、V 只有 1 个 head:[1, T, 128]
第 4 步:cache 存 [1, T, 128]
第 5 步:S_h = Q_h @ K_0ᵀ / √128              32 个 query head 全部用同一个 K
第 8 步:O_h = P_h @ V_0