一、注意力机制的核心概念
注意力机制主要包括三个矩阵:查询(Query)、键(Key)和值(Value)。
查询(Q):表示当前标记在某一层的表示。
键(K):表示其他所有标记在某一层的表示。
值(V):表示其他所有标记在同一层的表示。
二、计算注意力权重
注意力权重用于衡量每个标记对当前查询标记的重要性。计算注意力权重的步骤如下:
1、点积计算:首先计算查询和键的点积,衡量查询与每个键的相似度。
图片
2、缩放(Scaling):为了避免点积值过大,通常会将点积结果除以一个缩放因子,通常是键向量的维度的平方根。
图片
3、Softmax:将缩放后的分数通过Softmax函数转换为概率分布,即注意力权重。
图片
三、计算加权和
用计算出的注意力权重对值进行加权求和,得到最终的输出。
四、多头注意力
为了捕捉不同子空间的特征,通常使用多头注意力机制(Multi-Head Attention)。它通过多个独立的注意力头进行计算,然后将结果拼接起来,再通过线性变换得到最终输出。
图片
每个头的计算方法与上述相同,但使用不同的权重矩阵。
五、自注意力(Self-Attention)
在自注意力机制中,查询、键和值都是同一组标记的表示。即,对于每个标记,计算其对所有其他标记(包括其自身)的注意力权重。这使得模型能够捕捉到序列中不同标记之间的依赖关系。
六、应用
在大语言模型中,注意力机制通过上述步骤在每一层中动态调整每个标记的重要性,从而捕捉上下文中的长距离依赖关系。注意力权重的大小反映了模型认为每个标记对当前任务的重要性,从而实现对标记强度的捕捉。
总结
通过注意力机制,特别是自注意力机制,语言模型可以有效地捕捉输入序列中不同标记之间的依赖关系和重要性,从而提高对上下文信息的理解和处理能力。这种机制在Transformer架构中得到了广泛应用,是现代大语言模型的核心技术之一。