news 2026/5/23 0:14:19

北京大学造出“变形金刚“AI芯片适配器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
北京大学造出“变形金刚“AI芯片适配器

这项由北京大学人工智能研究院主导的研究,以预印本形式发布于2026年5月,论文编号为arXiv:2605.15250,有兴趣深入了解的读者可通过该编号查询完整论文。

当你把一台高端游戏电脑的显卡换成一张"性能阉割版"显卡时,你会希望游戏能自动调整画质设置,而不是强行以原来的高画质运行导致画面卡成幻灯片。这篇论文解决的,正是大型语言模型(也就是ChatGPT、文心一言这类AI背后的核心技术)在不同计算芯片上运行时面临的同一个困境——现有的高效方案只为一种芯片量身定做,换了芯片就摔跟头。

研究团队提出了一种叫做"分组查询潜在注意力"(GQLA)的新设计,核心思路极其简洁:同一套训练好的模型参数,在运行时能自动切换两种完全等价的工作模式,让H100这类顶级芯片和H20这类受出口管制的"平价芯片"都能各自跑在自己的最优状态。没有重新训练,没有定制内核,一套权重走遍天下。

一、先搞清楚"KV缓存"这个拦路虎

要理解这篇论文在做什么,先要明白AI大模型在生成文字时遭遇了怎样的瓶颈。每当AI生成一个新词,它都需要回顾自己之前生成的所有内容作为参考。这些"历史记录"就叫做KV缓存(Key-Value Cache),其中K代表"索引信息",V代表"内容信息"。

可以把KV缓存理解为一位速记员随时翻阅的工作笔记本。每生成一个新词,速记员就要把整本笔记本翻一遍,找出相关内容。笔记本越厚,翻阅速度越慢。当AI生成长文本时,这本"笔记本"会变得非常庞大,每次翻阅都需要从芯片的高速内存(HBM,类似硬盘但比普通内存快得多)里把数据搬运一次,而这个搬运速度就成了整个系统最致命的瓶颈。

学界为此发明了多种"压缩笔记本"的方案。最激进的叫MQA(多查询注意力),相当于所有人共用一本极简笔记本;折中方案叫GQA(分组查询注意力),几个人共用一本笔记本;而DeepSeek-V2/V3采用的MLA(多头潜在注意力)则更聪明——它不只是共用笔记本,而是把笔记本内容先压缩成一段"精华摘要"存起来,用的时候再临时展开。这样笔记本体积最小,搬运最省力。

MLA的"精华摘要"方案在英伟达H100芯片上几乎达到了理论最优效率。但问题在于,这个方案是为H100量身裁缝的,换了芯片就出了岔子。

二、H100和H20:同样的带宽,天差地别的算力

要理解芯片适配问题,需要引入一个叫"屋顶线模型"(Roofline Model)的评估框架。这个框架把芯片性能比作一条双斜屋顶:屋顶的左半边代表"内存搬运速度"是瓶颈,右半边代表"计算速度"是瓶颈,两边相交的最高点(叫做"屋脊点")就是计算任务应该尽量命中的最优工作区域。

H100芯片的屋脊点大约在每字节295次浮点运算。换句话说,H100的计算能力极强,只要一个任务的"计算量与数据搬运量之比"接近295,就能把芯片利用率逼到极限。MLA的absorbed MQA模式(即"精华摘要"模式)在单次解码时的这个比值恰好约为242,稍低于屋脊点,正处于内存搬运略微吃紧的高效区间,堪称完美匹配。

H20则是另一回事。由于美国出口管制,H20的计算能力被大幅削减至约148 TFLOPS,但内存带宽几乎保留完整(约4.0 TB/s),导致H20的屋脊点只有大约37。而MLA在H20上的比值仍然是242——这个数字远远高于37的屋脊点,意味着H20的计算单元被迫全速空转等待数据,大量算力白白浪费。更直白地说,MLA在H20上是严重的"大马拉小车",芯片的运算部件一直在等数据,却等不到,吞吐量大幅下降。

论文中的数据清楚地展示了这个差距:MLA在H20上每步解码需要约15.42微秒,即便开启了"多词预测"(MTP,一次多生成几个词以提升效率的技术),由于H20已经是计算瓶颈,多生成一个词只会让等待时间成倍增加,吞吐量几乎没有任何提升,每秒只能生成约6.5万个词。与此同时,H100运行同样的MLA却只需2.82微秒,每秒可以生成约35.4万个词。

