重庆黄页网站,网站的建设费用预算,做网站的公司需要哪些资质,wordpress模板下载LLM推理优化技术综述#xff1a;KVCache、PageAttention、FlashAttention、MQA、GQA
随着大模型被越来越多的应用到不同的领域#xff0c;随之而来的问题是应用过程中的推理优化问题#xff0c;针对LLM推理性能优化有一些新的方向#xff0c;最近一直在学习和研究#xf…LLM推理优化技术综述KVCache、PageAttention、FlashAttention、MQA、GQA
随着大模型被越来越多的应用到不同的领域随之而来的问题是应用过程中的推理优化问题针对LLM推理性能优化有一些新的方向最近一直在学习和研究今天简单总结下学习笔记。
PART01自回归场景引发的KVCache问题
首先LLM推理的过程是一个自回归的过程也就是说前i次的token会作为第i1次的预测数据送入模型拿到第i1次的推理token。在这个过程中Transformer会执行自注意力操作为此需要给当前序列中的每个项目无论是prompt/context还是生成的token提取键值kv向量。这些向量存储在一个矩阵中通常被称为kv cache。kv cache是为了避免每次采样token时重新计算键值向量。利用预先计算好的k值和v值可以节省大量计算时间尽管这会占用一定的存储空间。 所以未来LLM推理优化的方案就比较清晰了就是尽可能的减少推理过程中kv键值对的重复计算实现kv cache的优化。目前减少KV cache的手段有许多比如page attention、MQA、MGA等另外flash attention可以通过硬件内存使用的优化提升推理性能。
PART02PageAttention显存优化
PageAttention是目前kv cache优化的重要技术手段目前最炙手可热的大模型推理加速项目VLLM的核心就是PageAttention技术。在缓存中这些 KV cache 都很大并且大小是动态变化的难以预测。已有的系统中由于显存碎片和过度预留浪费了60%-80%的显存。PageAttention提供了一种技术手段解决显存碎片化的问题从而可以减少显存占用提高KV cache可使用的显存空间提升推理性能。
首先PageAttention命名的灵感来自OS系统中虚拟内存和分页的思想。可以实现在不连续的空间存储连续的kv键值。 另外因为所有键值都是分布存储的需要通过分页管理彼此的关系。序列的连续逻辑块通过 block table 映射到非连续物理块。 另外同一个prompt生成多个输出序列可以共享计算过程中的attention键值实现copy-on-write机制即只有需要修改的时候才会复制从而大大降低显存占用。 PART03MHA\GQA\MQA优化技术
接下来是GQA和MQA优化技术在LLAMA2的论文中提到了相关技术用来做推理优化目前GQA和MQA也是许多大模型推理研究机构核心探索的方向。
MQA全称 Multi Query Attention, 而 GQA 则是前段时间 Google 提出的 MQA 变种全称 Group-Query Attention。MHAMulti-head Attention是标准的多头注意力机制h个Query、Key 和 Value 矩阵。MQA 让所有的头之间共享同一份 Key 和 Value 矩阵每个头只单独保留了一份 Query 参数从而大大减少 Key 和 Value 矩阵的参数量。GQA将查询头分成N组每个组共享一个Key 和 Value 矩阵。 如上图GQA以及MQA都可以实现一定程度的Key value的共享从而可以使模型体积减小GQA是MQA和MHA的折中方案。这两种技术的加速原理是1减少了数据的读取2减少了推理过程中的KV Cache。需要注意的是GQA和MQA需要在模型训练的时候开启按照相应的模式生成模型。
PART04FlashAttention优化技术
最后讲下Flash attention优化技术Flash attention推理加速技术是利用GPU硬件非均匀的存储器层次结构实现内存节省和推理加速它的论文标题是“FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness”。意思是通过合理的应用GPU显存实现IO的优化从而提升资源利用率提高性能。 首先我们要了解一个硬件机制计算速度越快的硬件往往越昂贵且体积越小Flash attention的核心原理是尽可能地合理应用SRAM内存计算资源。
A100 GPU有40-80GB的高带宽内存(HBM)带宽为1.5-2.0 TB/s而每108个流处理器有192KB的SRAM带宽估计在19TB/s左右。也就是说存在一种优化方案是利用SRAM远快于HBM的性能优势将密集计算尽放在SRAM减少与HBM的反复通信实现整体的IO效率最大化。比如可以将矩阵计算过程softmax函数尽可能在SRAM中处理并保留中间结果全部计算完成后再写回HBM这样就可以减少HBM的写入写出频次从而提升整体的计算性能。如何有效分割矩阵的计算过程涉及到flash attention的核心计算逻辑Tiling算法这部分在论文中也有详细的介绍。
以上是对于最近LLM模型推理优化方面新的一些技术点的学习和概况总结感激引用的文章作者这方面还有很多内容需要总结和进一步消化。
引用
[1]大模型推理加速工具vLLM - 知乎
[2]百度安全验证
[3]vLLM大模型推理加速方案原理PagedAttention
[4]为什么现在大家都在用 MQA 和 GQA - 知乎
[5]百度安全验证
[6]https://zhuanlan.zhihu.com/p/645376942