大模型都在用的GQA是什么

news2024/11/30 12:48:20

论文:Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints

更详细内容直接看原文!!!

摘要

Multi-query attention(MQA)只使用一个键值头,大大加快了解码器推理。然而,MQA可能导致质量下降,而且不为了更快的推断而训练一个单独的模型。我们提出了一个方法,

  1. 将现有的多头语言模型检查点升级成MQA模型,

  2. 引入分组查询注意(GQA),一种多查询注意的泛化,使用一个中间(多于一个,少于查询头数量)的键值头。

我们表明,向上训练的GQA以接近MQA的速度达到接近多头注意力的质量。

导言

自回归解码器推理是Transformer模型的一个严重瓶颈,因为加载每个解码器权值和所有注意键和值的内存带宽开销。通过multi-query attention,可以显著降低加载keys和values的内存带宽,它使用多个query头,但使用单个keys和values头。然而,multi-query attention(MQA)可能会导致质量下降和训练不稳定,而训练针对质量和推理进行优化的单独模型可能是不可行的。此外,虽然一些语言模型已经使用了multi-query attention,如PaLM,但许多语言模型并没有使用,包括公开可用的语言模型,如T5和LLaMA。

这项工作包含了对使用大型语言模型进行更快的推理的两个贡献。

首先,研究表明具有多头注意(MHA)的语言模型检查点可以被向上训练,以使用具有一小部分原始训练计算的MQA。这是一种获得fast multi-query和高质量MHA检查点的经济有效的方法。

其次,我们提出了分组查询注意(GQA),这是一种在多头和多查询注意之间的插值,使用单键和值头。我们表明,向上训练的GQA可以达到了接近多查询注意力的质量,同时几乎与多查询注意力一样快。

Uptraining

从multi-head model生成multi-query model分两个步骤进行:

  • 首先,转换检查点,

  • 其次,进行额外的预训练,以使模型适应其新的结构。

图1显示了将multi-head checkpoint转换为multi-query checkpoint的过程。key 和 value头的投影矩阵被mean-pooling(平均池化)成单个投影矩阵,我们发现这比选择单个键和值头或随机初始化新的key 和 value头更有效。

然后在相同的预训练方法上对转换后的检查点进行原始训练步骤的小比例α的预训练。

在这里插入图片描述
从multi-head到multi-query attention的转换概述。来自所有head的Key和value投影矩阵被平均合并到单个头部中。

Grouped-query attention

分组查询注意力将查询头分为G组,每个组共享一个键头和值头。GQA-G是指使用G组进行的分组查询。GQA-1为单组,因此单Key和Value头,相当于MQA,而GQA-H组等于头数,相当于MHA。图2显示了分组查询注意力和多头/多查询注意力的比较。当将一个多头检查点转换为一个GQA检查点时,我们通过mean-pooling(平均池化)该组中的所有原始头来构造每个组Key和Value头。

中间数量的组导致一个插值模型,其质量比MQA高,但比MHA快,并且,正如我们将展示的,代表了一个有利的权衡。从MHA到MQA将H键和值头减少到单个键和值头,从而减少了键值缓存的大小,因此需要加载的数据量为H倍。然而,更大的模型通常会放大头部的数量,这样multi-query attention代表一个更激进的削减内存带宽和容量。GQA允许我们在模型大小的增加时保持带宽和容量的比例减少。

此外,较大的模型遭受的内存带宽开销相对较小,因为kv缓存随模型维度的增加而增加,而模型FLOPs (是floating point of operations的缩写,是浮点运算次数,可以用来衡量算法/模型复杂度)和参数随模型维度的平方而增加。最后,对于大型模型的标准分片通过模型分区的数量复制单个Key和Value头;GQA从这种分区中去除浪费。因此,我们希望GQA能够为更大的模型提供一个特别好的权衡。我们注意到GQA不适用于编码器自注意层;编码器表示是并行计算的,因此内存带宽通常不是主要的瓶颈。

在这里插入图片描述

总结

MHA(Multi-head Attention)

MHA(Multi-head Attention)是Google团队在 2017 年在Attention Is All You Need提出的一种NLP经典模型,首次提出并使用了 Self-Attention 机制,也就是 Multi Head Attention,是标准的多头注意力机制,有H个Query、Key 和 Value 矩阵。

