Attention

Attention发展历程

MHA

这里我们设以下值:
  • d:每个token为d维向量
  • i:sequence中的第i个token
  • s:第s个注意力头

位置编码

绝对位置编码

计算方式如图所示
其中pos指token在sequence中的位置,而i指每个维度的索引,维度值的奇偶相关。

计算公式

对于第t个token,第s个注意力头处的注意力分数经过以下计算方式:
将所有注意力头的输出拼接后即为:

KV Cache

LLM通常在GPU上进行推理,而GPU的显存资源是有限的。显存需要同时存储3类数据:
  • 模型权重参数
  • 计算过程中的激活值
  • 存储KV Cache 前面两个部分是固定的,取决于模型规模,而KV Cache的大小会随着序列长度L线性增长,总复杂度为:

代码实现

MQA

与MHA相比,每个head的KV矩阵是相同的。

代码实现

GQA

将MHA和MQA相结合,将head进行分组,其中每一组共享KV矩阵

代码实现

MLA

 
上一篇
RAG
下一篇
Transformer
Loading...
文章列表

加载中