Multi Query Attention Group Query Attention

news2024/10/5 17:15:53

Multi Query Attention(MQA)在2019年就被提出来了,用于推理加速,但在当时并没有受到很多关注,毕竟一张2080就能跑Bert-base了。随着LLM的大火,MQA所带来的收益得以放大。

思路

Multi Query Attention(MQA)跟Multi Head Attention(MHA)只有一词之差,但其思路非常简单,几乎跟MHA一致:

model

MHA的Query、Key、Value分拆成8个头,每个头进行self-attention运算,而MQA是Query分成8个头,每个头共享一组Key和Value

MHA: Q, K, V = (512, 768), # seq_len, hidden_dim
			拆成8个头:
			Q : (8, 512, 96) 
			k, v: (8, 512, 96)
MQA: 
 Q -> (512, 768) 
 K -> (512, 96)
 v -> (512, 96)
把Q拆成8个头:
Q: (8, 512, 96)
K, V:(512, 96)

代码实现

  • MHA
...
self.Wqkv = nn.Linear( 
            d_model,
            d_model * 3,
            device=device,
        )
...

d_model * 3 拆成3个768维

  • MQA
...
self.Wqkv = nn.Linear( 
            d_model,
            d_model + 2 * self.head_dim,
            device=device,
        )
...

d_model + 2 * self.head_dim 拆成1个768维 + 2个96维

可以看到参数数量大幅减少。

实验结果

实验指标略微降低,但推理加速非常明显。

result

Group Query Attention

Q拆分成8个头,K和V分别拆成4个头,然后对应进行attention运算。


参考

  • Fast Transformer Decoding: One Write-Head is All
    You Need
  • [LLM] multi query attention加速推理解码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1005455.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

win10 自带虚拟机软件 虚拟CentOS系统

win10 下使用需要虚拟一个系统,不需要额外安装VMware、Virtual box等软件。使用win10 自带虚拟机软件即可 步骤1 确保启动Hyper-V 功能启用 控制面板 -> 程序 -> 启用或关闭Windows功能 步骤 2 创建虚拟机 2.1 打开Typer-V 2.2 创建虚拟机 2.2.1 操作 -&g…

什么是数据湖?数据湖的概念及发展历程

随着云计算、社交媒体、物联网、短视频等新一代互联网技术的快速发展,数据的数量和复杂性不断增加。许多企业和组织已经积累了大量的各种类型的数据,对于如何存储和管理这些海量数据,以及如何高效地分析和利用这些数据,是每个组织…

数字IC设计笔试面试经典题(1-10)

1 基础知识 1.1 锁存器的结构 锁存器即Latch ,数电中称之为电平触发的D触发器,也是D型锁存器,有电平触发器SR触发器改进得到,其工作特点是电平是有效电平(高电平或者低电平)期间,才接受信号并…

Vue中实现全景房看图3D

示例代码 安装photo-sphere-viewer yarn add -D photo-sphere-viewer 组件引入插件 import { Viewer } from photo-sphere-viewer; import photo-sphere-viewer/dist/photo-sphere-viewer.css; // 引入样式 import MarkersPlugin from photo-sphere-viewer/dist/plugins/marker…

一文读懂LCD、OLED、LED屏的区别以及透明液晶屏原理

参考文章科普|一文读懂LCD、LED和OLED 的区别 - 知乎 参考文章透明液晶显示屏的原理? - 知乎 一、LCD LCD是英文Liquid Crystal Display 的简称,指的是液晶显示屏。 主要想介绍下LCD透明屏方案: 所谓LCD透明屏,并…

Postman接口调用api

1.选择类型,输入URL 2.选择Basic Type 3.选择格式类型 文件类型 4.Send发送请求,获得返回

澄海区图书馆《乡村振兴战略下传统村落文化旅游设计》许少辉八一新著

澄海区图书馆《乡村振兴战略下传统村落文化旅游设计》许少辉八一新著

蛤蟆先生去看心理医生笔记

自我状态 儿童自我状态:行为和感受像个孩子。由童年残留的遗迹搭建而成,包含小时候体验的所有情感(儿童的基本情感)和随后演变的行为模式。 行为和感受像个孩子。由童年残留的遗迹搭建而成,包含小时候体验的所有情感…

【SpringMVC】JSR303与拦截器的使用