具体来说,MHA 由多个平行的自注意力层组成,每个层都可以关注到输入的不同部分。而每个注意力头都有自己的感知域(parameter sets),可以独立学习输入中的不同特性。然后,将所有头的输出拼接后,通过一个线性变换,得到最终的输出。

MHA的优势在于它能同时捕获输入数据的多个不同特性。事实上,不同的"头"可以分别专注于词序列的不同方面,例如语义、语法等。

MQA(Multi-Query Attention)

MQA也是Google团队在2019年,在Fast Transformer Decoding: One Write-Head is All You Need提出的,是MHA的一种变体,也是用于自回归解码的一种注意力机制。与MHA不同的是,MQA 让所有的头之间共享同一份 Key 和 Value 矩阵,每个头只单独保留了一份 Query 参数,**从而大大减少 Key 和 Value 矩阵的参数量,**以此来达到提升推理速度,但是会带来精度上的损失。

GQA(Grouped-Query Attention)

GQA(分组查询注意力)同样,也是Google在2023年,于GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints提出的一种MHA变体,GQA将查询头分成G组,对于Query是每个头单独保留一份参数,每个组共享一个Key 和 Value 矩阵。GQA-G是指具有G组的grouped-query attention。

中间组数导致插值模型的质量高于 MQA,但比 MHA 更快。从 MHA 到 MQA 将 H 键和值头减少到单个键和值头,减少了键值缓存的大小,因此需要加载的数据量 H 倍。

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

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

相关文章

【ArcGIS 小技巧脚本工具】批量修复CAD图层的数据源

当你打开ArcPro文档的时候,看到内容列表满屏红色感叹号。 新手可能会心脏骤停,久经沙场的规划人只会微微一笑。随机选中一个幸运的红色感叹号点击,打开更改数据源对话框,找到它原始的数据源,确定。 but。。。为啥只修复…

C++小程序:同一路由器下两台计算机间简单通信(2/2)——客户端

客户端的程序结构前半部分与服务器端基本相同,后半部分也相对简单。相关函数的解释可以参考前文服务器端的内容。有关客户端的内容除个别地方外,就不再做长篇大论的解释。强调一点,如果将此程序移到其它电脑上运行,编译需要releas…

【基于 PyTorch 的 Python 深度学习】6 视觉处理基础:卷积神经网络(2)

前言 文章性质:学习笔记 📖 学习资料:吴茂贵《 Python 深度学习基于 PyTorch ( 第 2 版 ) 》【ISBN】978-7-111-71880-2 主要内容:根据学习资料撰写的学习笔记,该篇主要介绍了卷积神经网络的池化层部分和现代经典网络。…

Echarts旭日图的配置项,强大的层级关系展示图表。

ECharts中的旭日图(Sunburst Chart)是一种数据可视化图表,用于展示层级关系数据。它通常用于呈现树状结构或层级结构的数据,例如组织结构、文件目录结构、地理区域层级等。 旭日图通过圆形的方式展示数据的层级结构,每…

AI技术构建本地知识库的流程

构建本地知识库是一个复杂的过程,涉及以下几个步骤,使用大模型技术构建本地知识库是一种很有前途的方法。随着大模型技术的不断发展,我们可以期待本地知识库将变得更加智能、高效和准确。北京木奇移动技术有限公司,专业的软件外包…

Cloudflare国内IP地址使用教程

Cloudflare国内IP地址使用教程 加速网站: 首先我们添加一个 A 记录解析,解析 IP 就是我们服务器真实 IP: 然后侧边栏 SSL/TLS - 自定义主机名: 回退源这里填写你刚刚解析的域名,保存后回退源状态为有效再来接下的操作…

2-1 EXTI外部中断(gd32)

中断的概念 中断硬件结构/软件结构 EXTI中断 EXTI硬件结构 注:EXTI线在同一时刻只能连接一个GPIO口,如果我们先连接了PA0,然后又连接了PB0那么此时PA0这个IO口就失去作用。 中断触发函数 中断优先级 中断优先级 数值越小优先级越高,抢占优先级…

17 M-LAG 配置思路

16 华三数据中心最流行的技术 M-LAG-CSDN博客 M-LAG 配置思路 什么是M-LAG?为什么需要M-LAG? - 华为 (huawei.com) 1 配置 M-LAG 的固定的MAC地址 [SW-MLAG]m-lag system-mac 2-2-2 2 配置M-LAG 的系统标识符系统范围1到2 [SW-MLAG]m-lag system-nu…

