Transformer动画讲解 - 注意力工作原理(Q、K、V)

文摘   科技   2024-08-07 00:17   湖北  

注意力工作原理Q、K、V

在Transformer模型中,Q(Query)、K(Key)、V(Value)的计算过程是理解自注意力机制(Self-Attention Mechanism)的关键。下面我将通过一个具体的例子来详细说明这一计算过程。

注意力工作原理(Q、K、V)

一、假设条件

假设我们有一个简单的句子“a fluffy blue creature roamed the verdant forest一只蓬松的蓝色生物在郁郁葱葱的森林中游荡,并且我们已经将这个句子转换为了一系列的token(词元),并进行了词嵌入(Word Embedding)和位置编码(Positional Encoding)的处理,得到了每个token的嵌入向量。为了简化说明,我们假设每个token的嵌入向量维度为d_model=128
思考问题:Any adjiectives in front of creature?(生物前面有哪些形容词?)如何通过Self Attention找到creature的形容词fluffy、blue?

二、Q、K、V的生成

  1. 生成Q、K、V向量

  • 对于每个token的嵌入向量,我们分别通过三个不同的权重矩阵(WqWkWv)进行线性变换,以生成对应的Q、K、V向量。这些权重矩阵是在模型训练过程中学习得到的。

  • 假设当前我们正在处理句子中的第四个token“creature”,其嵌入向量为E_creature。则:

    • Q_creature = Wq * E_creature;

    • K_creature = Wk * E_creature;

    • V_creature = Wv * E_creature;

  • 维度变换

    • 经过线性变换后,Q、K、V向量的维度通常与原始嵌入向量的维度相同,即128维。

    三、自注意力计算

    接下来,我们使用生成的Q、K、V向量来计算自注意力分数。
    • 计算Q与K的点积

      • 对于句子中的每个token,我们将其Q向量与句子中所有token的K向量进行点积运算,以计算它们之间的相似度。

      • 例如,对于“creature”的Q向量Q_creature,我们将其与句子中所有token的K向量(包括自身)进行点积,得到一个相似度分数列表。

      • creature相似度分数列表中注意力分数最高的是fluffy、blue。

      1. 缩放点积注意力:
      • 为了防止点积结果过大导致的梯度消失问题,我们将点积结果除以K向量的维度开方,即128开方)。

    1. 应用Softmax函数:

      • 将缩放后的相似度分数通过Softmax函数进行归一化处理,使得所有分数的和为1,从而得到每个token对当前token的注意力权重。
    2. 加权求和V向量:

      • 最后,我们使用得到的注意力权重对V向量进行加权求和,以得到当前token的自注意力输出。

      • Any adjiectives in front of creature?第四个token“creature”的自注意力输出为fluffy、blue。

      四、总结

      Any adjiectives in front of creature?(生物前面有哪些形容词?)通过上述步骤,我们计算了句子中每个token的自注意力输出,从而通过Self Attention找到creature的形容词fluffy、blue。
      Self Attention对于Transformer模型来说是非常重要的,因为它允许模型在处理每个token时考虑到句子中其他所有token的信息,从而捕捉到词与词之间的上下文关系。

      需要注意的是,上述过程是在单个头的自注意力(Single-Head Self-Attention)下进行的。在实际应用中,Transformer模型通常会使用多头自注意力(Multi-Head Self-Attention)机制,即并行地执行多个自注意力过程,并将结果拼接起来,以进一步增强模型的表达能力。


      参考资料

      • https://www.3blue1brown.com/




      架构师带你玩转AI
      分享人工智能,让所有人玩转AI
       最新文章