大模型学习——第一节、Attention

Transformers镇楼

https://s3.onlyblacktea.cn:443/picgo/image/20260320012707446.png

一、 了解Attention

何为Attention?

A=softmax(QKTdk)VA=softmax(\frac{QK^T}{\sqrt{d_k}})V
  • Q:一个向量,代表模型想从这个token中查找什么。
  • K:一个向量 or 矩阵(因为它往往会拼接着历史token的K),代表模型进行查找时所用的索引。
  • V:一个向量,代表模型中蕴含的语义。

Q和K的点积,得到一个查询向量,这代表着模型应该从向量V中注意哪些值(语义)。而dk\sqrt{d_k} 的作用是对点积值进行缩放,防止梯度消失。而softmax的作用可以理解为把计算出来的注意力分数转换为注意力概率。

假设Q和K的分量都是均值为0、方差为1的独立随机变量,那么两个分量相乘qikiq_ik_i 的均值为0,方差为1。dkd_k 个这样的乘积相加后,点Q⋅KQ\cdot K 的均值仍为0,但方差会变为dkd_k 。这意味着向量维度很大时,点积的数值会变得非常大。 另外,点积结果需要被送入Softmax函数,如果点积数值非常大,Softmax就会产生一个极其尖锐的概率分布,在计算反向传播时,Softmax在这种极值区域的梯度会趋近于0. 通过除以这个缩放因子,我们可以将点积结果的方差重新推回1,这样输入Softmax的数值就会保持在一个比较温和的范围内,使得梯度能够顺畅地流过网络。