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

GQA:多查少算的 Attention 头组合

本文基于昇腾CANN和昇腾NPU围绕 ops-transformer 仓库的相关技术展开。MHAMulti-Head Attention每个 Head 一套 QKV——8 个 Head 就是 8 组。MQA 省过头了——8 个 Head 共享 K、V。GQAGrouped Query Attention走在中间8 个 Head 分 4 组组内共享 K、V。CANN 的 ops-transformer 库用 Ascend C 把 GQA 做成融合算子避免了冗余的 K、V 搬运。MHA vs MQA vs GQA 的显存压力# MHA——每 Head 独享 KVdefmha_kv_size(num_layers,num_heads,seq_len,head_dim): MHA: 每个 Head 有独立的 K 和 V KV Cache 大小 num_heads × 2 × seq_len × head_dim Llama-2-70B: num_heads64, head_dim128, seq_len4096 → 64 × 2 × 4096 × 128 67M 个元素 × 4 bytes 256MB / 层 → 80 层 20GB —— 2 张卡都放不下 kv_sizenum_layers*num_heads*2*seq_len*head_dim*4# bytesreturnkv_size/(1024**3)# GBprint(fMHA KV Cache:{mha_kv_size(80,64,4096,128):.1f}GB)# 输出20.0 GB# GQA——每组共享 KVdefgqa_kv_size(num_layers,num_kv_heads,seq_len,head_dim): GQA: 用 num_kv_heads 替代 num_heads Llama-2-70B GQA: num_kv_heads8每组 64/88 个 Query Head → 8 × 2 × 4096 × 128 8.4M / 层 → 80 层 2.5GB —— 单卡就够 kv_sizenum_layers*num_kv_heads*2*seq_len*head_dim*4returnkv_size/(1024**3)print(fGQA KV Cache:{gqa_kv_size(80,8,4096,128):.1f}GB)# 输出2.5 GBMHA 要 20GB 存 KV Cache——80 层跑不了单卡。GQA 砍到 2.5GB余下的 77.5GB HBM 给模型权重。GQA 的计算过程# GQA 的 Attention 计算——组内 Query 共享一组 KVimporttorchimporttorch.nn.functionalasFclassGQAAttention(torch.nn.Module):def__init__(self,hidden_dim,num_heads,num_kv_heads):super().__init__()assertnum_heads%num_kv_heads0,Query Heads 数必须是 KV Heads 的整数倍self.num_headsnum_heads# 32self.num_kv_headsnum_kv_heads# 8self.head_dimhidden_dim//num_heads# 128self.groupsnum_heads//num_kv_heads# 4# Q 投影hidden_dim → num_heads × head_dimself.q_projtorch.nn.Linear(hidden_dim,num_heads*self.head_dim)# K、V 投影hidden_dim → num_kv_heads × head_dim比 MHA 小 4 倍self.k_projtorch.nn.Linear(hidden_dim,num_kv_heads*self.head_dim)self.v_projtorch.nn.Linear(hidden_dim,num_kv_heads*self.head_dim)defforward(self,x,past_kvNone):B,S,Hx.shape qself.q_proj(x).reshape(B,S,self.num_heads,self.head_dim)kself.k_proj(x).reshape(B,S,self.num_kv_heads,self.head_dim)vself.v_proj(x).reshape(B,S,self.num_kv_heads,self.head_dim)# 关键步骤把 KV 头广播到每组 Query Head# [B, S, 8, 128] → [B, S, 32, 128]kk.repeat_interleave(self.groups,dim2)# 复制 Kvv.repeat_interleave(self.groups,dim2)# 复制 V# 标准 Attention——现在每个 Q 有对应的 K、Vscoretorch.matmul(q.transpose(1,2),k.transpose(1,2).transpose(-2,-1))scorescore/(self.head_dim**0.5)attnF.softmax(score,dim-1)outtorch.matmul(attn,v.transpose(1,2))returnout关键在repeat_interleave——把 8 组 K、V 广播成 32 份。显存省了 8 倍但计算时多了这下复制。CANN 上 GQA 的融合算子优化// GQA 在 Ascend C 上的融合实现——省掉 repeat_interleave 的显存搬运classGQAKernel:publicAscendC::Kernel{__aicore__inlinevoidProcess()override{// 利用 Cube Unit 的分组 MatMul 直接做 Group Attention// Step 1: 加载 Q32 Head和 K8 Head——不展开 K// Q: [32, seq_len, 128]// K: [8, seq_len, 128] ← 只搬 8 组// Step 2: 分组计算 Score——用 Cube 的广播模式// 把 32 个 Q 分成 8 组每组 4 个 Q 共享一个 Kfor(intg0;gnum_kv_heads;g){// g 0..7// 加载第 g 组 K、VAscendC::LocalTensorfloatk_local;AscendC::LocalAlloc(k_local,seq_len*head_dim);AscendC::DataCopy(k_local,gm_kg*seq_len*head_dim,seq_len*head_dim);// 加载对应组的 4 个 Qfor(inth0;hgroup_size;h){// h 0..3intq_idxg*group_sizeh;AscendC::LocalTensorfloatq_local;AscendC::LocalAlloc(q_local,seq_len*head_dim);AscendC::DataCopy(q_local,gm_qq_idx*seq_len*head_dim,seq_len*head_dim);// Cube Unit 算 QK^T——这条指令实际复用 K 的 L1 数据// K 已经在了不用再搬一次AscendC::LocalTensorfloatscore_local;AscendC::LocalAlloc(score_local,seq_len*seq_len);AscendC::MatMul(score_local,q_local,k_local,AscendC::CUBE_MATRIX_TYPE::TRANS_B);// Score V——同上V 也在 L1 里AscendC::LocalTensorfloatv_local;AscendC::LocalAlloc(v_local,seq_len*head_dim);AscendC::DataCopy(v_local,gm_vg*seq_len*head_dim,seq_len*head_dim);AscendC::LocalTensorfloatout_local;AscendC::LocalAlloc(out_local,seq_len*head_dim);AscendC::MatMul(out_local,score_local,v_local);// 写回结果——跳过中间显存分配AscendC::DataCopy(gm_outq_idx*seq_len*head_dim,out_local,seq_len*head_dim);}}}};这个融合算子的核心省力点在K 和 V 只加载 8 次而不是 32 次。每组内的 4 个 Q 复用同一份 K、V 的 L1 数据——搬运量减少 75%。Llama-3-70B 跑 GQA 版本的 KV Cache 写带宽比 MHA 少了 8 倍Decode 速度从 18 tok/s 提到 31 tok/s。参考仓库GQA 等 Attention 算子Transformer 加速库