除了效率问题,MLA还有另外两个连带缺陷。其一是"并行扩展受限":MLA的精华摘要模式要求所有计算头共享同一份压缩数据,这使得无法沿"头轴"方向把计算分散到多张显卡上(这种分散技术叫做张量并行),实际部署中需要把压缩数据复制到每张显卡,浪费内存。其二是"多词预测失效":如前所述,在H20这类计算受限的芯片上,MLA一词一词地生成和一次生成多词的速度几乎相同,多词预测完全失去意义。

三、GQLA的核心设计:一套参数,两条路走

GQLA的关键发明在于,它在保留MLA"精华摘要"压缩能力的同时,为同一套训练参数开辟了第二条执行路径。

具体来说,GQLA把键值的上投影矩阵(可以理解为"把摘要还原为完整内容"的解码器)不再复制给所有128个查询头,而是按组索引,每组8个查询头共享一个解码器。这个看似微小的改变,让整个系统在数学上同时支持两种完全等价的计算方式。

第一条路叫"GQA路径":临时把摘要展开成8组完整的键值对,每组对应16个查询头,然后按照普通GQA的方式运行注意力计算。这条路需要在缓存中存储展开后的数据,每个词元需要约4224字节,相当于LLaMA-3的标准GQA缓存大小,但能让计算与数据搬运的比值降低到约38.8,恰好命中H20的屋脊点。在H20上,这条路配合多词预测,每步解码只需9.06微秒,每秒可生成约22.1万个词,比MLA的6.5万提升了3.4倍。

第二条路叫"MQA吸收路径":与MLA完全相同,把解码器矩阵直接吸收进查询计算里,让所有查询头直接对精华摘要做注意力,缓存中只需存储摘要本身,每个词元约1152字节,计算比值约242,完美贴合H100屋脊点。这条路在H100上单步解码只需2.82微秒,每秒生成约35.4万个词。

两条路产生的输出在数学上完全相同,只是计算的中间步骤不同。部署时,系统根据目标硬件一次性选定路径,并相应地把KV缓存压缩或展开(这只是部署时的一次性操作,而非每步推理都要做),此后无需任何改动。

四、把现有模型"变身"GQLA:TransGQLA流水线

从头训练一个GQLA模型代价高昂,研究团队因此提出了TransGQLA——一种把已有GQA模型改造成GQLA模型的转换流程,核心改动只有一行代码的差异。

这个流程建立在此前提出的TransMLA工作基础上。TransMLA的做法是:把GQA模型里每组共享的KV头合并成一个大的潜在向量,然后把展开矩阵复制给所有查询头,使模型在非压缩模式下行为像MHA(完整多头注意力)。TransGQLA的区别仅在于,合并时不复制展开矩阵,让它保持按组索引——于是合并后的模型行为依然是GQA,而不是MHA。这个细节保留了沿组轴进行张量并行的能力,最多支持8路零冗余张量并行。

完成这一步之后,TransGQLA沿用TransMLA的后续流程:通过"RoRoPE"技术把位置编码信息从内容编码中解耦出来,通过"FreqFold"技术对旋转位置频率进行重新排列以利于后续压缩,最后通过对键和值进行归一化平衡后做联合低秩压缩,把庞大的中间向量压缩到一个紧凑的潜在表示。这些步骤操作的对象是合并后的潜在向量,完全不关心外层模型是GQA还是MHA解释,因此可以直接复用。

研究团队在LLaMA-3-8B上验证了这个流程。这个模型有32个查询头、8个KV组,每个头的维度为128,原始GQA缓存每词元每层需要2048个BF16元素。经过TransGQLA处理并压缩到576维潜在空间后,MQA吸收路径的缓存降至原来的28.125%,压缩率超过了7倍。GQA路径的缓存大小则与原版相近,保留了原始GQA的传输效率。

五、稀疏注意力的扩展:为什么GQLA更有优势

论文还讨论了一个进阶话题:稀疏注意力。正常的注意力机制每生成一个新词都要看遍所有历史词,当上下文很长(比如几万个词)时开销巨大。稀疏注意力的思路是,每次只挑选最相关的一小批历史词来参考,跳过无关的大部分历史,从而大幅降低计算量。

