Проблема масштабирования: узкое место KV-кэша
При генерации текста большие языковые модели (LLM) сталкиваются с фундаментальной проблемой: необходимость хранить и обрабатывать ключи и значения (KV-cache) для каждого токена в контекстном окне. Чем длиннее контекст, тем больше оперативной памяти (VRAM) требуется GPU. Это ограничивает длину контекста и скорость вывода. Индустрия ответила на это эволюцией механизмов внимания, которые оптимизируют использование памяти без критической потери качества.
1. Multi-Head Attention (MHA): Классика
Стандартная архитектура, используемая в оригинальном Transformer. Каждая голова внимания имеет свои собственные проекции для ключей (K) и значений (V). Это обеспечивает максимальную выразительность модели, но требует огромных объемов памяти для хранения KV-кэша, так как количество параметров памяти линейно растет с числом голов.
2. Multi-Query Attention (MQA): Первый шаг к экономии
Введен Google в 2019 году для модели T5. MQA использует одну общую группу ключей и значений для всех голов внимания. Это радикально снижает объем KV-кэша, ускоряя инференс, особенно при длинных контекстах. Однако, объединение всех голов в один «супер-токен» может привести к потере детализации и снижению качества генерации по сравнению с MHA.
3. Grouped-Query Attention (GQA): Золотая середина
Представлена исследователями из Google и CMU в 2022 году. GQA является компромиссом между MHA и MQA. Она делит головы внимания на группы, где каждая группа использует один набор ключей и значений. Например, если у модели 32 головы и 8 групп, то каждая группа из 4 голов делит один KV-кэш. Это сохраняет большую часть выразительности MHA, но дает до 70-80% экономии памяти MQA. Именно GQA стала стандартом де-факто для многих современных открытых моделей.
4. Multi-Latent Attention (MLA): Инновация от DeepSeek
Самая свежая и эффективная архитектура, представленная DeepSeek в модели DeepSeek-V3 (2024). MLA использует сжатое представление латентных состояний. Вместо хранения полноразмерных KV-векторов для каждого токена, модель хранит только сжатые латентные векторы, которые затем проецируются в пространство ключей и значений «на лету» во время вычислений. Это позволяет достичь рекордной плотности памяти и скорости, превосходя GQA по эффективности использования VRAM.
Сравнительная таблица архитектур
| Архитектура | Год появления | Примеры моделей | Экономия памяти (относительно MHA) | Качество (относительно MHA) |
|---|---|---|---|---|
| MHA | 2017 | BERT, GPT-2, LLaMA 1 | 0% (Базовый уровень) | 100% (Референс) |
| MQA | 2019 | T5, PaLM, LLaMA 3.1 405B (частично) | ~90-95% | ~90-95% (Возможна потеря качества) |
| GQA | 2022 | LLaMA 2, LLaMA 3, Mistral, Mixtral | ~70-80% | ~98-99% (Минимальная потеря) |
| MLA | 2024 | DeepSeek-V2, DeepSeek-V3 | ~80-90% (За счет сжатия латентов) | ~99%+ (Высокая эффективность) |
Почему это важно для разработчиков и энтузиастов?
Выбор архитектуры влияет на стоимость развертывания модели. GQA позволяет запускать большие модели (например, LLaMA 3 70B) на одном GPU среднего класса, тогда как MHA потребовала бы кластера. MLA, в свою очередь, открывает путь к еще более плотной упаковке моделей, что критично для edge-устройств и снижения затрат на облачные вычисления. Понимание этих различий помогает правильно подбирать железо под конкретную LLM.
Источник: Towards AI pub ↗
