Multi Query Attention Group Query Attention

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.hqwc.cn/news/107468.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2.zigbee开发,zigbee点亮灯,如何正确使用别人提供的模板文件

一。成为点灯大师的其中一步(普通点灯,操作系统点灯,网络点灯,wifi点灯,蓝牙点灯,zigbee点灯,LoRa点灯,NB点灯)*(寄存器点灯,HAL库点灯&#xff0…

2023年数维杯数学建模B题节能列车运行控制优化策略求解全过程文档及程序

2023年数维杯数学建模 B题 节能列车运行控制优化策略 原题再现: 在城市交通电气化进程快速推进的同时,与之相应的能耗增长和负面效应也在迅速增加。城市轨道交通中的快速增长的能耗给城轨交通的可持续性发展带来负担。2018 年,北京、上海、…

西工大 ASLP 实验室在 WeNet 中开源基于 CPPN 的神经网络热词增强语音识别方案

语境偏置(Contextual biasing)旨在将语境知识集成到语音识别(ASR)系统中,以提高在相关领域词汇(俗称“热词”)上的识别准确率。在许多ASR场景中,待识别语音中可能会包含训练数据中数…

windows10系统下Python3.11中安装Numpy库教程

Python3.11中安装Numpy库目录 项目场景:问题描述解决方案:①下载Numpy文件②把NumPy文件放到Python安装的Scripts文件夹里。③安装numpy④安装验证 项目场景: numpy是开源的数值计算扩展,用于数据分析、机器学习、科学计算的重要…

pgzrun 拼图游戏制作过程详解(3)

3. 绘制完整的拼图 建立Gird列表存储小拼图的基本信息 Gird[] for i in range(6):for j in range(4):SquareActor("girl_06")Square.leftSquare_size*jSquare.topSquare_size*iGird.append(Square) 修改draw()绘制函数 建立循环绘制Gird列表中的所有小拼图 def d…

开源大模型ChatGLM2-6B 1. 租一台GPU服务器测试下

0. 环境 租用了1台GPU服务器,系统 ubuntu20,GeForce RTX 3090 24G。过程略。本人测试了ai-galaxy的,今天发现网友也有推荐autodl的。 (GPU服务器已经关闭,因此这些信息已经失效) SSH地址:* 端…

虚拟机作为master远程控制台式机中的机器人在仿真环境中进行slam地图构建与自主导航

文章目录 前言一、思路流程二、具体步骤1.虚拟机网络配置2.台式机网络配置3.网络测试 三、远程操控SLAM建立地图三、远程操控SLAM导航 前言 虚拟机作为master远程控制台式机中的机器人在仿真环境中进行slam地图构建与自主导航 最近有时间一直在搞Ubuntu虚拟机与台式机的通讯&…

Java复习-多线程编程

多线程编程 解决并发访问的问题。 一. 继承 Thread 类实现多线程 1. 继承实现 继承thread类 class MyThread extends Thread{}覆写run主方法 多线程要执行的功能都应该在 run() 方法中定义。 class MyThread extends Thread { // 线程的主体类private String title;public…

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

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

2022年全国研究生数学建模竞赛华为杯D题PISA架构芯片资源排布问题求解全过程文档及程序

2022年全国研究生数学建模竞赛华为杯 D题 PISA架构芯片资源排布问题 原题再现: 一、背景介绍 芯片是电子行业的基础,在当前日益复杂的国际形势下,芯片成了各个大国必争的高科技技术。本课题关注网络通信领域的交换芯片,传统的交…

华为云云耀云服务器L实例评测|使用Linux系统与Docker部署.net/c#项目

目录 前言 如何在CentOS运行项目 登录CentOS 使用Rider打包 使用Visual Studio打包 项目运行 后台运行 开放端口 如何在Docker中运行项目 项目运行 前言 本章详细介绍,.net Core项目从打包到部署上华为云云耀云服务器L实例的过程与一些细节问题。在这里…

解决stable diffusion webui1.6 wd1.4 tagger加载失败的问题

由于webui源码的变化,需要修改两个地方的import 1.tagger/ui.py # 第十行 # from webui import wrap_gradio_gpu_call # 原代码 from modules.call_queue import wrap_gradio_gpu_call1.preload.py # 第4行开始 # from modules.shared import models_path # 原…