Deepseek提出了一种创新的注意力机制,名为多头潜在注意力(MLA,Multi-Head Latent Attention),是基于多头自注意力机制(MHA)的优化,能够显著降低内存占用和计算开销,同时保持模型性能。

核心原理:

MLA的核心思想是通过低秩压缩技术将注意力机制中的键(Key)和值(Value)投影到低维的潜在空间:

  • 低秩压缩:多头潜在注意力机制(MLA)将键(Key)和值(Value)通过低秩分解映射到低维潜在空间,减少了需要缓存的键值对数量,从而大幅降低了内存需求。

下面进行详细解释:

低秩压缩

当输入序列 X X X,传统的多头注意力机制(MHA),直接使用 W K W^K WK W V W^V WV X X X 相乘得到 K K K V V V,然后用于后续计算注意力分数,而多头潜在注意力机制(MLA)则将 W K W^K WK W V W^V WV拆解为 U K V K U^KV^K UKVK U V V V U^VV^V UVVV。即
W K = U K V K W^K=U^KV^K WK=UKVK W V = U V V V W^V=U^VV^V WV=UVVV
然后将 U K U^K UK U V U^V UV替换成同一个矩阵 U U U
即:
W K = U V K W^K=UV^K WK=UVK W V = U V V W^V=UV^V WV=UVV
从上面的计算公式来看,与传统 MHA 不同的是,MLA将计算键和值分成两步:当输入序列 X X X 后,先乘以 U U U 得到压缩后的键值对( C C C ,代表含有键和值的信息矩阵,也称潜在向量),即 X U = C XU=C XU=C ,当后续需要计算注意力分数时,则直接将这个含有键值信息的 C C C 矩阵分别乘以 V K V^K VK V V V^V VV得到解压后的真实的键和值,用于计算之中。
即:
C V K = X U V K = X W K = K CV^K=XUV^K=XW^K=K CVK=XUVK=XWK=K C V V = X U V V = X W V = V CV^V=XUV^V=XW^V=V CVV=XUVV=XWV=V
C C C 为含有键值信息的潜在向量,其维度要比输入序列 X X X 低的多,将 X X X 投影到 C C C 可显著减少计算键值的缓存:

  • 因为如果预先计算键、值,随后再计算注意力分数,两者的缓存量会随序列 X X X 长度的增加而显著增大从而限制了更长的上下文输入(序列 X X X ,也就是输入到大模型中的话)。
  • 而如果 U V K 、 U V V UV^K、UV^V UVKUVV 已经吸收到计算注意力分数之中,计算注意力分数时,就可省去计算出真实的 K 、 V K、V KV 这一中间值(中间值需要缓存,低秩压缩目的就是为了避免中间值的出现),直接得到最终结果,就可减少缓存。
Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