一、多头自注意力
多头自注意力机制与自注意力机制的区别在于,Q,K,V向量被分为了num_heads份。
实现流程
(1)根据num_heads参数将单头变成多头,获取多头注意力中的各个头的Q,K,V值
(2)Q叉乘K的转置,再使用softmax,获取attention
(3)attention叉乘V,得到输出
二、代码实现
(1)根据num_heads参数将单头变成多头,获取多头注意力中的各个头的Q,K,V值
# 每个token(Q,K,V)的尺寸
values_length = 33
# 原始单头长度
hidden_size = 768
# 单头qkv
# [33,