MHA、MQA和GQA基本概念与区别
1. 多头注意力(MHA)
多头注意力(Multi-Head Attention,MHA)通过多个独立的注意力头同时处理信息,每个头有各自的键(Key)、查询(Query)和值(Value)。这种机制允许模型并行关注不同的子空间上下文信息,捕捉复杂的交互关系。然而,MHA存在一个明显问题:计算和内存开销巨大,尤其在长序列任务中,键值缓存(KV-cache)显著增加,限制了模型在实际推理阶段的可扩展性。
2. 多查询注意力(MQA)
MQA(Multi-Query Attention)提出的解决方案是将所有查询头共享同一组键值对,极大地减少KV缓存大小。这种共享机制提高了推理时的效率和速度,但因缺少独立键值,可能在精细化任务或复杂场景下出现性能下降。
3. 分组查询注意力(GQA)
GQA(Grouped Query Attention)则折中于MHA与MQA之间,提出将查询头分为若干组,每组共享一套键