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

GQA(Grouped Query Attention):分组注意力机制的原理与实践《二》

🌟 Grouped Query Attention (GQA) 核心公式

GQA 的目标是减少 Key/Value 的数量,通过引入共享的 Key/Value 组,实现更高效的计算。

设:

  • x ∈ R T × d x \in \mathbb{R}^{T \times d} xRT×d 是输入序列;
  • h h h 为总头数, g g g 为 K/V 分组数(通常 g < h g < h g<h);
  • 每组包含 h g = h g h_g = \frac{h}{g} hg=gh 个 Query;
  • 每个头的维度为 d h = d h d_h = \frac{d}{h} dh=hd

✅ Query/Key/Value 计算

Q = x W Q , K = x W K , V = x W V Q = xW^Q,\quad K = xW^K,\quad V = xW^V Q=xWQ,K=xWK,V=xWV

其中:

  • Q ∈ R T × h × d h Q \in \mathbb{R}^{T \times h \times d_h} QRT×h×dh
  • K , V ∈ R T × g × d h K, V \in \mathbb{R}^{T \times g \times d_h} K,VRT×g×dh

说明:Q 拆分成 h h h 个头,KV 只拆分成 g g g 个组,每 h g h_g hgQ 共享一组 K/V


✅ 注意力权重计算(每个头 i i i

j = ⌊ i h g ⌋ j = \left\lfloor \frac{i}{h_g} \right\rfloor j=hgi,表示第 i i i 个头对应第 j j jK/V 组:

Attention i = softmax ( Q i K j ⊤ d h ) V j \text{Attention}_i = \text{softmax}\left( \frac{Q_i K_j^\top}{\sqrt{d_h}} \right)V_j Attentioni=softmax(dh QiKj)Vj


✅ 最终输出拼接

Output = Concat ( Attention 1 , … , Attention h ) W O \text{Output} = \text{Concat}(\text{Attention}_1, \ldots, \text{Attention}_h)W^O Output=Concat(Attention1,,Attentionh)WO

其中 W O W^O WO 为输出变换矩阵。


📌 总结

GQA 在保持多头 Query 精度的同时,大幅减少了 Key/Value 的计算和存储开销,适用于大规模模型(如 LLaMA 2/3、Qwen2 等)。

http://www.dtcms.com/a/231733.html

相关文章:

  • 武汉火影数字|互动多媒体展项打造:开启沉浸式互动体验
  • 【Cursor】开发chrome插件,实现网页tab根据域名分组插件
  • 2025年- H67-Lc175--295.数据流中的中位数(小根堆,大根堆)--Java版
  • Mermaid 绘图--以企业权限视图为例
  • fastadmin+workman环境搭建
  • 光量子计算芯片改变了黄仁勋成见?英伟达拟与PsiQuantum联手颠覆未来算力
  • python第42天打卡
  • linux扫描所有私有网段shell脚本
  • UART协议调试遇到的一个问题
  • 《高等数学》(同济大学·第7版)第一章第五节《极限运算法则》
  • AReaL-boba²:开源异步强化学习训练系统的革命性突破
  • mysq进化
  • 数据结构与算法:动态规划中根据数据量猜解法
  • 如何应对敏捷转型中的团队阻力
  • 题海拾贝:P2347 [NOIP 1996 提高组] 砝码称重
  • CSP is what?
  • 电路设计基础-2
  • unix/linux,sudo,其基本概念、定义、性质、定理
  • UCRT 和 MSVC 的区别(Windows 平台上 C/C++ 开发相关)
  • WES7系统深度定制全流程详解(从界面剥离到工业部署)
  • Java 2D 图形变换方法
  • Cocos creator游戏开发面试题
  • 分享一颗PD协议芯片(取电sink芯片),ECP5701输入电压3V-28V
  • COMSOL与MATLAB联合仿真人工智能的电学层析成像系统
  • Visual Studio C++ 调试日志与异常定位指南
  • 一则systemctl service诡异问题
  • PWM 相关知识整理
  • 【趣味Html】第11课:动态闪烁发光粒子五角星
  • #Java篇:学习node后端之sql常用操作
  • 解决docker运行zentao 报错:ln: failed to create symbolic link ‘/opt/zbox/tmp/mysq