AI导航

分组查询注意力是什么?大模型用分组共享键值省显存

AI百科
2 min read
0 次阅读

分组查询注意力(Grouped Query Attention,GQA)是大模型注意力机制的一种变体:它把多个查询头分成若干组,每组共用同一对键和值,只保留各自的查询。2023年,Ainslie等人在论文中把它作为多查询注意力的推广提出,目的是在推理时少存、少搬键值缓存,换取更低的显存占用和更快的生成速度,同时尽量保住多头注意力的表达能力。

分组查询注意力是怎么省下显存的?

大模型逐词生成时,会把前面每个词元的键和值存进KV缓存,下一步直接复用,不必重算。多头注意力给每个查询头各配一对键值头,缓存随查询头数增长;分组查询注意力只给每组配一对,缓存大小跟着键值头数走。32个查询头分成8组、只用8个键值头时,缓存大约是原来的四分之一。查询头仍各算各的注意力权重,只是共用同一组键值去比对、取值,分组越少省得越多,表达空间也越受挤压。

方式 键值头 缓存
多头注意力 与查询头一样多 最大
分组查询注意力 按组共享,介于两者之间 居中
多查询注意力 只有1个 最小

分组查询注意力容易被误解成什么?

它不是训练后的压缩手段,也不是量化或剪枝:分组方式在模型结构里就定好了,训练时就按分组共享键值学习;已有模型也可合并键值头、继续训练一小段时间转成分组形式,论文称只需原预训练约5%的算力。它也不等于压缩缓存:多头潜在注意力是把键值压成低维潜向量再还原,省的是每个头的存量;分组查询注意力省的是头的个数,两条路可以并存,但不能互相替代。更不能指望它延长上下文窗口、减少幻觉或提升推理能力,窗口由训练和位置编码决定,答案质量仍取决于模型本身,它只是在相近质量下让推理更省。

什么时候值得看重分组查询注意力?

长上下文、大批量并发、对显存敏感的部署最受益:缓存随上下文和并发数放大,分组省下的显存会直接变成能接的请求数或能跑的上下文。短对话、单用户、小模型上,省下的量有限,不必为它换模型。选模型时别只看参数量,看配置里的查询头数与键值头数:键值头明显少于查询头,就是用了分组或多查询思路;两者相等,一般仍是标准多头注意力。Llama 3的8B版本用32个查询头配8个键值头,是常见的分组实例。

推荐工具

NVIDIA Chat with RTX AI聊天 Chat with RTX 是 NVIDIA 面向 RTX 电脑的本地 AI 聊天工具,可围绕本地文档和视频资料做问答,适合重视隐私、离线检索并具备硬件条件的用户更适合资料不便上传云 HuggingChat AI聊天 HuggingChat 是 Hugging Face 的开源模型聊天应用,支持 Omni 自动选模型,也可手动选社区开放模型对话。它适合体验开源模型、技术探索和问答,结果可能不稳定,重要内容需复核。 纳米AI搜索 AI搜索 纳米AI 是 360 旗下 AI 搜索和智能体入口,支持文字、语音、拍照提问、多模型协作与内容创作,适合中文用户做日常搜索、学习问答、移动查询、热点追踪、生活决策、知识整理和轻量创作。 Qwen Chat(通义千问) AI聊天 Qwen Chat 是Qwen 大模型聊天助手,支持Qwen 模型聊天、写作和编程问答,适合中文用户和开发者完成 AI 对话、资料问答和任务协作,适合上线前核对权限、成本和资料质量。 DuckDuckGo AI Chat AI聊天 DuckDuckGo AI Chat 适合重视隐私的普通用户使用,围绕隐私 AI 聊天、免账户使用和多模型问答提供对话式 AI 支持和任务协作能力,适合上线前核对权限、成本和资料质量。 Goody-2 AI聊天 Goody-2 是以极端安全和伦理对齐为特色的 AI 聊天助手,常用于观察模型拒答边界、内容安全策略、保守输出体验和 AI 风险讨论,更适合作为安全边界样本使用前应理解它偏实验性质,不适合。