You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Keras中<code>MultiHeadAttention</code>层query与value张量维度差异疑问

Keras MultiHeadAttention 层T与S维度符号差异原因

这一设计是为了兼容注意力机制的全场景使用,而非仅限定自注意力场景,具体差异逻辑如下:

  • 维度定义
    • query 张量形状中的T:代表目标序列长度,即需要为每个位置计算注意力权重的序列的长度
    • value(以及与之配套的key)张量形状中的S:代表源序列长度,即被检索信息的输入序列的长度
  • 不同场景下的维度匹配逻辑
    • 自注意力场景:query、key、value均来自同一输入张量,此时T = S,就是你默认的二者相等的情况,典型案例是Transformer编码器中的自注意力层。
    • 交叉注意力(编解码器注意力)场景:query和key/value来自不同输入,此时T和S可以完全不相等,典型案例是Transformer解码器的交叉注意力层:query来自解码器上一步的输出(长度为已生成文本的长度T),key/value来自编码器的最终输出(长度为源输入文本的长度S),比如机器翻译任务中源输入中文长度为12、当前已生成英文长度为5时,就会出现S=12、T=5的情况。

Keras官方文档用不同符号标注两个维度,是为了明确区分两个独立的序列长度属性,避免开发者误以为注意力只能用在序列长度相等的自注意力场景中。

内容的提问来源于stack exchange,提问作者Varun Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 07:00:01