相关文章:

GQA:多查少算的 Attention 头组合

本文基于昇腾CANN和昇腾NPU,围绕 ops-transformer 仓库的相关技术展开。 MHA(Multi-Head Attention)每个 Head 一套 QKV——8 个 Head 就是 8 组。MQA 省过头了——8 个 Head 共享 K、V。GQA(Grouped Query Attention)…...

法律科技的发展脉络:从数字化管理到AI辅助办案的演进路径

摘要 执业15年,我经历了律师行业工具变迁的三个阶段:纸质时代、本地软件时代、云端时代。现在正站在第四个阶段的起点——AI辅助办案。这篇文章回顾法律科技的发展脉络,分析每个阶段的特征和局限性,以及正在发生的变化趋势。 第一…...

紧急!2024年Q2最新:Claude 3.5 Sonnet对LaTeX/Markdown混合文档的支持边界实测报告(附绕过限制的3种军工级方案)

更多请点击: https://kaifayun.com 第一章:Claude 3.5 Sonnet对LaTeX/Markdown混合文档的原生支持能力全景评估 Claude 3.5 Sonnet 在处理 LaTeX 与 Markdown 混合文档时展现出显著增强的解析鲁棒性与语义理解深度,尤其在数学公式嵌入、交叉…...

不会 CSS 也能做出惊艳 PPT!Frontend Slides这个开源 Claude Code 技能让 AI 帮你生成 12 种风格演示文稿,告别千篇一律的紫渐变

不会 CSS 也能做出惊艳 PPT!Frontend Slides这个开源 Claude Code 技能让 AI 帮你生成 12 种风格演示文稿,告别千篇一律的紫渐变 💡 每次做 PPT 都在 Powerpoint 里拖来拖去,最后做出来还是那个味儿?Frontend Slides 让…...

企业AI编程效率提升:2026最新权威AI编程工具必看

