大模型Transformer笔记:KV缓存

1 MHA(M ulti-H ead Attention)

  • 最经典的多头注意力
    • 等价于多个独立的单头注意力的拼接
  • 对于LLM来说,一般都是自回归地一个一个token的输出,也就相当于只有Transformer的decoder input在变化,之前作为prompt部分的是不变,可以缓存的(KV cache)
    • KV cache的减少可以让我们有更长的context prompt,更快的推理速度,更低的推理成本

2 MQA(M ulti-Q uery Attention)

Fast Transformer Decoding: One Write-Head is All You Need 2019

PaLM 6、StarCoder 7、Gemini 8

  • 所有注意力头共享同一套K,V
    • ------>KV 缓存减少到1/h
    • KV参数的减少可以到FFN/GLU规模的增大来弥补

3 GQA(G rouped-Q uery Attention)

GQA: Training Generalized Multi-Query Transformer Models from Multi-Head Checkpoints emnlp 2023

所有 Head 分为 g个组( g可以整除 head数量 h)

LLAMA2-70B , LLAMA3

参考内容:缓存与效果的极限拉扯:从MHA、MQA、GQA到MLA

相关推荐
高洁011 小时前
智能体的“记忆”难题
python·深度学习·机器学习·transformer
老当益壮梁奶奶1 小时前
Linux软件编程学习笔记(二)Linux文件IO编程入门:从fopen到fgetc
linux·c语言·c++·笔记·学习
sunoo-2291 小时前
C 语言文件 IO 全攻略:从基础函数到实战踩坑(BMP 读取 + 词典查询)
linux·c语言·前端·笔记·vscode·学习
蒸蒸yyyyzwd2 小时前
cpp选手秋招学习笔记 day12
笔记·学习·oracle
Wang's Blog2 小时前
PostgreSQL笔记38:慢查询定位与优化的系统方法论
数据库·笔记·postgresql
XiaQ09192 小时前
Linux 常用命令学习笔记(用户管理篇):用户、组与权限的钥匙
linux·开发语言·笔记·学习
He BianGu2 小时前
【笔记】使用Assembly.LoadFrom和AssemblyLoadContext加载插件对比,以及有没有更合适的加载插件方案
笔记
hhwyqwqhhwy2 小时前
正点原子-ZYNQ7020 开发笔记
笔记
LuminousCPP2 小时前
栈和队列专题(四):LeetCode 232. 用栈实现队列|双栈分工 + 按需迁移 + 摊还 O(1)
c语言·数据结构·笔记·算法·leetcode
GGMM7892 小时前
富士 EP‑3957E‑C4 电源驱动板维修实战笔记
笔记·变频器·变频器维修