当前位置: 首页 > article >正文

multi-Head Attention

参考:

图解自注意力机制

深入理解Multi-Head Attention

大语言模型中一个"计算块"是由多个 自注意(self-attention)和反向传播组成, 然而一般LLM使用的是 masked self-attention 以及 multi-headed self-attention。

masked and self-attention

masked self-attention相较于一般的self-attention更轻量化,因为只考虑每个token之前的部分。对于一个序列中的一个token,仅仅计算序列中 当前token之前的 注意力分数。

在这里插入图片描述

换句话说,当前token之后的 注意力权重实际被 “遮住了”, 相当于当模型预测下一个输出时候,防止模型“提前偷看”。
在这里插入图片描述

先回顾self-attention, 对于一个token, 将其对应的query向量与其他token对应的Key 向量相乘,得到该token的权重向量,假设该token是第i个词,整个sequence长度为T,则token的权重向量中只有前i个元素有值,之后的部分被masked掉。然后将权重向量与value向量 相乘。

以下面例子距离,对于下面一个句子:

a robot must obey the orders given it

我们关注it时, 先得到it的Query向量,和 其他词的 key向量相乘,得到了**其他词 ** 相对于 当前词的注意力得分。

然后将 每个词的value 和注意力得分加权求和。

在这里插入图片描述

比如上图中,取出it的Query向量,与其他词的Key向量点乘,(还需要softmax处理),得到其他每个词对应的注意力得分

在这里插入图片描述

将每个词的value向量乘以其对应的注意力得分,最后求和,即得到自注意力层的输出向量

在这里插入图片描述

那么什么事Multi-Headed attention呢?

Multi-Headed attention

简单的一句话说明,多头注意力,实际上就是把 单个的Q,K,V 向量分裂为多个部分,然后挨个执行self-attention, 然后再将结果拼接。

例如,假如Q,K,V向量都是768维, 注意力头有12个,将QKV分别分为12份,每一份称为一个Head, 那么每一个Head 对应长度Head size 为 64. (12 * 64 = 768)

在这里插入图片描述

12个Head中的其中3个可以想象类似如下:

在这里插入图片描述

每一个头也都有Q,K, V 向量。

然后计算注意力得分

每个注意力头的计算过程是一样的,以其中一个举例

在这里插入图片描述

当前关注的token,与其他token的K向量相乘再经过softmax得到注意力得分,然后和self-attention一样,将每个token的value向量与注意力得分相乘,然后计算加权和

在这里插入图片描述

将每个词的value向量和注意力得分相乘,然后求和,得到了该注意力头 的 self-attention 结果:

在这里插入图片描述

Multi-Head self-attention 对应多个加权和向量,再拼接回去,便得到Multi-Headed self-attention结果

在这里插入图片描述

为了得到multi-head attention想要的维度,可以再进行一次现行映射,使用一个权重矩阵,将注意力头的结果映射到 self-attention的输出

在这里插入图片描述


http://www.kler.cn/news/360626.html

相关文章:

  • Vue--》掌握自定义依赖引入的最佳实践
  • blender 理解 积木组合 动画制作 学习笔记
  • C# 数据集
  • sql server xml
  • Egg.js使用ejs快速自动生成resetful风格的CRUD接口
  • 数据门户:企业数字化转型的关键作用
  • Oracle里面,with ... as 用法介绍
  • 软考系统分析师知识点十三:软件需求工程
  • 【论文笔记】Adversarial Diffusion Distillation
  • Flux.using 使用说明书
  • LeetCode第101题. 对称二叉树
  • c语言操作符xiangjie
  • 10 django管理系统 - 管理员管理 - 新建管理员(通过模态框和ajax实现)
  • 快乐数--双指针
  • MSE Loss、BCE Loss
  • 电商大数据获取渠道分享--官方接口、爬虫、第三方如何选择?
  • 【FAQ】HarmonyOS SDK 闭源开放能力 —Map Kit(3)
  • Taro构建的H5页面路由切换返回上一页存在白屏页面过渡
  • Vue day05
  • K8s-pod控制器ReplicaSet(RS)、Deployment(Deploy)