Чем MQA, GQA и MLA отличаются от обычного Multi-Head Attention
Какие есть варианты attention для экономии KV cache, например Multi-Query Attention, Grouped-Query Attention и MLA?
Короткий ответ
MHA хранит K/V для каждой head. MQA оставляет много query heads, но один общий K/V head. GQA делает несколько групп query heads с общими K/V внутри группы. MLA сжимает K/V в latent representation, уменьшая cache.
Полный разбор
В обычном Multi-Head Attention у каждой головы свои Q, K, V. Это гибко, но дорого для decode: KV cache растет пропорционально числу heads.
Multi-Query Attention сохраняет несколько query heads, но использует один общий key/value head. Это резко уменьшает KV cache и memory bandwidth, но может стоить качества.
Grouped-Query Attention - компромисс: query heads разбиваются на группы, и внутри каждой группы общий K/V. Память меньше, чем в MHA, качество обычно лучше, чем у MQA.
MLA, известная по DeepSeek, идет дальше: вместо хранения полного K/V cache модель хранит более компактное latent-представление и восстанавливает нужные компоненты для attention. Суть ответа на собесе - показать, что это семейство методов уменьшает memory footprint cache, а не просто "ускоряет attention".
Теория
Для LLM serving уменьшение KV cache помогает поднять batch size, context length или снизить memory bandwidth pressure на decode.
Типичные ошибки
- Сказать, что MQA уменьшает число query heads.
- Не объяснить GQA как компромисс между MHA и MQA.
- Описывать MLA как обычное переиспользование cache без compression.
Как отвечать на собеседовании
- Рисуй шкалу: MHA -> GQA -> MQA по уменьшению KV heads.
- Свяжи все варианты с памятью KV cache.