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

Transformer 中 QKV 流向全解析(含注意力机制箭头图示)

QKV 是什么?

在 Attention 机制中,我们通过 Query(查询) 与一组 Key-Value(键-值)对 计算注意力权重,然后用这些权重对 Value 进行加权求和,从而输出当前时刻关注上下文的结果。


Transformer 中注意力模块分布

Transformer 结构中含有三种注意力机制,每个机制都会涉及 Q、K、V 的构建和使用:

  1. 编码器自注意力(Encoder Self-Attention)

  2. 解码器自注意力(Decoder Self-Attention)

  3. 编码器-解码器注意力(Encoder-Decoder Attention)


编码器中的注意力机制(Encoder Self-Attention)

位置:每个 Encoder Layer 内的 Multi-Head Self-Attention 子层

输入:编码器输入(embedding 或上层输出),记作 X

  • Q = X × W_Q:当前词想要“查询”的内容

  • K = X × W_K:当前词能“提供”的信息

  • V = X × W_V:当前词携带的实际信息

因为是 自注意力(Self-Attention),所以 Q、K、V 都是来自同一个输入。

           [Encoder Input X]│┌───────────┴───────────┐▼                       ▼Linear(W_Q)           Linear(W_K, W_V)▼                       ▼Q  ------------------>  K│▼Attention│▼V

解码器中的注意力机制(Decoder Self-Attention)

位置:每个 Decoder Layer 的第一层 Multi-Head Self-Attention 子层

输入:解码器已生成的词(embedding 或上层输出),记作 Y

  • Q = Y × W_Q

  • K = Y × W_K

  • V = Y × W_V

同样是 自注意力机制,Q、K、V 均来自 Y
注意:此处需要 mask 掩码,防止看到未来词。

          [Decoder Input Y]│┌───────────┴───────────┐▼                       ▼Linear(W_Q)           Linear(W_K, W_V)▼                       ▼Q  ------------------>  K│▼Masked Attention│▼V

解码器中的编码器-解码器注意力机制(Encoder-Decoder Attention)

位置:每个 Decoder Layer 的第二层 Multi-Head Attention 子层

输入:

  • 解码器当前输入 Y(当前时间步的 query)

  • 编码器输出 X_enc(作为 memory 提供上下文)

  • Q = Y × W_Q(来自解码器的当前输出)

  • K = X_enc × W_K(来自编码器输出)

  • V = X_enc × W_V(来自编码器输出)

这是典型的 跨注意力机制(Cross-Attention)。解码器在“查询”编码器输出中哪些内容有用。

       [Decoder Hidden Y]             [Encoder Output X]│                              │Linear(W_Q)                 Linear(W_K), Linear(W_V)│                              │▼                              ▼Q  ----------------------->    K│▼Attention│▼V

多头注意力机制(Multi-Head Attention)中的 Q、K、V 计算细节

在每个注意力模块中,会有 num_heads 个独立的头,每个头都有自己的一套 W_Q、W_K、W_V:

Q = input @ W_Q      # [batch, seq_len, d_model] @ [d_model, d_k]
K = input @ W_K
V = input @ W_V

然后每个 head 分别进行注意力计算,再合并回去(Concat),再接一个线性变换。


总结对照表

注意力类型Q 来源K 来源V 来源是否 Mask
编码器自注意力编码器输入 X编码器输入 X编码器输入 X
解码器自注意力解码器输入 Y解码器输入 Y解码器输入 Y✅ 是
编码器-解码器注意力解码器输入 Y编码器输出 X编码器输出 X

相关文章:

  • Spring--IOC容器的一些扩展属性
  • C++之二叉搜索树及其实现
  • 【开源工具】一键解决使用代理后无法访问浏览器网页问题 - 基于PyQt5的智能代理开关工具开发全攻略
  • 17、Rocket MQ快速实战以及核⼼概念详解
  • Vscode自定义代码快捷方式
  • MySQL-日志+事务
  • 海拔案例分享-门店业绩管理小程序
  • uniapp+vue3做小程序,获取容器高度
  • 短期项目与长期目标如何同时兼顾
  • 华为云 Flexus+DeepSeek 征文|增值税发票智能提取小工具:基于大模型的自动化信息解析实践
  • 【面板数据】上市公司投资者保护指数(2010-2023年)
  • 【达梦数据库】忘记SYSDBA密码处理方法-已适配
  • 第十六届蓝桥杯C/C++程序设计研究生组国赛 国二
  • JavaScript中的10种排序算法:从入门到精通
  • 【源码+文档+调试讲解】基于web的运动健康小程序的设计与实现y196
  • VMware安装Ubuntu22.04详细教程
  • 基于协议转换的 PROFIBUS DP 与 ETHERNET/IP 在石化生产中的协同运行实践
  • Docker镜像制作
  • 从Java API调用者到架构思考:我的Elasticsearch认知升级之路
  • 【Linux篇章】线程同步与互斥2:打破多线程并发困境,开启高效程序运行新境界
  • 做网站需提供什么资料/网站制作的流程是什么
  • 应届毕业生招聘官网/seo顾问服务福建
  • 营销渠道策略有哪些/白帽优化关键词排名seo
  • 网站备案 接入商名称/市场调研问卷调查怎么做
  • 女生做seo网站推广/网推
  • 做相册本哪个网站好用吗/成都网络营销