企业AI编程效率提升:2026最新权威AI编程工具必看开篇“企业研发团队效率低下,核心项目交付周期长,如何通过AI编程工具缩短开发周期、提升ROI?”“企业部署AI编程工具,如何兼顾安全合规、代码质量与开发效率&#xff0c…...

工业视觉开发的基石:GenICam 简介

在工业自动化和机器视觉领域,“碎片化”曾是开发者面临的最大痛点。不同品牌的相机使用不同的通信协议、参数定义和 SDK。为了获取一张图像或调节曝光时间,开发者往往需要学习多个厂商的驱动接口。而 GenICam (Generic Interface for Cameras) 标准的出现…...

AI答案优化效果可以靠哪些第三方数据验证?

先给结论:AI答案优化效果要做三层交叉验证AI 答案优化、GEO 服务的效果,不应只听服务商自述,也不适合只靠单张 AI 回答截图判断。更稳妥的做法,是用三层数据交叉验证:AI回答层数据:看品牌是否被提及、位置是…...

AI Agent在仓储分拣中的真实效能验证(2023-2024全国12家仓配中心压测报告首次公开)

更多请点击: https://intelliparadigm.com 第一章:AI Agent物流行业应用 AI Agent正深度重构物流行业的决策、执行与协同范式。区别于传统规则引擎或单一预测模型,AI Agent具备感知环境、自主规划、多步推理与动态反馈能力,可嵌入…...

Lindy流程冷启动死亡陷阱(97%新手踩中的第3个环节):实时检测+自动回滚机制详解

更多请点击: https://kaifayun.com 第一章:Lindy流程冷启动死亡陷阱的底层认知 Lindy效应在软件工程中并非仅适用于“越老越可靠”的技术寿命预测,它更深层地揭示了一种反直觉的系统演化规律:一个尚未被时间验证的流程&#xff0…...

Lindy流程自动化效果衰减真相:3年追踪数据显示,未做持续治理的企业6个月后效率回落至基线112%

更多请点击: https://codechina.net 第一章:Lindy流程自动化效果衰减真相:3年追踪数据显示,未做持续治理的企业6个月后效率回落至基线112% Lindy效应在流程自动化领域呈现显著反向特征:系统上线初期的效率跃升并非稳态…...

【行业首发】Midjourney v6.2水动力学渲染白皮书:基于流体物理模型的prompt工程重构(附NASA水波频谱对照表)

更多请点击: https://codechina.net 第一章:【行业首发】Midjourney v6.2水动力学渲染白皮书:基于流体物理模型的prompt工程重构(附NASA水波频谱对照表) Midjourney v6.2首次引入隐式流体物理引擎(Implici…...

Taotoken 的 Token Plan 套餐如何帮助我们预测并锁定开发成本

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken 的 Token Plan 套餐如何帮助我们预测并锁定开发成本 作为项目管理者,确保研发预算的可预测性是保障项目平稳推…...

Anthropic 万亿估值启示录:战略聚焦如何击败全面扩张

【摘要】深入分析 Anthropic 从初创到估值破万亿的爆发式增长路径,揭示其在 AI 行业后来居上的核心密码。从战略聚焦与组织文化两个维度,拆解技术路线选择、人才管理、治理结构等关键决策,为 AI 时代的技术团队与企业管理者提供可借鉴的实践框…...

在微服务架构中集成Taotoken实现智能客服路由与成本控制

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在微服务架构中集成Taotoken实现智能客服路由与成本控制 1. 场景与挑战 在电商这类业务场景中,智能客服能力通常被拆分…...

论文写到一半卡壳了?师兄推荐这几个AI写作辅助软件

写论文最怕的就是卡壳,尤其是当思路混乱、资料繁杂、格式要求又高时,很容易陷入停滞。其实,论文写作的关键不在于苦熬,而在于用对工具、走对流程——不少资深教授都建议学生提前布局,借助 AI 工具提升效率。比如千笔AI…...

如何快速清理Windows右键菜单:终极管理工具完整指南

如何快速清理Windows右键菜单:终极管理工具完整指南 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 你是不是也遇到过这样的烦恼?安装的软…...

2026跨境实测|主流国产AI视频生成工具图生视频功能深度测评

在TikTok、Shopee、亚马逊短视频带货常态化的2026年,跨境商家的核心痛点早已不是不会拍视频,而是量产难、成本高、画面违和、适配海外场景差。传统真人拍摄、外包剪辑模式,不仅耗时耗力,还难以跟上跨境平台的流量更新节奏。而AI视…...

