aaihubhub
大模型原理游戏课:模型工坊 16 关 · 第 5 课 / 共 16 课 ↗ AI 教程

05|多头小队与 GQA:并行观察而不重复搬运

理解多头子空间、拼接投影和分组查询注意力的缓存收益。

author
↗ 4 阅读
LESSON BRIEFING05 / 16
第 5 / 16 关

组建多头小队

不同头并行关注指代、结构和局部模式,并让查询组共享 KV。

互补越高、重复越低,多头越有价值。

CHECKPOINT

GQA 主要节省哪部分开销?

理解多头子空间、拼接投影和分组查询注意力的缓存收益。

一名侦察员很难同时盯住指代、语法、局部搭配和长距离结构。多头注意力让多个较小子空间并行读同一序列,再把报告拼回主干。

先建立整机直觉

不要先背术语。先问三个工程问题:这一阶段接收什么形状的数据、做了哪一种变换、结果交给谁。只要数据流清楚,公式就不再是孤立符号。

核心机械结构

  • hidden_size 被拆到多个 head,每个头拥有自己的查询投影与特征视角。
  • 标准 MHA 为每个查询头都保留 K/V;MQA 让所有查询头共享一组 K/V;GQA 取中间方案,让一组查询头共享一个 K/V 头。
  • 推理解码时历史 K/V 需要缓存,因此减少 K/V 头能显著降低内存带宽和缓存体积。

跟着一个例子走

若有 16 个查询头、4 个 K/V 头,则每 4 个查询头共享一组键和值。查询仍保持多样视角,历史缓存却只有标准 16 K/V 头方案的约四分之一。

阅读例子时,把“固定权重”和“本次请求产生的激活”分别标记。前者在训练后保存,后者会随输入变化;混淆两者会导致对记忆、隐私和性能的错误判断。

容易掉进的坑

头数更多不保证能力线性增加。重复头会浪费容量,K/V 共享过度也可能损失表达;架构选择是在质量、速度和内存之间折中。

动手工坊

  1. 写出 batch=2、seq=128、heads=16、head_dim=64 时 Q 的形状。
  2. 分别估算 MHA 与 4 个 K/V 头 GQA 的单层缓存元素数。
  3. 画出 8 个查询头映射到 2 个 K/V 组的对应关系。

完成后不要只保存结果。记录输入、参数、观察和结论,换一组输入重复实验。一个现象只有在可重复时才是证据。

检查点

你应能解释 GQA 为什么主要优化解码内存,而不是取消多头查询。

回到页面上方的互动任务,调节两个控制量并完成选择题。答对后,本关会在浏览器中记为完成并获得 XP。

参考与延伸

  • https://mlx.void.app/zh
  • https://arxiv.org/abs/2305.13245

本课程为 aiHubHub 原创改写。外部站点只用于核对概念范围与交互启发,正文、例子、练习和界面均重新设计。