Transformer的Q、K、V和Mutil | 您所在的位置:网站首页 › T和v的公式 › Transformer的Q、K、V和Mutil |
目录 一.什么是Q、K、V 二.Mutil-Head Self-Attention Transformer大行其道,在众多领域取得了不可忽视的成就。如今大火的语言大模型LLM也都是基于Transformer,但是Transformer中的Q、K、V和多头注意力到底是什么呢?这里简单做个学习记录,进行再一次认识和掌握。 一.什么是Q、K、VTransformer中的Q、K和V是指在自注意力机制(self-attention mechanism)中使用的三个输入表示向量。 Q表示查询向量,K表示关键向量,V表示数值向量。这三个向量是通过线性变换从原始输入向量(通常是词嵌入表示)得到的。 在自注意力机制中,以查询向量Q为基础,通过计算查询向量与所有关键向量K之间的相似度,得到一个权重分布,用于加权求和关联的数值向量V。 Q、K、V概念来源于检索系统,其中Q为Query、K为Key、V为Value。可以简单理解为Q与K进行相似度匹配,匹配后取得的结果就是V。举个例子我们在某宝上搜索东西,输入的搜索关键词就是Q,商品对应的描述就是K,Q与K匹配成功后搜索出来的商品就是V。 Transformer中,注意力的核心公式是 ,那Q、K、V是怎么来的呢?这里其实是通过对输入矩阵X进行线性变换得到的,用公式可以简单写成以下: 用图片直观表示为: 其中 然后使用Q、K、V计算注意力矩阵,公式如下: 论文中给出的图如下: Q和 上文理解了Q、K、V及其它们的由来,那多头注意力是什么呢? Transformer论文中给出的多头注意力公式如下: 从公式可以看出,多头注意力就是将多个head进行Concat然后与 相乘。其中每个head是由 与Q、K、V做Attention操作得到。论文给出的图如下: Q、K、V经过Linear然后经过h个Self-Attention,得到h个输出,其中h指的是注意力的头数。h个输出进行Concat然后过Linear得到最终结果。 那么就得到了多组Q、K、V,每一组就是一个head。 下面引用B站作者霹雳吧啦Wz的内容进行讲解。 先做个铺垫如下图 同理也会得到不同输入的2个head中的head2。如下图 左侧是x1、x2输入的head1,右侧是x1、x2输入的head2,b是偏置。 致此,就得到了每个 对应的 参数。接下来针对每个head使用和Self-Attention中相同的方法即可得到对应的结果。 接着将每个head得到的结果进行concat拼接,接着将拼接后的结果通过 (可学习的参数)进行融合。 从上可以看出,每个head关注的子空间不一定是一样的,那么这个多头的机制能够联合来自不同head部分学习到的信息,这就使得模型具有更强的认识能力。 更多的头数意味着更强大的模型能力,比如LLM大模型Baichuan-13B中的head数目是40,而Baichuan-7B中的head数目是32。 |
CopyRight 2018-2019 实验室设备网 版权所有 |