大模型-attention汇总解析之-GQA

article/2025/7/19 15:37:22

从上面的图可以看出,MHA是一个attention 头有自己独立的kv cache 缓存,这样子的计算效果是最好的,同时kv cache 也是最完善的,意味着也是最占用内存的。MQA 进行了极致的kv cache 共享,那么能不能对多头进行分组,一组多头共享一组KV cache呢?在二者中间做一个折中呢?

论文《GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints》对这个想法进行了实践。它就是将所有 Head 分为 g个组( h可以整除g ),每组共享同一对 K、V,用数学公式表示为

 

GQA 提供了 MHA 到 MQA 的自然过渡,

  1. 当g==h 时就是 MHA,

  2. g==1 时就是 MQA

  3. 当 g<h时,它只将 KV Cache 压缩到g/h ,压缩率不如 MQA,但同时也提供了更大的自由度, 更好的计算效果。

GQA 最知名的使用者,大概是 Meta 开源的 LLAMA2-70B,以及 LLAMA3全系列,此外使用 GQA 的模型还有 TigerBot 、DeepSeek-V1、ChatGLM2、ChatGLM3 等,比使用 MQA 的模型更多。

  • MHA:MHA KVCache 在注意力头这个维度和 Q 矩阵一样,属于“一对一”。MHA把一个注意力计算拆成多个注意力头,每个注意力头使用独立的Q、K、V进行计算,需要把K、V都存储下来,KV Cache中每个token需要缓存的参数量为2n*h_d*h_l。而GQA、MQA 在注意力头的维度比 Q 矩阵小。

  • MQA:所有查询头共享相同的单一键和值头,因此只需要存储共享的K和V,KV Cache中每个token需要缓存的参数量为2d_h_l。在计算注意力时,会把共享的单一K头和V头广播给每个查询头,然后分别一一计算。

  • GQA:将所有的Q头分成g组,同一组的Q头共享一个K头和一个V头,因此KV Cache中每个token需要缓存的参数量为2n_g_d_h_l。在计算注意力时,会把KV头复制给所在组的所有Q头进行计算。

n_h是注意力头数量,n_g是GQA分组数,d_h是隐藏层维度,l为模型层数,h_t∈R^d 表示第 𝑡 个token在一个attention层的输入。

 


http://www.hkcw.cn/article/faRBIwPpgR.shtml

相关文章

Haption在危险、挑战性或受限环境中操作的情况提供了一种创新的遥操作解决方案

Haption Virtuose 6D TAO是一款拥有7个主动自由度的触觉设备&#xff0c;专为虚拟现实环境交互而设计。 它与Virtuose的一系列软件解决方案兼容&#xff0c;可让您直接在CAD软件中使用该设备进行装配仿真&#xff0c;并在3D游戏引擎中使用该设备&#xff0c;从而打造更加逼真的…

[STM32问题解决(2)]STM32通过串口与PC通信,打开串口助手后无法在打开状态下下载程序和复位STM32

问题回顾 最近学习STM32单片机&#xff0c;经常使用STM32通过USART1串口与PC的串口助手进行通信。为了简单便捷&#xff0c;通常在打开串口的状态下下载程序。这样子下载程序后&#xff0c;STM32发出的信号&#xff0c;PC马上可以收到。 但是&#xff0c;突然出现了一个问题&a…

JVM内存模型(运行时数据区)

目录 编者想说 1、内存模型图 2、栈 3、程序计数器 3、堆 4、方法区&#xff08;元空间&#xff09; 5、本地方法栈&#xff08;Native Method Stack&#xff09; 编者想说 通过上一篇文章的对JVM的体系结构以及它的演化&#xff0c;我们对JVM有了一个比较清晰的认识&…

突破铁芯CT局限:罗氏线圈的“无磁饱和”技术深度解读

罗氏线圈互感器&#xff1a;关键应用场景解析 罗氏线圈&#xff08;Rogowski Coil&#xff09;互感器以其独特的性能优势&#xff0c;成为测量交流电流&#xff08;尤其适用于变化快、幅度大或频率范围广的电流&#xff09;的理想选择。其核心优势在于宽频带、无磁饱和、尺寸灵…

Oracle数据仓库在医院的应用场景

2025年3月28日&#xff0c;我作为会议组织者&#xff0c;在宁波组织了数据仓库在医院的应用场景&#xff0c;会议主要议题如下&#xff1a; 1、解析医院多源异构数据&#xff08;HIS/LIS/EMR/PACS&#xff09;实时整合的技术方案 2、Oracle exadata在构建全院级数据仓库的性能优…

JavaScript引用类型

引用类型概述 变量值的两种存储方式 1原始值 2引用值 基本数据类型 5种基本数据类型都是按照原始值的方式来存储的&#xff0c;也叫原始数据类型。 undefined表示没有存储值&#xff0c;也是一种基本数据类型&#xff1b;null表示存储了值&#xff0c;但是空指针&#xff…

实战项目7(10)【待更新......】

任务场景一 按照下图完成网络拓扑搭建和配置 任务要求&#xff1a; 按照以上网络拓扑&#xff0c;将直连路由重发布至OSPF动态路由信息中&#xff0c;实现终端PC间可以正常访问。 【R1】配置 【R2】配置 【R3】配置 任务场景二 按照下图完成网络拓扑搭建和配置 任务要求&…

C# 将HTML文档、HTML字符串转换为图片

