Чем 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 сжимает KV в low-rank 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 модель хранит компактное low-rank latent KV representation плюс отдельную позиционную/RoPE-компоненту, а нужные компоненты восстанавливаются для attention. Суть ответа - показать, что это семейство методов уменьшает memory footprint cache и pressure на memory bandwidth, а не просто "ускоряет 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.