当前位置: 首页 > news >正文

【NLP】MHA、MQA、GQA机制的区别

Note

  • LLama2的注意力机制使用了GQA。三种机制的图如下:
    在这里插入图片描述

MHA机制(Multi-head Attention)

MHA(Multi-head Attention)是标准的多头注意力机制,包含h个Query、Key 和 Value 矩阵。所有注意力头的 Key 和 Value 矩阵权重不共享

MQA机制(Multi-Query Attention)

MQA(Multi-Query Attention,Fast Transformer Decoding: One Write-Head is All You Need)是多查询注意力的一种变体,也是用于自回归解码的一种注意力机制。与MHA不同的,MQA 让所有的头之间共享同一份 Key 和 Value 矩阵,每个头只单独保留了一份 Query 参数,从而大大减少 Key 和 Value 矩阵的参数量。

GQA机制(Grouped-Query Attention)

GQA(Grouped-Query Attention,GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints)是分组查询注意力,GQA将查询头分成G组,每个组共享一个Key 和 Value 矩阵。GQA-G是指具有G组的grouped-query attention。GQA-1具有单个组,因此具有单个Key 和 Value,等效于MQA。若GQA-H具有与头数相等的组,则其等效于MHA。GQA介于MHA和MQA之间。GQA机制,多头共用 KV Cache。

Reference

[1] 一文通透各种注意力:从多头注意力MHA到分组查询注意力GQA、多查询注意力MQA
[2] Transformer系列:注意力机制的优化,MQA和GQA原理简述
[3] Navigating the Attention Landscape: MHA, MQA, and GQA Decoded

相关文章:

  • 鸿蒙系统优缺点,能否作为开发者选择
  • React和Vue 中的 router 实现原理如何
  • php数据类型以及运算符、判断条件
  • CSS 评分器星星效果
  • TiDB 在医疗保障信息平台的应用实践
  • 鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之AlphabetIndexer组件
  • 【优化数学模型】3. 基于Python的整数规划-指派问题求解
  • 【机器学习案例3】从科学论文图片中提取标题、作者和摘要【含源码】
  • linux---内存管理
  • linux驱动工作原理
  • 单翻译单元的基本结构
  • 【Python---六大数据结构】
  • C++入门学习(三十)一维数组的三种定义方式
  • langchain==win11搭建使用GPU
  • JVM-垃圾回收(标记算法,收集器)
  • php的引用
  • 【技术性】Search知识
  • 【刷算法】从上往下打印二叉树
  • CSS居中完全指南——构建CSS居中决策树
  • Date型的使用
  • javascript 总结(常用工具类的封装)
  • React的组件模式
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 大数据与云计算学习:数据分析(二)
  • 反思总结然后整装待发
  • 复习Javascript专题(四):js中的深浅拷贝
  • 一个SAP顾问在美国的这些年
  • 异常机制详解
  • 最近的计划
  • ​​​​​​​​​​​​​​Γ函数
  • #FPGA(基础知识)
  • (12)Hive调优——count distinct去重优化
  • (23)Linux的软硬连接
  • (7)STL算法之交换赋值
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (zhuan) 一些RL的文献(及笔记)
  • (二)丶RabbitMQ的六大核心
  • (七)理解angular中的module和injector,即依赖注入
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (转)为C# Windows服务添加安装程序
  • .aanva
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .bat批处理出现中文乱码的情况
  • .net core 控制台应用程序读取配置文件app.config
  • .Net Redis的秒杀Dome和异步执行
  • .Net下的签名与混淆
  • .Net语言中的StringBuilder:入门到精通
  • .Net中wcf服务生成及调用
  • .net中调用windows performance记录性能信息
  • @cacheable 是否缓存成功_Spring Cache缓存注解
  • @private @protected @public
  • [ vulhub漏洞复现篇 ] ThinkPHP 5.0.23-Rce