GPU, ускорители и инфраструктура LLM

Групповое внимание (GQA)

Определение

Групповое внимание (GQA) — схема внимания, в которой несколько голов запросов совместно используют одну голову ключей и одну голову значений.

Также ищут: GQA · grouped-query attention · внимание с группами запросов

Зачем это знать

Числа голов Q и K/V в конфигурации помогают различить MHA, MQA и GQA до оценки памяти. Проверяйте значения загруженной конфигурации, включая подстановку по умолчанию.

Связи из словаря

Карта понятия

Доказательная часть

Что подтверждено

  1. В GQA каждая группа голов Q использует общие головы K и V. При 32 головах Q и 8 равных группах K/V на группу приходится четыре головы Q.

    Граница применимости: Расчёт 32/8 для равных групп по GQA §2.2 и полям LlamaConfig v4.44.2; условная конфигурация, не расчёт VRAM.

  2. При H головах Q схема GQA-H совпадает с многоголовым вниманием MHA: H голов K и H голов V. GQA-1 совпадает с многозапросным вниманием MQA: по одной голове K и V.

    Граница применимости: EMNLP 2023, §2.2, рисунок 2; число групп равно числу голов K/V.

  3. Авторы преобразуют веса MHA, усредняя проекции K/V внутри группы, затем продолжают предобучение. Это исследованная процедура адаптации модели, а не переключатель сервера с гарантией прежнего качества.

    Граница применимости: EMNLP 2023, §§2.1–2.2; не универсальная инструкция преобразования любой модели.

  4. Эксперименты GQA проведены на T5.1.1: изменено внимание декодера, включая внимание к кодировщику. Самовнимание кодировщика не меняли.

    Граница применимости: EMNLP 2023, §3.1 и Limitations; результаты не доказывают выигрыш для произвольной decoder-only модели.

  5. В 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. Чтение полей не подтверждает поддержку модели движком или успешный запуск.

Граница терминов

Не путать

Групповое внимание (GQA) FlashAttention

GQA меняет совместное использование K/V; FlashAttention меняет порядок вычислений и обмен с памятью.

Перед спецификацией

Что проверить

  1. В LlamaConfig v4.44.2 сверьте num_attention_heads и итоговое num_key_value_heads, а не только отсутствие поля в файле.
  2. Для преобразованной модели отдельно сравните ответы, память и время на своей нагрузке.
Открытые основания

Первоисточники

  • Исследование2
  • Документация1
  • Первичная публикация
    GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints Joshua Ainslie и соавторы; Association for Computational Linguistics · EMNLP 2023, с. 4895–4901; §§2–3.1, Limitations · проверено

    Прочитаны §§2.1–2.2, 3.1, таблица 1 и Limitations; схема голов — рисунок 2. Использована версия публикации ACL.

    Утверждения: 01 · 02 · 03 · 04

  • Официальная документация
    Transformers v4.44.2: LlamaConfig Hugging Face · Transformers v4.44.2; configuration_llama.py: LlamaConfig · проверено

    Прочитаны описания num_attention_heads и num_key_value_heads, параметры и ветвь None в LlamaConfig.__init__. GitHub и raw-текст открыты; код не исполнялся. Другие конфигурации и версии не проверялись.

    Утверждения: 01 · 05

  • Первичная публикация
    FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness Tri Dao, Daniel Y. Fu, Stefano Ermon, Atri Rudra, Christopher Ré · arXiv:2205.14135v2, 23 июня 2022; §§2.2–3.3, 5 · проверено

    Прочитаны §§2–3.3 и 5; Algorithm 1 и Theorem 1 сверены с PDF v2, с. 5. На титуле PDF стоит 24 июня; дата версии arXiv — 23 июня. Более поздние FlashAttention не описываются.

Карта знаний

Связанные понятия

Из знания — в навык

Курсы по теме

Подтвердите действие