大模型原理游戏课:模型工坊 16 关 · 第 5 课 / 共 16 课 ↗ AI 教程
05|多头小队与 GQA:并行观察而不重复搬运
理解多头子空间、拼接投影和分组查询注意力的缓存收益。
↗ 4 阅读
LESSON BRIEFING05 / 16
第 5 / 16 关
组建多头小队
不同头并行关注指代、结构和局部模式,并让查询组共享 KV。
62系统稳定度
互补越高、重复越低,多头越有价值。
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 共享过度也可能损失表达;架构选择是在质量、速度和内存之间折中。
动手工坊
- 写出 batch=2、seq=128、heads=16、head_dim=64 时 Q 的形状。
- 分别估算 MHA 与 4 个 K/V 头 GQA 的单层缓存元素数。
- 画出 8 个查询头映射到 2 个 K/V 组的对应关系。
完成后不要只保存结果。记录输入、参数、观察和结论,换一组输入重复实验。一个现象只有在可重复时才是证据。
检查点
你应能解释 GQA 为什么主要优化解码内存,而不是取消多头查询。
回到页面上方的互动任务,调节两个控制量并完成选择题。答对后,本关会在浏览器中记为完成并获得 XP。
参考与延伸
- https://mlx.void.app/zh
- https://arxiv.org/abs/2305.13245
本课程为 aiHubHub 原创改写。外部站点只用于核对概念范围与交互启发,正文、例子、练习和界面均重新设计。