华实展厅出圈!大自然标识匠心打造,目视化呈现基建巨头的实力底气

当建筑的厚重与视觉的美感碰撞,当企业的成长与科技的便捷融合,华实建设集团企业展厅——由专业的长沙市大自然标识设计制作公司倾力打造,不仅是品牌形象的“窗口”,更是实力与文化的“立体名片”。长沙市大自然标识设计制作有限公…...

2025年AI数字人行业现状:全国超99万家企业涌入,真正能落地的不到一成

当生成式AI的浪潮席卷各行各业,AI数字人成为最先跑出商业化落地速度的细分赛道。然而,在全国超99万家相关企业蜂拥而入的热闹背后,一个残酷的现实正在显现:绝大多数所谓的"AI数字人"不过是披着科技外衣的"会动的照…...

FactoryBluePrints:戴森球计划终极蓝图仓库,5步打造高效自动化工厂

FactoryBluePrints:戴森球计划终极蓝图仓库,5步打造高效自动化工厂 【免费下载链接】FactoryBluePrints 游戏戴森球计划的**工厂**蓝图仓库 项目地址: https://gitcode.com/GitHub_Trending/fa/FactoryBluePrints 你是否曾在戴森球计划中花费数小…...

3分钟搞定Windows 11系统优化:Win11Debloat开源工具完整指南

3分钟搞定Windows 11系统优化:Win11Debloat开源工具完整指南 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter …...

抖音小店搜索排名规则及优化方法

一、抖音商城搜索排名规则1.商品相关性:商品标题、关键词与用户搜索词的匹配程度是重要因素。精准匹配的商品会在搜索结果中更靠前展示。例如,用户搜索"夏季连衣裙”,标题中明确包含该关键词且商品属性也相符的连衣裙,会优先被展示。商品…...

观测 TaoToken 在多模型间自动路由的稳定性与响应速度

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 观测 TaoToken 在多模型间自动路由的稳定性与响应速度 在构建依赖大模型能力的应用时,服务的稳定性和响应速度是开发者…...

将Taotoken作为统一网关整合到企业现有微服务架构中的设计考量

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 将Taotoken作为统一网关整合到企业现有微服务架构中的设计考量 当企业内部多个业务线或团队开始独立探索和应用大模型能力时&#…...

3步快速搭建微信小程序商城:巴爷商城开源项目实战指南

3步快速搭建微信小程序商城:巴爷商城开源项目实战指南 【免费下载链接】wechat_mall_applet A real mall wechat applet 项目地址: https://gitcode.com/gh_mirrors/we/wechat_mall_applet 还在为开发微信小程序商城而烦恼吗?🤔 今天我…...

使用OpenClaw连接Taotoken配置Agent工作流的具体步骤

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 使用OpenClaw连接Taotoken配置Agent工作流的具体步骤 OpenClaw是一款流行的AI Agent开发框架,它允许开发者构建和运行能…...

通过Taotoken Token Plan套餐降低长期项目成本的观察

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过Taotoken Token Plan套餐降低长期项目成本的观察 对于需要长期、稳定调用大模型API的项目而言,成本的可预测性和可…...

美容顾问转型AI训练师:2024紧缺新职业认证路径(含国家人社部备案课程编号)

更多请点击: https://kaifayun.com 第一章:AI Agent美容行业应用概述 AI Agent正以前所未有的深度融入美容行业,从智能肤质分析、个性化护肤方案生成,到虚拟试妆、客户行为预测与自动化私域运营,其核心价值在于将非结…...

Claude ROI计算模型:3步完成TCO建模→价值映射→敏感性压测,附金融/医疗/制造三大行业参数包

更多请点击: https://kaifayun.com 第一章:Claude ROI计算模型:3步完成TCO建模→价值映射→敏感性压测,附金融/医疗/制造三大行业参数包 Claude ROI计算模型专为AI代理落地设计,将传统IT投资回报分析升级为可量化、可…...

文档即代码?Claude API文档自动化生成全链路拆解,5步接入CI/CD流水线

更多请点击: https://codechina.net 第一章:文档即代码:Claude API文档自动化生成的核心范式 将API文档视为可版本化、可测试、可部署的一等公民,是现代AI服务工程化的关键跃迁。Claude API的文档不再由人工撰写后静态发布&#…...