Transformer动画讲解-Cross Attention

Cross Attention

编码器-解码器注意力 在“编码器-解码器注意力”层中,查询来自前一层解码器,而记忆键和值则来自编码器的输出。这使得解码器中的每个位置都能关注输入序列中的所有位置。这模仿了序列到序列模型中典型的编码器-解码器注意力机制。

(1)论文中对于编码器-解码器注意力的描述,让我们初步了解Encoder-Decoder Attention的Q来自前一层的解码器,K、V来自编码器的输出。

编码器-解码器注意力

(2)当我们想深入了解,回到Transformer的架构图时,估计又懵逼了,怎么又变成Muti-Head Attention?

Transformer架构图

(3)新手的疑问:架构图中明明是Multi-Head Attention,论文中的描述又变为Encoder-Decoder Attention,怎么又冒出一个新名词Cross Attention?

编码器-解码器的Cross Attention

Cross Attention:交叉注意力的输入来自两个不同的序列,一个序列用作查询(Q),另一个序列提供键(K)和值(V),实现跨序列的交互。

Cross Attention

Self Attention vs Cross Attention: Self Attention更适用于处理单个序列,而Cross Attention则更适用于处理多个序列之间的交互。

  • 输入来源:

Self Attention:输入来自同一序列,即查询(Q)、键(K)和值(V)都来自编码器。这种机制关注于序列内部元素之间的关联。

Cross Attention:其输入来自不同的序列。解码器序列作为查询(Q),而编码器序列作为键(K)和值(V)。这种机制关注于不同序列之间的元素关联。

  • 应用场景:

Self Attention:在自然语言处理任务中尤为常见,如语言建模、文本分类等。由于它关注的是序列内部元素之间的关联,因此特别适用于处理单个序列,如句子或段落。

**Cross Attention:**在自然语言处理、计算机视觉等领域都有应用,如机器翻译、图像描述生成等。它允许模型关注不同序列之间的元素关联,从而能够处理多个序列之间的交互。

  • 作用机制:

Self Attention: 通过对序列中的每个元素(如词或图像patch)生成一个表示,并使用这个表示作为查询去关注序列中的其他元素,从而计算出一个新的表示。 这个过程有助于捕捉序列内部的依赖关系。

Cross Attention:两个序列之间建立关联,一个序列的元素作为查询去关注另一个序列中的所有元素。这种机制允许模型在翻译或生成任务中关注源序列和目标序列之间的对应关系。

Self Attention vs Cross Attention

Cross Attention应用机器翻译: 在机器翻译等序列到序列(Seq2Seq)的任务中,交叉注意力机制允许解码器在生成输出的每一步中,都能关注到输入序列中与当前步最相关的信息,从而生成更准确的输出。这种机制大大提高了Seq2Seq模型的性能,特别是在处理长序列和复杂依赖关系时。

  1. 准备输入数据:

  2. 通常有两个不同的输入序列,我们称之为源序列(Source Sequence)和目标序列(Target Sequence)。在机器翻译任务中,源序列可以是原文,而目标序列可以是译文的部分或全部。

  3. 生成查询(Query)、键(Key)和值(Value):

  4. 对于交叉注意力,查询(Q)通常来自目标序列的某个元素或元素的表示。

  5. 键(K)和值(V)则来自源序列的元素或元素的表示。

  6. 这些表示通常是通过嵌入层(Embedding Layer)或者经过某种形式的编码器(Encoder)得到的。

  7. 计算注意力得分:

  8. 对于每一个目标序列中的查询(Q),计算它与源序列中所有键(K)的相似度或相关性得分。这通常通过点积、加性注意力或缩放点积等方式实现。

  9. 归一化注意力得分:

  10. 使用Softmax函数将得分转换成概率分布,这样每个源序列中的键(K)都会有一个与之对应的权重。

  11. 计算加权和:

  12. 使用上一步得到的权重对源序列中的值(V)进行加权求和,得到一个加权表示(也称为上下文向量)。

  13. 输出上下文向量:

  14. 这个加权表示(上下文向量)捕捉了源序列中与目标序列查询最相关的信息,并将其作为交叉注意力的输出。

  15. 使用上下文向量:

  16. 这个上下文向量随后可以被用于目标序列的下一个处理步骤,例如在解码器(Decoder)中用于生成下一个词或预测下一个状态。

Cross Attention应用机器翻译

如何系统的去学习大模型LLM ?

大模型时代,火爆出圈的LLM大模型让程序员们开始重新评估自己的本领。 “AI会取代那些行业?”“谁的饭碗又将不保了?”等问题热议不断。

不如成为「掌握AI工具的技术人」,毕竟AI时代,谁先尝试,谁就能占得先机!

但是LLM相关的内容很多,现在网上的老课程老教材关于LLM又太少。所以现在小白入门就只能靠自学,学习成本和门槛很高

针对所有自学遇到困难的同学们,我帮大家系统梳理大模型学习脉络,将这份 LLM大模型资料 分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程等, 😝有需要的小伙伴,可以 扫描下方二维码领取🆓↓↓↓

👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)]()👈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值