DeepSeek提出的DSA(深度求索稀疏注意力)是目前主流的稀疏方案,但它与MLA组合时存在结构性缺陷。现代GPU芯片的矩阵乘法加速单元(张量核心)有一个硬性限制:它的基本计算瓦片(MMA瓦片)的M维度至少需要16,意味着每个KV头必须同时服务至少16个查询头,才能让张量核心满负荷工作。MLA在非压缩模式下每个KV头只对应1个查询头,远低于16的门槛,张量核心完全发挥不出来,所以稀疏MLA被迫在所有设备上都只能走MQA吸收路径,无法利用GQA路径的优势。

GQLA的标准配置是128个查询头配8个KV组,每组恰好对应128/8=16个查询头,与MMA瓦片的M=16完美匹配。这意味着稀疏GQLA可以在GQA路径上让张量核心满负荷工作,在H20这类计算受限的芯片上保持高效,同时保留沿组轴的张量并行能力。记忆力受限的硬件可以切换到稀疏MQA吸收路径以最小化缓存搬运,计算受限的硬件则留在稀疏GQA路径保持低算力消耗,两种选择都不需要定制内核。

论文还提到,当上下文极长(超过6.4万词)时,计算"哪些历史词最相关"本身也会变成瓶颈。另一项叫HISA的工作提出了一种分层评分方法来加速这个筛选过程,与GQLA自然互补——HISA负责"更快地找出相关词",GQLA负责"更高效地对相关词做注意力计算",两者组合能从两端同时逼近硬件理论峰值。

六、实验验证:转换后掉了多少能力,能恢复吗

研究团队选取了开源的LLaMA-3-8B作为测试对象,在六个常识推理基准测试上评估了转换效果,包括MMLU(综合知识)、ARC(科学推理)、PIQA(物理常识)、HellaSwag(情境理解)、OpenBookQA(开放知识)和Winogrande(代词消歧)。

原始LLaMA-3-8B在这六项测试的加权平均分为63.84分。经过TransGQLA转换但不做任何额外训练后,平均分降至54.13分,下降了约9.7分。PIQA和HellaSwag的得分与原始模型相差只有几分,表明模型的基础语言理解能力保留较好,主要损失集中在需要大量知识记忆的MMLU等任务上。这个损失程度对于超过7倍的缓存压缩率而言是相对温和的。

研究团队还给出了预期恢复轨迹的参照。此前TransMLA的实验显示,在同样的LLaMA-3-8B基础上做同样压缩后,用约300亿词元的数据继续预训练,平均分就能恢复到63.39分,与原始模型只差0.5分——而300亿词元相比LLaMA-3本身训练用的15万亿词元,仅仅是约五百分之一的训练量。由于TransGQLA和TransMLA在0训练词元时的分数完全相同(两者的KV子空间压缩步骤完全一致,只有前期的头合并方式不同),研究团队预计TransGQLA的继续预训练曲线将与TransMLA高度一致,因此可以合理期待同样数量级的训练后即可恢复到接近原始水平。这个继续预训练实验正在进行中,完整结果将在后续版本中补充。

七、选择(g=8, sq=2)还是(g=4, sq=1):两种H20优化方案的权衡

论文详细讨论了两种在H20上达到最优效率的参数配置,各有侧重。

g=8配合多词预测sq=2的方案是研究团队的推荐默认配置。这种配置的优点是多方面的:8个KV组意味着潜在空间维度为8×128=1024,比rkv=512的压缩目标大一倍,给PCA压缩留出了2倍冗余,压缩质量更高;支持最多8路零冗余张量并行,大规模部署时扩展性好;每组16个查询头恰好匹配MMA瓦片要求,为后续的稀疏扩展打好基础;配合多词预测,H20每秒吞吐量可达22.1万词。

g=4不使用多词预测sq=1的方案则是一个轻量替代选项。每词元缓存大小从4224字节降至2176字节,只比MQA吸收路径的1152字节多一些,缓存压力显著减小;不需要多词预测头,模型结构更简单;但PCA冗余度降为1倍(PCA是一种数据降维技术,冗余度越高,压缩时信息保留越完整),张量并行上限也降至4路。在H20上同样能达到22.1万词/秒的吞吐量。

关键的一点是:无论选择哪种GQA路径配置,MQA吸收路径的计算强度公式中根本不含g这个变量,因此两种配置在H100上都以完全相同的2.82微秒每步在MQA吸收路径上运行,不受影响。这正是GQLA设计的精髓所在——GQA路径的参数选择完全不会牵连H100上的表现,两套硬件的优化方案可以独立调整。