在.NET开发中&#xff0c;将HTML内容转换为图片的需求广泛存在于报告生成、邮件内容存档、网页快照等场景。Free Spire.Doc for .NET作为一款免费的专业文档处理库&#xff0c;无需Microsoft Word依赖&#xff0c;即可轻松实现这一功能。本文将深入解析HTML文档和字符串转图片两…

MySql(八)

目录 查询 1&#xff09;准备一张表 2&#xff09;准备数据 3&#xff09;查询表中的数据 4&#xff09;只查表中的某些列 5&#xff09;为列起别名 使用 as 不使用as 查询 1&#xff09;准备一张表 CREATE table role( roleid INT PRIMARY KEY AUTO_INCREMENT, rolename VA…

Redis Sorted Set 深度解析:从原理到实战应用

Redis Sorted Set 深度解析&#xff1a;从原理到实战应用 在 Redis 丰富的数据结构家族中&#xff0c;Sorted Set&#xff08;有序集合&#xff09;凭借独特的设计和强大的功能&#xff0c;成为处理有序数据场景的得力工具。无论是构建实时排行榜&#xff0c;还是实现基于时间的…

95套HTML高端大数据可视化大屏源码分享

概述​​ 在大数据时代&#xff0c;数据可视化已成为各行各业的重要需求。这里精心整理了95套高端HTML大数据可视化大屏源码&#xff0c;这些资源采用现代化设计风格&#xff0c;可帮助开发者快速构建专业的数据展示界面。 ​​主要内容​​ ​​1. 设计风格与特点​​ 采用…

Python 中的空间 KDE 图

数据&#xff1a;布里斯班致命车祸 我将使用昆士兰道路车辆事故数据集&#xff0c;该数据集可从昆士兰开放数据门户获取。该数据集提供了昆士兰州2001年1月1日至2023年11月30日期间所有已报告的道路交通事故的地点和特征信息。 我只想关注致命事故&#xff0c;所以唯一需要关…

变焦位移计:机器视觉如何克服人工疲劳与主观影响?精准对结构安全实时监测

变焦视觉位移监测与人工监测的对比 人工监测是依靠目测检查或借助于全站仪&#xff0c;水准仪&#xff0c;RTK等便携式仪器测量得到的信息&#xff0c;但是随着整个行业的发展&#xff0c;传统的人工监测方法已经不能满足监测需求&#xff0c;从人工监测到自动化监测已是必然趋…

【JavaWeb】Maven、Servlet、cookie/session

目录 5. Maven6. Servlet6.1 Servlet 简介6.2 HelloServlet6.3 Servlet原理6.4 Mapping( **<font style"color:rgb(44, 44, 54);">映射 ** )问题6.5 ServletContext6.6 HttpServletResponse<font style"color:rgb(232, 62, 140);background-color:rgb(…

【Day40】

DAY 40 训练和测试的规范写法 知识点回顾&#xff1a; 彩色和灰度图片测试和训练的规范写法&#xff1a;封装在函数中展平操作&#xff1a;除第一个维度batchsize外全部展平dropout操作&#xff1a;训练阶段随机丢弃神经元&#xff0c;测试阶段eval模式关闭dropout 作业&#x…

GEARS以及与基础模型结合

理解基因扰动的反应是众多生物医学应用的核心。然而&#xff0c;可能的多基因扰动组合数量呈指数级增长&#xff0c;严重限制了实验探究的范围。在此&#xff0c;图增强基因激活与抑制模拟器&#xff08;GEARS&#xff09;&#xff0c;将深度学习与基因-基因关系知识图谱相结合…

【C++】入门基础知识(1.5w字详解)

本篇博客给大家带来的是一些C基础知识&#xff01; &#x1f41f;&#x1f41f;文章专栏&#xff1a;C &#x1f680;&#x1f680;若有问题评论区下讨论&#xff0c;我会及时回答 ❤❤欢迎大家点赞、收藏、分享&#xff01; 今日思想&#xff1a;微事不通&#xff0c;粗事不能…

[SWPUCTF 2023 秋季新生赛]Classical Cipher203分古典密码Base家族栅栏密码

下载附件解压得到txt文件 得到信息 U2FsdGVkX19aQNEomnRqmmLlI9qJkzr0pFMeMBF99ZDKTF3CojpkTzHxLcu/ZNCYeeAV3/NEoHhpP5QUCK5AcHJlZBMGdKDYwko5sAATQ 用在线网站进行解密 解密得到 TGhmYlMlXXNwX2BTb3NoQWcye1VweSRfcXEGdmBheDx0I1BkMXdfXG0ldzdbGBy 栅栏密码用在线网站进行…

Unity 中实现首尾无限循环的 ListView

之前已经实现过&#xff1a; Unity 中实现可复用的 ListView-CSDN博客文章浏览阅读5.6k次&#xff0c;点赞2次&#xff0c;收藏27次。源码已放入我的 github&#xff0c;地址&#xff1a;Unity-ListView前言实现一个列表组件&#xff0c;表现方面最核心的部分就是重写布局&…

【提升工作效率的小工具】截图软件Snipaste

1.F1截图&#xff0c;F3钉在桌面上 2.小技巧 纯文本复制后&#xff0c;F3钉在桌面上&#xff0c;鼠标右键&#xff0c;点击复制纯文本&#xff0c;可以直接再次复制 shift鼠标双击截图&#xff0c;可以缩略显示不占位置&#xff0c;重复操作就是展开截图。 隐藏/显示所有贴图…