Назад к подготовке
ВопросСложнаяllm-architectureТехническое собеседование · Huawei

Чем 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.