说到底,GQLA做的事情听起来有点像魔术,但背后的道理其实很朴素:同一批数学参数,根据不同的计算顺序,可以既表现得像"把笔记精简成摘要再直接用",也表现得像"按小组展开笔记分组处理",两种算法算出来的答案一模一样,只是计算过程中的数据搬运量和运算次数的比例不同。哪种比例更适合当前芯片的脾气,就用哪种。这种灵活性以前从来没有人在这个问题上明确提出过,而研究团队用一个极小的结构改动就实现了。

归根结底,这项工作的价值在于打破了一个隐含的假设——"为顶级芯片优化的模型架构在平价芯片上只能凑合用"。通过让同一套模型参数在数学意义上等价地适配不同硬件特性,GQLA为大模型部署的硬件无关性提供了一条实际可行的路径。对于那些既需要在高端数据中心提供服务、又希望在不同算力级别的硬件上灵活扩展的团队来说,这个思路值得认真参考。

你可能想知道,这种设计对未来的模型训练有什么影响。一个有趣的推论是:如果模型从一开始就按照GQLA的结构训练,那么部署时就可以完全不做任何转换,直接根据目标硬件选择路径。这意味着未来DeepSeek这类机构在设计下一代模型时,可以考虑把GQLA作为MLA的直接替代,从训练阶段就埋下两路兼容的基因。而对于已有的大量GQA模型(比如LLaMA系列),TransGQLA流程提供了一条相对低成本的改造路径,不必从零开始。

当然,论文本身也坦诚地指出了几处待完善的地方。屋顶线分析是一种理论工具,现实中的芯片还有缓存层次结构、指令流水线延迟、多流调度等复杂因素,实际的内核级基准测试还需要在真实H20和H100硬件上完成。TransGQLA的继续预训练结果也尚未完成,目前的恢复预测是基于TransMLA的经验推断。此外,所有实验都集中在LLaMA-3-8B这一个模型上,在更大规模(如70B参数)和更多任务类型(长文本检索、代码生成、数学推理等)上的验证还需要后续工作来补充。

如果你对大模型推理优化或硬件适配感兴趣,可以通过arXiv:2605.15250找到这篇论文的完整版本,里面包含详细的数学推导、完整的实验数据以及符号表。

Q&A

Q1:GQLA和MLA有什么区别,为什么GQLA能适配H20?

A:MLA只有一条"精华摘要"执行路径,这条路径的计算与数据搬运比值约为242,适合H100但远超H20屋脊点37,导致H20的计算单元空转浪费。GQLA在保留这条路径的同时,新增了一条GQA路径,通过按组展开数据让比值降至约38,恰好命中H20屋脊点,H20吞吐量因此从6.5万词/秒提升至22.1万词/秒,提升了3.4倍。两条路径使用完全相同的训练参数,输出也数学等价。

Q2:TransGQLA转换后模型能力会损失多少,需要多少额外训练来弥补?

A:以LLaMA-3-8B为例,经过TransGQLA转换但不做任何额外训练,六项常识推理基准的平均分从63.84降至54.13,下降约9.7分,同时KV缓存压缩至原来的28.125%。根据同类方法TransMLA的经验,用约300亿词元继续预训练后,平均分可恢复至63.39,与原始模型仅差0.5分。300亿词元相当于LLaMA-3原始训练量的约五百分之一,训练成本相对较低。

Q3:GQLA的两条路径切换时需要改变模型参数或重新训练吗?

A:不需要。两条路径共享完全相同的训练参数,切换时只需在部署阶段对KV缓存做一次性的压缩或展开操作,之后运行时无需任何改动。MQA吸收路径复用MLA的现有内核,GQA路径复用标准GQA内核,均不需要定制开发新的计算内核。

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

【Typescript】13-tsconfig与工程化实践

tsconfig 与工程化实践 很多人学 TypeScript 时,会把注意力几乎全部放在语法上:泛型会不会写、infer 看不看得懂、工具类型会不会用。可真正在工程里决定 TypeScript 上限的,往往不是这些,而是 tsconfig.json。因为它决定了编译器…

作者头像 李华
网站建设 2026/5/22 23:58:04

novm 设备模型详解:VirtIO 与现代硬件虚拟化技术

novm 设备模型详解:VirtIO 与现代硬件虚拟化技术 【免费下载链接】novm Experimental KVM-based VMM for containers, written in Go. 项目地址: https://gitcode.com/gh_mirrors/no/novm novm 是一个基于 KVM 的实验性容器虚拟化管理程序(VMM&am…

作者头像 李华