GQA меняет совместное использование K/V; FlashAttention меняет порядок вычислений и обмен с памятью.
Групповое внимание (GQA)
Определение
Групповое внимание (GQA) — схема внимания, в которой несколько голов запросов совместно используют одну голову ключей и одну голову значений.
Также ищут: GQA · grouped-query attention · внимание с группами запросов
Зачем это знать
Числа голов Q и K/V в конфигурации помогают различить MHA, MQA и GQA до оценки памяти. Проверяйте значения загруженной конфигурации, включая подстановку по умолчанию.
Карта понятия
Что подтверждено
В GQA каждая группа голов Q использует общие головы K и V. При 32 головах Q и 8 равных группах K/V на группу приходится четыре головы Q.
Граница применимости: Расчёт 32/8 для равных групп по GQA §2.2 и полям LlamaConfig v4.44.2; условная конфигурация, не расчёт VRAM.
При H головах Q схема GQA-H совпадает с многоголовым вниманием MHA: H голов K и H голов V. GQA-1 совпадает с многозапросным вниманием MQA: по одной голове K и V.
Граница применимости: EMNLP 2023, §2.2, рисунок 2; число групп равно числу голов K/V.
Авторы преобразуют веса MHA, усредняя проекции K/V внутри группы, затем продолжают предобучение. Это исследованная процедура адаптации модели, а не переключатель сервера с гарантией прежнего качества.
Граница применимости: EMNLP 2023, §§2.1–2.2; не универсальная инструкция преобразования любой модели.
Эксперименты GQA проведены на T5.1.1: изменено внимание декодера, включая внимание к кодировщику. Самовнимание кодировщика не меняли.
Граница применимости: EMNLP 2023, §3.1 и Limitations; результаты не доказывают выигрыш для произвольной decoder-only модели.
В LlamaConfig v4.44.2 поле num_attention_heads задаёт число голов Q, а num_key_value_heads — голов K/V. При None второе получает значение первого: это схема MHA, а не одна голова K/V.
Граница применимости: Только Transformers v4.44.2, configuration_llama.py: LlamaConfig. Чтение полей не подтверждает поддержку модели движком или успешный запуск.
Не путать
Что проверить
- В LlamaConfig v4.44.2 сверьте num_attention_heads и итоговое num_key_value_heads, а не только отсутствие поля в файле.
- Для преобразованной модели отдельно сравните ответы, память и время на своей нагрузке.
Первоисточники
- GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints
Прочитаны §§2.1–2.2, 3.1, таблица 1 и Limitations; схема голов — рисунок 2. Использована версия публикации ACL.
- Transformers v4.44.2: LlamaConfig
Прочитаны описания num_attention_heads и num_key_value_heads, параметры и ветвь None в LlamaConfig.__init__. GitHub и raw-текст открыты; код не исполнялся. Другие конфигурации и версии не проверялись.
- FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness
Прочитаны §§2–3.3 и 5; Algorithm 1 и Theorem 1 сверены с PDF v2, с. 5. На титуле PDF стоит 24 июня; дата версии arXiv — 23 июня. Более поздние FlashAttention не описываются.