注意力机制的核心概念在于把不同的重要性赋予输入的不同部分。
MHA(multi-head attention)
MAH由多个平行的自注意力层组成,每个层都可以关注到输入的不同部分。而每个注意力头都有自己的感知域,可以独立学习输入中的不同特性。然后,将所有头的输出拼接后,通过一个liner,得到最终输出。MHA的优势在于能够同时捕获输入数据的多个不同特性。事实上,不同的”头“可以分别专注于词序列的不同方面,语义、语法
MQA(multi-query attention)
MQA是MHA的变体,不同的是MQA让所有的头之间共享同一份Key和Value矩阵,每个头只单独保留一份query参数,从而大大减少了Key和Value矩阵的参数量,以此达到提升推理速度,但是会带来精度的损失。
GQA(group-query attention)
GQA将查询头分成G组,对于query是每个头单独保留一份参数,每个组共享一个key和value矩阵。从 MHA 到 MQA 将 H 键和值头减少到单个键和值头,减少了键值缓存的大小,因此需要加载的数据量 H 倍。但是能够保持多样性,在推理速度和模型精度之间取得了平衡。