news 2026/10/15 15:24:51

注意力架构的KV压缩-从MHA到GQA与MQA的工程账

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
注意力架构的KV压缩-从MHA到GQA与MQA的工程账

摘要

KV Cache 是长上下文推理显存的主要消耗者。运行时可以用分页、换出、压缩来管理它,更根本的办法是从架构源头减少 KV 的产生:标准多头注意力每个头都有独立键值,而 GQA 和 MQA 让多个查询头共享一份键值,KV 体量直接从根上降下来。本文把三者的取舍、以及为什么 GQA 成了近年的默认之选讲清楚。2026 奇点智能技术大会(11 月 20-21 日·北京万达文华酒店)大模型技术与 AI Infra 专题会讨论模型结构演进。

▸ 核心结论:GQA 不是运行时 KV 管理的替代品,而是把运行时要管的盘子缩小几倍
▸ 关键权衡:GQA 改的是模型结构,必须训练阶段就确定;事后共享会明显掉点
▸ 适合谁读:做推理成本优化的工程师——短序列小 batch 场景换 GQA 未必划算

本文的结构 压力 一 KV 压力从哪来(层数、头数、长度三者相乘) | 对比 二~三 MHA / GQA / MQA 的折中逻辑 | 影响 四~五 对运行时的影响 / 训练与迁移 | 落地 六~八 常见坑、衔接大会、落地顺序 已有 MHA 大模型要换 GQA,先算总账:推理省的是否抵得过重训成本

一、KV 压力从哪来

标准多头注意力里,每一层、每一个头都要缓存自己的键和值,随序列长度线性增长。序列一长,这部分显存就压倒参数本身,成为部署的主要瓶颈。
运行时的分页、换出、压缩都是在「已经产生这么多 KV」之后做治理。但如果能在架构上让 KV 少产生,治理的压力就小得多,这是和运行时手段互补的另一条线。

KV 压力还有一层来自层数:层数越多,每层键值都要缓存,总量随层数线性增长。GQA 缩减的是每层的 KV 头数,所以在深层模型上累积收益更明显,层数翻倍,省下的显存也大致翻倍。

KV 压力还和序列长度的分布相关:若请求长度普遍很长但差异大,运行时即便有分页,峰值显存仍可能被最长那条拉爆。GQA 降的是单位长度的 KV 量,配合运行时治理,才能同时压住均值和峰值。

KV 压力还和批内最长序列强相关:即使平均长度可控,一条超长样本就可能撑爆显存,让整批失败。GQA 降低单位 KV 量,但对极端长尾样本,运行时仍要设最大长度保护与优雅拒绝,两者互补。

二、三种架构的对比

架构键值共享KV 量特点
MHA每头独立最大表达力最强
GQA分组共享中等平衡之选
MQA全部共享最小推理最快,质量略损

GQA 把查询头分成若干组,每组共享一份键值,是表达力和效率之间的折中,也是近年很多新模型的默认选择。MQA 更激进,所有头共用一份键值,KV 量最小但表达力损失更明显。

GQA 的分组数选择还能和并行策略联动:分组数与张量并行度对齐时,分组内共享键值、跨组并行更规整,实现更简单,也减少了跨组通信的不一致。这种结构上的巧合值得在选型时一起考虑,而不是孤立看注意力。

MQA 还有一个少被讨论的点:所有头共享一份键值,意味着键值缓存只有一份,缓存命中与复用的收益也更大,在前缀复用场景下比 GQA 更省。所以选 MQA 还是 GQA,还要看是否有前缀共享需求。

三种架构还要考虑训练成本差异:MQA 表达力损失大,常需要更多训练步数补回质量,隐性成本更高。选型不能只比推理 KV 量,要把训练侧因质量损失多花的算力也折进总账,才算公平。

查询头与键值对的对应关系 MHA(多头注意力) 头数 = N,KV 份数 = N Q1 -> K1,V1 Q2 -> K2,V2 每个查询头都有自己独立的键值 Q3 -> K3,V3 Q4 -> K4,V4 GQA(分组查询) 头数 = N,KV 份数 = N/组数 Q1 -> Q2 -> -> K_a, V_a 同一组的多个 Q 共享一份键值 Q3 ->/ Q4 -> -> K_b, V_b MQA(多查询) 头数 = N,KV 份数 = 1 Q1 -> Q2 -> | Q3 -> -> K, V 所有查询头共用一份 Q4 ->/ 三个维度的对比 KV 体量 表达力 备注 MHA 最大 最强 选项A成本高,长上下文最先撞墙 GQA 中等 接近 MHA 近年大部分新模型的默认选择 MQA 最小 损失更明显 前缀复用场景收益反而更大 选型要看推理形态 长上下文 / 高并发 -> GQA 收益明显 短序列 / 小 batch -> KV 本就不大,省得有限,可能得不偿失

三、GQA 的折中逻辑

GQA 的价值在于它不像 MQA 那样把表达力压到最低,又比 MHA 显著省 KV。分组数是一个可调旋钮:组越少越省,但越接近 MQA;组越多越接近 MHA,省得越少。
实际选型要看任务对注意力细度的敏感度。检索、长程依赖重的任务,分组太少可能掉点;简单生成任务,激进分组几乎无损却大幅提速。

