多头注意力机制实质上是将原始的查询(Query)、键(Key)和值(Value)向量分成多组,每组分别进行处理,可以理解为多组QKV。
以下是常见问题(自用)
Q1:一般原始的qkv多大,分割后较小的qkv多大
A1:假设整个模型的核心维度d为512,头的数量h为8,那每个头处理的qkv维度会是d/h = 512/8 = 64。
通过这种分割方式,模型可以并行处理多个较小的Q、K、V,每个头关注于输入数据的不同表示子空间,从而增强模型的学习能力和灵活性。
Q2:.reshape(batch_size,-1,n_heads*d_v)中的-1什么意思
A2:在使用.reshape
方法时,-1
在形状参数中的作用是指示该维度的大小应该自动计算,以使得总的元素数量与原始数组保持一致。这是一个方便的方式,用于在不直接指定某个维度大小的情况下,调整数组或张量的形状。