微信扫码
与创始人交个朋友
我要投稿
一、注意力机制
注意力机制背景:朴素的Seq2Seq模型中,由于用Encoder RNN的最后一个神经元的隐状态作为Decoder RNN的初始隐状态,导致Encoder的最后一个隐状态(Context Vector)承载了源句子的所有信息,成为整个模型的“信息”瓶颈。
Seq2Seq
注意力机制目标:帮助模型在处理序列数据时能够关注到输入序列中最重要的部分,允许模型动态地分配不同的权重给输入序列中的不同位置,从而实现对信息的有效筛选和整合。注意力机制就是希望打破长序列信息瓶颈,解决长序列信息丢失问题。
注意力机制目标
Transformer注意力机制:嵌入向量作为输入传递给Transformer的Attention模块时,Attention模块会通过Q、K、V计算注意力权重,从而分析这些向量,使得Embedding向量间能够相互"交流"并根据彼此信息更新自身的值。
注意力机制案例:在处理包含“model”一词的句子时,它通过分析句子中的其他单词(如“machine learning”或“fashion”),计算这些单词与“model”之间的语义关系权重,并据此更新“model”的嵌入向量,以更准确地反映其在当前上下文中的含义。
注意力机制案例
二、注意力机制工作流程
注意力机制计算公式:在注意力机制中,Q(Query)、K(Key)、V(Value)通过映射矩阵得到相应的向量,通过计算Q与K的点积相似度并经过softmax归一化得到权重,最后使用这些权重对V进行加权求和得到输出。
注意力机制计算公式
注意力机制计算Q、K、V:对于输入序列的每个单词,通过计算其Query与所有单词Key的点积得到注意力分数,经Softmax归一化后得到注意力权重,再用这些权重对Value向量进行加权求和,以得到包含丰富上下文信息的新单词表示。
生成Q、K、V向量:对于输入序列中的每个单词,都会生成对应的Query(查询)、Key(键)和Value(值)向量。这些向量通常是通过将单词的嵌入向量(Embedding Vector)输入到一个线性变换层得到的。
计算Q、K的点积(注意力分数):计算Query向量与序列中所有单词的Key向量之间的点积,得到一个分数。这个分数反映了Query向量与每个Key向量之间的相似度,即每个单词与当前位置单词的关联程度。
Softmax函数归一化(注意力权重):这些分数会经过一个Softmax函数进行归一化,得到每个单词的注意力权重。这些权重表示了在理解当前单词时,应该给予序列中其他单词多大的关注。
注意力权重加权求和(加权和向量):这些注意力权重与对应的Value向量进行加权求和,得到一个加权和向量。这个加权和向量会被用作当前单词的新表示,包含了更丰富的上下文信息。
三、3种注意力机制
Transformer注意力层:在Transformer架构中,有3种不同的注意力层:Self Attention自注意力、Cross Attention 交叉注意力、Causal Attention因果注意力。
Transformer注意力层
编码器中的自注意力层:在自注意力层中,所有的键、值和查询都来自同一个地方,即编码器前一层的输出。编码器中的每个位置都可以关注编码器前一层中的所有位置。
解码器中的交叉注意力层:查询来自前一层解码器,而记忆键和值则来自编码器的输出。这使得解码器中的每个位置都能关注输入序列中的所有位置。
解码器的Causal Attention
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-05-28
2024-04-26
2024-08-13
2024-08-21
2024-07-09
2024-04-11
2024-07-18
2024-08-04
2024-10-25
2024-07-01
2024-12-03
2024-12-01
2024-11-29
2024-11-26
2024-11-25
2024-11-21
2024-11-18
2024-11-14