GQA 并非对所有人都有同等收益:短序列、小 batch 的场景 KV 本就不大,换 GQA 省下的显存有限,反而可能掉点,要按场景定。它是为长上下文和高并发推理准备的,不是普适更优。

GQA 分组数还可以是 2 的幂以对齐硬件并行度,让分组内的计算更规整,减少 padding 浪费。这种和硬件对齐的细节,在极致优化时影响明显,普通场景不必过分纠结,但要知道有这一层。

GQA 分组数还可以按注意力头总数约取:让每组包含相近的头数,分组均匀比随意分组更稳,也便于并行。这种结构性考量在大规模模型上影响明显,小模型上则可随意些,不必纠结。

四、对运行时的影响

KV 量少的直接好处是缓存占用下降,同样显存能撑更长的上下文或更大的批。分页管理的碎片问题也缓解,因为单条序列的 KV 更小。
但共享键值意味着分组内头的输出更相关,某些依赖头间差异的优化要重新评估。架构变了,原来针对 MHA 的缓存布局假设可能不再成立。

共享键值也带来一个新现象:分组内头的相关性变强,某些依赖头间多样性的注意力解释或可视化要重新做,旧结论可能不再适用。架构变了,配套的分析工具也要跟着验证,而不是默认沿用。

共享键值还简化了运行时的缓存管理:分组内头共享,缓存条目数减少,索引和换出逻辑更简单,bug 面也更小。这对长上下文服务的稳定性是隐性利好,不只省显存。

共享键值还利于跨请求复用:同组内键值一致,前缀复用的命中率更高,缓存利用效率上升。这对有相同系统提示的多租户场景尤其有利,GQA 与运行时前缀缓存是天然搭档。

五、训练与迁移

从 MHA 模型出发改 GQA,通常需要重新训练或至少大幅微调,因为键值结构变了,原有的参数不能直接沿用。这也意味着采用 GQA 多是新模型设计时的决策,而非上线后的补丁。
一些做法是训练时就在 GQA 配置下做,让模型适应共享键值的约束,而不是事后裁剪。事后裁剪虽然省事,但质量损失往往比原生 GQA 大。

事后裁剪的另一种做法是蒸馏:用 MHA 教师教 GQA 学生,能部分挽回质量损失,但增加了蒸馏管线的复杂度和额外的算力成本。只有在确实无法重训时才值得考虑,否则原生 GQA 始终更干净。

若必须从 MHA 出发,也可以先做 GQA 化的渐进训练:先用 MHA 训到稳定,再切换结构微调,比从头训省时间,质量损失也可接受。这是折中方案里性价比较高的一种,适合已有 MHA 大模型想降本的场景。

迁移还要验证精度边界:GQA 化后,某些对注意力细度敏感的子任务可能掉点,要在验证集上逐项查,而不是只看整体指标。整体涨了不代表每个任务都好,长尾任务常是 GQA 的薄弱处。

六、常见坑

坑一是把 GQA 当成纯推理优化。它改变的是模型结构,必须在训练阶段就确定,事后强行共享会明显掉点,不如原生设计。
坑二是只看 KV 节省比例忽略质量。激进 MQA 在某些任务上 KV 省了十几倍,但关键指标掉了几个点,对产品可能不可接受,要按任务实测取舍。

坑三:以为 MQA 一定比 GQA 快就盲目选 MQA。某些硬件上极窄的 KV 反而让内存访问模式变差,实际延迟未必更优,要实测而不是只看 KV 体量。架构收益最终要落到真实延迟上才算数。

坑四:只看推理侧 KV 节省,忽略训练侧成本。GQA 改变结构意味着要重训,重训的算力成本可能远高于推理省下的。对已经训好的大模型,要算总账,确认推理节省抵得过训练开销再动手。

坑五:以为换 GQA 就自动省显存,不验证实际峰值。结构省了单位量,但若批大小随之调大,峰值可能没降反升。要实测端到端峰值,而不是只看理论 KV 公式,否则省了个寂寞。

七、衔接大会专题

11 月 20-21 日,北京万达文华酒店,奇点智能技术大会的大模型技术专题会讨论模型结构演进;AI Infra 基础设施专题从推理效率与 KV 管理的角度给出工程视角。两者结合,能看清架构与运行时的互补关系。
带着「我们模型是 MHA 还是 GQA」去参会,问题会很聚焦。

注意力架构和运行时 KV 管理是同一问题的两端。带着自己模型是 MHA 还是 GQA 去听,能更清楚地判断哪些运行时优化对自己是雪中送炭、哪些只是锦上添花。

架构与运行时是同一个优化目标的两端,带着自己 KV 的实测数据去听,能更准地判断 GQA 是不是自己的最优解,还是该继续在运行时层面做文章。

架构与运行时联动的分享里,最该学的是别人如何把 GQA 和前缀缓存、分页一起优化。带着自己的 KV 峰值去听,能判断自己是否只做了一半。