程序员工作中常见问题,你遇到过几个?

在赛博朋克2077玩后感中,我提到,即便是在严谨的机制下,依然可能出现让人匪夷所思或是贻笑大方的问题。 那么今天,就以后端程序员的视角,盘点下从设计开发到上线的常见问题,看看大家中过几个。 01 设计与开…

解决ubuntu无法上网问题

发现是网络配置成了Manual手动模式,现在都改成自动分配DHCP模式 打开后,尝试上网还是不行,ifconfig查看ip地址还是老地址,怀疑更改没生效,于是重启试试。 重启后,ip地址变了,可以打开网页了 …

中间件的使用

中间件是全局使用 工厂函数定义中间件 middleware.py # 工厂函数的中间件 def simple_middleware(get_response):def middleware(request):print("在视图函数处理之前执行、、、、、")response get_response(request)print("在视图函数处理之后执行。。。。…

宝塔面板Java项目部署,五步轻松搞定

当涉及到正规的开发项目时,最终的上线部署是至关重要的一个环节。本文旨在以最简单便捷的方法来教你如何完成项目的部署工作。 1. SSH下载地址 项目完成后需要使用SSH终端进行项目部署,以确保安全的远程访问、和操作远程服务器。 Xshell (支持Windows系…

【数据结构】排序(一)—— 希尔排序(思路演进版)

目录 一、常见的排序算法分类 二、常见排序算法的实现 2.1插入排序 2.1.1基本思想 2.1.2直接插入排序 思路 step1.单趟控制 step2.总体控制 代码实现 测试 特性总结 2.1.3 希尔排序( 缩小增量排序 ) 基本思想 思路演进 🌈1.代码实现单组排序&#…

【recast-navigation-js】通过websocket获取navmesh数据并初始化

目录 说在前面目录结构websocket服务器前端结果 说在前面 操作系统:windows 11浏览器:edge版本 124.0.2478.97recast-navigation-js版本:0.29.0golang版本:1.21.5 目录结构 D:. │ go.mod │ go.sum │ main.go // websocket …

Ant-design实现a-table无数据的时候展示中文

Ant-design实现国际化 1.基本需求 当a-table中没有数据的时候展示的是No Data现在我们需要将这个英文变成中文的形式 就要实现“国际化”2.实现国际化 参考:我用的是Vue3Ant-Design4.x 导入: import zhCN from "ant-design-vue/es/locale/zh_CN&qu…

Hadoop大数据应用技术复习题分析

文章目录 复习一一. 单选题二. 多选题三. 填空题 复习三一. 单选题 复习一 一. 单选题 (单选题)压缩速度由大到小snappy、LZO、gzip、bzip2,压缩比最大的是 A. snappy B. LZO C. gzip D. zip2 正确答案: D:zip2; 答案解析: 压缩率:zip2>…

深度学习--DCGAN

代码之后的注释和GAN的一样,大家如果已经掌握GAN,可以忽略掉哦!!! 在学习DCGAN之前,我们要先掌握GAN,深度学习--生成对抗网络GAN-CSDN博客 这篇博客讲的就是GAN的相关知识,还是很详…

8个免费无版权视频素材网站,高清无水印视频任性下载

在数字化时代,优质的视频素材成为各种项目不可缺少的元素,从短片制作到商业广告,高品质的视频能显著提高作品的吸引力和传播效果。然而,寻找既免费又无版权问题的高清视频素材并非易事。以下介绍几个优秀的免费视频素材网站&#…

ORA-609频繁出现在alert.log,如何解决?

ORA-609就alertlog中比较常见的一个报错,虽然并没有太大的影响,但是频繁的出现在alert log也是很让人厌烦的事情,本文介绍如何排查解决ORA-609问题。 1.ORA-609官方定义 could not attach to incoming connection Cause Oracle process cou…

通过linux花里胡哨的控制台,学习linux基础命令

今天这个B我装定了! 前言命令集 开始1、cowsay (让牛说话,够无聊的,但牛说的话是你输入的,细思极恐!)Debian/Ubuntu 安装命令:RHEL/CentOS/Fedora 安装:运行解释 2、fort…