把注意力计算丢给CPU,大模型解码吞吐量提高1.76~4.99倍
时间:2025-01-09 14:48:09 354浏览 收藏
科技周边不知道大家是否熟悉?今天我将给大家介绍《把注意力计算丢给CPU,大模型解码吞吐量提高1.76~4.99倍》,这篇文章主要会讲到等等知识点,如果你在看完本篇文章后,有更好的建议或者发现哪里有问题,希望大家都能积极评论指出,谢谢!希望我们能一起加油进步!
利用CPU和GPU协同计算,显著提升大语言模型推理效率!来自CMU、华盛顿大学和Meta AI的研究人员提出了一种名为MagicPIG的新方法,它巧妙地利用CPU上的局部敏感哈希(LSH)技术,有效缓解了GPU内存容量限制,从而大幅提升大语言模型(LLM)的推理速度和准确性。
与仅依赖GPU的注意力机制相比,MagicPIG在解码吞吐量方面实现了1.76到4.99倍的提升,并在多个下游任务中取得了优于现有技术(例如Quest)的准确率。
这项研究的主要贡献在于:
-
突破性精度提升: 不同于其他稀疏注意力机制,MagicPIG基于采样和估计而非搜索,从而在保证推理质量的前提下,显著提高效率。
-
高效异构计算: 将解码阶段的注意力计算和哈希表操作卸载到CPU,充分利用异构计算架构,提高吞吐量并降低模型部署成本。
GPU内存瓶颈:KV缓存的挑战
在LLM推理中,KV缓存是主要的性能瓶颈。 KV缓存存储中间注意力键值对,避免重复计算。然而,其内存占用随着批量大小和序列长度线性增长,严重限制了GPU的批量处理能力,导致GPU利用率低下。例如,在NVIDIA A100-40GB GPU上处理Llama-3.1-8B模型(上下文长度128k)时,只能处理单个请求,且近一半的解码时间都耗费在KV缓存访问上。多样性生成和长链式推理等技术进一步加剧了这一问题。
TopK注意力机制的局限性
注意力机制本身具有稀疏性,因此动态稀疏注意力和TopK近似方法被广泛研究。但这些方法通常会造成精度下降。现有技术如Quest、H2O和Loki主要通过选择注意力得分最高的键值对来提高效率,但这种基于TopK的近似方法存在偏差,缺乏理论保障,尤其在高精度要求的任务(如聚合任务、常用词提取、高频词提取和逻辑推理)中表现不佳。
下图显示了TopK注意力机制的估计误差和性能下降:
研究人员通过观察发现,TopK方法的失效与以下现象有关:
- 首个输入token的隐藏状态几乎不随输入变化。
- 键状态的中心方向在不同输入句子中保持稳定。
- 键状态的中心与汇聚点token的键状态几乎相反。
下图展示了这些观察结果:
MagicPIG:基于采样的注意力估计
为了解决TopK方法的局限性,MagicPIG提出了一种基于采样的注意力估计方法。 该方法将问题视为偏差校正问题,利用局部敏感哈希(LSH)技术生成采样概率,并通过重要性采样来估计注意力输出。 与TopK方法相比,这种基于采样的方法显著降低了估计误差。
下图对比了基于采样的方法和TopK方法的估计误差:
系统设计:CPU-GPU协同工作
MagicPIG将注意力计算和哈希表操作卸载到CPU,充分利用CPU的内存优势。 研究人员发现,通过采样技术降低内存访问量,可以有效弥补CPU内存带宽低于GPU的不足。 系统将LLM解码分为四个部分:参数计算(GPU)、注意力计算(CPU)、随机投影(GPU)和检索(CPU)。
下图展示了MagicPIG的系统架构:
实验结果
实验结果表明,MagicPIG在长文本RULER任务中取得了比Quest更高的准确率,并且在推理速度和吞吐量方面有显著提升。
下图展示了MagicPIG在长文本RULER任务中的准确率:
下图展示了MagicPIG的吞吐量提升:
总结:MagicPIG 通过巧妙地结合采样技术和异构计算,为高效的LLM推理提供了一种新的思路,有望降低LLM的部署成本并推动其更广泛的应用。
到这里,我们也就讲完了《把注意力计算丢给CPU,大模型解码吞吐量提高1.76~4.99倍》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于magicpig,局部敏感哈希,lsh采样的知识点!
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
348 收藏
-
377 收藏
-
180 收藏
-
482 收藏
-
248 收藏
-
337 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 507次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 484次学习