八、落地顺序

若是新模型,在结构选型阶段就评估 GQA 分组数,按任务敏感度定。若是已有 MHA 模型,先实测运行时 KV 治理的收益,再决定是否值得为 GQA 重训。
顺序反了,为省 KV 贸然改架构重训,可能付出巨大训练成本却只换来有限收益。

补充:若是新模型,GQA 分组数要尽早定,因为训练时就绑定了结构。把分组数和推理目标(期望上下文长度、批大小)一起反推,比训练完再纠结要主动得多。

最后,GQA 选型要和推理框架对齐:有些框架对 MQA 的支持比对 GQA 更成熟,选了 GQA 却跑不出预期收益,可能是框架没优化到位。选型前先确认框架对这一架构的实现质量。

最后,GQA 选型要和推理框架、KV 管理系统一起评估,三者耦合紧密。单独选 GQA 却跑在不适配的框架上,收益可能大打折扣。选型前先打通端到端验证,再下结论。

补充问答

问:GQA 和运行时 KV 管理冲突吗?

答:不冲突,是互补。运行时分页、换出是在 KV 已产生后做治理;GQA/MQA 是从架构源头减少 KV 产生。两者叠加,盘子更小、治理更易。

问:GQA 能事后给 MHA 模型打补丁吗?

答:不建议。它改变模型结构,必须训练阶段确定。事后强行共享键值会明显掉点,不如原生设计的 GQA。

问:MQA 为什么不是默认?

答:MQA 所有头共享一份键值,KV 最省、推理最快,但表达力损失更明显,某些任务关键指标会掉点。GQA 在效率和质量间更平衡,更常作默认。

问:分组数怎么定?

答:组越少越省但越近 MQA、质量风险越高;组越多越近 MHA、省得越少。按任务对注意力细度的敏感度实测,检索长依赖任务不宜太少分组。

问:GQA 对缓存布局有何影响?

答:KV 量下降,同样显存撑更长上下文或更大批,分页碎片也缓解。但分组内头输出更相关,依赖头间差异的缓存优化要重新评估。


大会信息
2026 奇点智能技术大会 + C++ 及系统软件技术大会
时间:2026 年 11 月 20-21 日
地点:中国·北京万达文华酒店
大会报名:免费领取大会PPT资料

立即报名,锁定 Lukasz Kaiser Keynote 与 70+ 场演讲完整资料!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/15 15:24:51

Qt中集成PDFium:从源码编译到PDF渲染的完整指南

简介:源码包面向使用Qt框架的开发者,提供一套基于PDFium开源引擎的完整PDF文档处理方案,用来解决在Qt应用中打开、显示、翻页、缩放、搜索文字、提取图像与填写表单等实际需求。压缩包内共收录两千个文件,包括九百四十五个头文件、…

作者头像 李华
网站建设 2026/10/15 15:24:13

规则优先的世界模型:先写规则再渲染,重塑AI生成可控性

如果你亲自做过AI视频生成、游戏AI或者自动驾驶仿真,大概率撞到过同一个问题: 生成结果不受控 。写一句Prompt让模型输出“下雨天一辆车在湿滑路面刹车”,结果它给你生成一个轮胎毫无抓地力、车身像纸片一样横漂的画面。你想在生成过程中临…

作者头像 李华
网站建设 2026/10/15 15:23:46

Langchain简单快速上手教程(四)—— 聊天模型之结构化输出

前言本期我将要介绍LangChain 中聊天模型的另一功能结构化输出。这将原来大模型输出的AIMessage变成以例如Json等格式化输出,以适应特定的开发场景。一、with_structured_output() 方法要想使用结构化输出能力,LangChain提供了一种方法.with_structured_…

作者头像 李华
网站建设 2026/10/15 15:23:09

STM32Cube-FW-F4 V1.28.0固件包详解:HAL库、CubeMX与工程实践

简介:意法半导体官方推出的STM32Cube-FW-F4-V1.28.0资源包,面向单片机与嵌入式开发工程师,为基于ARM Cortex-M4内核的STM32F4系列微控制器提供一套完整的软件开发基础。资源以zip压缩包形式发布,体积约611.5MB,文件总数…

作者头像 李华
网站建设 2026/10/15 15:22:40

Spring Boot+Vue前后端分离整合Shiro与JWT无状态认证实践

最近在给一个内部管理系统做前后端分离改造,后端是 Spring Boot,前端是 Vue 全家桶。原系统的权限体系用了很多年的 Shiro,所以第一反应是“不就是把 session 换成 token 嘛”,结果真动手之后才发现,Shiro 这套老框架默…

作者头像 李华
网站建设 2026/10/15 15:22:08

Simscape机械臂建模与仿真:从刚体搭建到PID控制实战

简介:面向机械臂建模初学者与Simscape仿真开发者,这份压缩包提供了一个三自由度(DOF)机械手臂从物理建模到动力学仿真的完整案例。模型源自roboholicmaniacs,采用步进电机作为执行器,以三个关节的扭矩角作为…

作者头像 李华