其他
KubeAI大模型推理加速实践|得物技术
目录
一、背景
二、大模型发展面临的挑战
三、大模型推理加速的优化方向
1. Llama2的模型结构
2. 大模型推理的加速方向有哪些
四、FlashAttention-Attention算子计算优化
五、PageAttention-显存管理优化
六、MOE-缩减推理时模型参数
七、Tensor parallelize-张量并行
八、推理框架推荐
九、总结与展望
一
背景
二
大模型发展面临的挑战
三
大模型推理加速的优化方向
Llama2的模型结构
用户向模型提交Prompt后,模型首先进行的操作是预测下一个字符(Token),并将预测出的字符添加到输入中继续进行预测。这个过程会一直持续,直到模型输出一个停止符号(STOP token),此时预测停止,模型输出最终结果。 在生成下一个字符(Token)的过程中,模型需要执行N次的Llama解码器层(Llama Decoder Layer)计算。具体来说,Llama-2-7B模型执行32次计算,而Llama-2-13B模型执行40次。 Llama解码器层(Llama Decoder Layer)中最关键的计算环节是注意力(Llama Attention)的计算。大部分推理时间都消耗在Attention的计算上,因此多种优化技巧都旨在提高Attention计算的效率。
大模型推理的加速方向有哪些
在整个推理过程中,最耗时的部分为注意力(Attention)计算。针对Attention的计算进行速度优化,可以显著提高整体推理性能。 注意力(Attention)计算过程中,键值对缓存(KV Cache)占用了大量显存资源。以13B模型为例,处理一个Prompt序列大约需要3GB额外显存,并且这部分显存会被频繁地分配和释放,产生大量碎片,如果能减少显存碎片,也能提升大模型的吞吐。 推理过程GPU需要处理和计算大量的参数。7B模型拥有70亿参数,而13B模型则包含130亿参数,最新全球最强大模型DBRX更是高达1300亿参数,这需要高效地处理这些参数。这里也可以有优化空间。
四
FlashAttention-Attention算子计算优化
五
PageAttention-显存管理优化
分割KV缓存:将每个请求的KV缓存划分为多个较小的块,这些块的大小是固定的,可以根据模型和硬件的具体需求进行调整。 非连续存储:与传统KV缓存块在内存中连续存储不同,PageAttention允许这些块在物理内存中非连续地分布。这样,就可以根据实际需要动态地分配和回收内存块,减少内存浪费。 动态管理:通过类似于操作系统中虚拟内存管理的方式,PageAttention动态地管理这些内存块。系统可以根据当前的内存使用情况,按需分配或释放KV缓存块,从而优化内存使用。 内存共享:PageAttention还支持在不同请求之间或同一个请求中的不同序列之间共享KV缓存块。这种共享是灵活的,可以基于块级别进行,进一步减少内存使用和提高效率。
六
MOE-缩减推理时模型参数
七
Tensor parallelize-张量并行
图片来自文章[13]
八
推理框架推荐
九
总结与展望
往期回顾
文 / linggong
关注得物技术,每周一、三、五更新技术干货
要是觉得文章对你有帮助的话,欢迎评论转发点赞~
未经得物技术许可严禁转载,否则依法追究法律责任。
“
扫码添加小助手微信
如有任何疑问,或想要了解更多技术资讯,请添加小助手微信:
线下活动推荐