文章目录 一、JSR3031.1 JSR303是什么1.2 JSR 303的好处包括1.3 常用注解1.4 实例1.4.1 导入JSR303依赖1.4.2 规则配置1.4.3 编写校验方法1.4.4 编写前端 二、拦截器2.1 拦截器是什么2.2 拦截器与过滤器的区别2.3.应用场景2.4 快速入门2.5.拦截器链2.6 登录拦截权限案例2.6.1 L…

视频监控系统/视频云存储EasyCVR接入国标GB28181设备无法播放设备录像,是什么原因?

安防视频监控平台EasyCVR支持将部署在监控现场的前端设备进行统一集中接入,可兼容多协议、多类型设备,管理员可选择任意一路或多路视频实时观看,视频画面支持单画面、多画面显示,视频窗口数量有1、4、9、16个可选,还能…

第四章 Linux网络编程

ARP 协议 ARP 协议(Address Resolution Protocol)通过 IP 地址查找对应的 MAC 地址。 当一个主机需要发送数据给另一个主机时,它首先会检查本地的 ARP 缓存表(ARP cache)中是否存在目标主机的 MAC 地址。如果存在&…

【VS插件】VS code上的Remote - SSH

【VS插件】VS code上的Remote - SSH 目录 【VS插件】VS code上的Remote - SSH获得Linux服务器或者Linux系统的IP地址下载插件远程登录注意如果Linux虚拟机系统无法连接成功可能是没有开启ssh服务优势 作者:爱写代码的刚子 时间:2023.9.12 前言&#xff1…

社群团购是简单的商业模式,把握红利,冲刺双11

其实,不管微商、社群团购、直播带货、内容电商、视频号,小红书电商……都只是卖货的渠道,新渠道 社群团购让销售变得更加专业和简单,货源方负责产品的生产、渠道方负责销售。好好卖货,卖好货! 是分工合作&a…

MATLAB | 绘图复刻(十二) | 桑基图+气泡图

hey 绘图复刻居然已经出到第十二期,破百指日可待hiahiahia,今天来复刻一下 Yu, W., Wang, Z., Yu, X. et al. Kir2.1-mediated membrane potential promotes nutrient acquisition and inflammation through regulation of nutrient transporters. Nat …

【css | loading】好看的loading特效

示例&#xff1a; https://code.juejin.cn/pen/7277764394618978365 html <div class"pl"><div class"pl__dot"></div><div class"pl__dot"></div><div class"pl__dot"></div><div c…

认识 AIGC ,浅淡 AIGC 的那些事—— AIGC:用 AI 创造万物

文章目录 &#x1f525;关于活动&#x1f4cb;前言&#x1f3af;什么是 AIGC&#x1f9e9;AIGC&#xff1a;用 AI 创造万物 &#x1f3af;AIGC 发展历程&#x1f3af;AIGC 峰会分享&#x1f3af;AIGC 与大模型&#x1f4dd;最后&#x1f4d1;参考资料 &#x1f525;关于活动 从…

数据库-基础篇-SQL-DML(数据操作语言)

目录 前言 一 . 添加数据(insert) 1.指定字段添加数据 2. 全部字段添加数据 3. 批量添加数据(指定字段) 4.批量添加数据(全部字段) 二 . 修改数据(Update) 三 . 删除数据 总结 前言 DML英文全称是Data Manipulation Language(数据操作语言)&#xff0c;用来对数据库中…

Revit SDK 内容摘要: 9.0 - 9.1

前提 不包含已单独写博客部分。 Revit SDK Samples 9.0 AllViews 创建图纸&#xff0c;并放置视图。 ViewSheet sheet ViewSheet.Create(doc, m_titleBlock.Id); double xDistance 0; double yDistance 0; CalculateDistance(sheet.Outline, views.Size, ref xDistance…

few shot目标检测survey paper笔记(整体概念)

paper: Few-Shot Object Detection: A Comprehensive Survey (CVPR2021) 深度学习提高了目标检测的精度&#xff0c;但是它需要大量的训练数据。 对于训练数据集中没有见过的目标&#xff0c;是检测不了的&#xff0c;所以就限制了在实际中的应用。 如果想让模型去识别新的目标…

【SLAM】坐标系变换与外参标定

【SLAM】坐标系变换与外参标定 突然发现学习文档有下面这句话&#xff1a; 学习这件事不在乎有没有人教你&#xff0c;最重要的是在于你自己有没有觉悟和恒心。——法布尔 task02从二维坐标系开始推导坐标系变换参数&#xff0c;进而加入平移&#xff0c;加入Z轴拓展到三维坐…