RelayAttention:让大型语言模型更高效地处理长提示符

news/2024/4/28 22:52:39/文章来源:https://blog.csdn.net/FrenzyTechAI/article/details/137042632

一、前言

虽然大型语言模型 (LLM) 近年来取得了非常显著的进展,也在各种自然语言处理任务中展现出强大的能力。然而,LLM 的在实际的应用落地层面也面临着一些实际挑战,其中之一就是效率和成本问题,导致了在垂直行业实际落地的应用非常少。因为现有的 LLM 通常需要大量的计算资源和内存,这限制了它们在实际应用中的部署。

特别是在处理长文本输入时,LLM 的效率问题尤为突出。这是因为 LLM 需要存储和处理大量的中间结果,而长文本输入会导致中间结果的数量急剧增加。为了解决这个问题,研究人员提出了各种方法来提高 LLM 的效率,例如模型压缩、剪枝和量化等。

最近,由香港城市大学朱磊和商汤研究院联合发布的研究论文《RelayAttention for Efficient Large Language Model Serving with Long System Prompts》中提到 RelayAttention 是一种新的注意力机制,可以有效地提高 LLM 处理长文本输入的效率。RelayAttention 通过减少内存访问冗余来实现这一点,它允许 LLM 在处理一批输入词时仅从内存中读取一次隐藏状态,而不是多次读取。这可以显著减少 LLM 的计算量和内存占用,从而提高其效率。

从上图中的测试结果对比,可以看到 RelayAttention 将 LLM 的吞吐量提高了 75%。这意味着使用 RelayAttention 的 LLM 可以在相同的时间内处理比使用传统注意力机制的 LLM 多 75% 的请求。

1、延迟与系统提示长度: 左侧图表显示了不同注意力机制的延迟随系统提示长度的增加而变化的情况。RelayAttention(蓝色条形图)在所有提示长度中都具有最低的延迟,对于最长的提示长度,它比 PagedAttention(橙色条形图)快 7 倍。这是因为 RelayAttention 可以从 DRAM 中读取隐藏状态一次,用于一批输入词,而 PagedAttention 需要多次读取它们。

2、吞吐量: 右侧图表显示了不同 LLM 配置的吞吐量随请求速率的增加而变化的情况。vLLM-RA(ours)(蓝线)在所有请求速率中都具有最高的吞吐量,对于最高的请求速率,它比 vLLM-PS(橙线)高 75%。这是因为 RelayAttention 每秒可以处理比 PagedAttention 更多的词,因为它的延迟更低。

二、RelayAttention 解决了什么问题?

在实际应用中,大型语言模型 (LLM) 需要高效地处理大量请求,尤其是当这些请求包含用于引导模型响应的冗长系统提示符时。然而,长提示符会增加计算量,并随着序列长度的增加而导致生成新词的成本不断提高,最终造成模型吞吐量和延迟的瓶颈。RelayAttention 旨在就是为了解决这一问题,在不影响生成质量的前提下,提高 LLM 在处理长系统提示符时的效率。

RelayAttention 的主要优势在于它能够减少内存访问冗余。传统的注意力机制需要将隐藏状态从片外 DRAM 传输到片上 SRAM 多次,才能处理每个请求。而 RelayAttention 只需要将隐藏状态从 DRAM 中读取一次,就可以处理一批输入词。这可以显著减少 LLM 的计算量和内存占用,从而提高其效率。

RelayAttention 的另一个优势是它不需要对模型进行重新训练。这意味着它可以很容易地集成到现有的 LLM 中,而无需更改模型本身。

RelayAttention 可以大幅提高 LLM 的吞吐量,因为它可以降低注意力计算的延迟。这意味着 LLM 可以更快地处理每个请求,从而在相同的时间内处理更多的请求。

三、RelayAttention 如何解决问题?

RelayAttention 是一种创新的注意力算法,它针对现有因果注意力算法在处理系统提示符时内存使用效率低下的问题进行了优化。现有的算法需要反复访问内存,将缓存的隐藏状态从片外 DRAM 传输到片上 SRAM,而 RelayAttention 允许这些隐藏状态仅从 DRAM 中读取一次,并用于处理一批输入词。这种对内存访问冗余的减少不仅提高了效率,同时也保证了生成质量。RelayAttention 的另一个优点是简单易用,它基于对因果注意力机制的数学公式的重新构造,无需对模型进行重新训练

四、RelayAttention 的实际应用情况

研究人员在 ShareGPT 和 MMLU 数据集以及三种不同的 GPU 上测试了 RelayAttention 的性能。他们使用了 vLLM 的三种不同版本,vLLM 是一个专门为高吞吐量 LLM 服务设计的流行开源库。

其中两种配置使用了 PagedAttentionPromptCaching 技术,而第三种配置使用了 RelayAttention。研究人员还发布了将 RelayAttention 与 vLLM 一起使用的代码,方便其他研究人员进行测试和应用。

测试结果表明将 RelayAttention 集成到 vLLM 中,可以将 Llama2-7B 模型在聊天机器人工作负载中的可持续请求率提高 2.2 倍,吞吐量提高 2 倍。研究人员还观察到,其他几种流行的 LLM 也取得了类似的效率提升。

值得注意的是,随着系统提示符长度的增加,RelayAttention 带来的效率提升也更加明显。更重要的是,即使提示符的长度持续增加,RelayAttention 也能够保持其吞吐量,这对于能够支持跨越数十万个词的上下文的新模型来说特别有用。

RelayAttention 特别适用于批量推理,因为批量大小越大,RelayAttention 的效率就越高。但是,当只有一个请求时,例如在设备上运行 LLM 时,RelayAttention 就没有明显的优势。因此,RelayAttention 更适合云服务场景。

随着 LLM 被部署在不同的环境和设备中,研究人员正在寻找新的方法来提高它们的运行速度和降低内存占用。RelayAttention 是优化 LLM 推理的几种技术之一。最近,苹果公司推出了“LLM in a flash”技术,可以减少 LLM 在笔记本电脑和智能手机等边缘设备上的内存占用量。苏黎世联邦理工学院的研究人员也提出了一种新的方法,可以通过重新排列 Transformer 架构来消除不必要的计算,并将推理速度提高高达 300 倍。

五、RelayAttention 的未来发展?

RelayAttention 的出现为 LLM 的运行效率带来了显著提升,特别是在处理系统密集型任务方面。由于它可以无需修改模型本身即可集成,因此有望被 LLM 服务快速采用并得到广泛应用。此外,RelayAttention 的代码已经公开[2],LLM 社区可以对其进行进一步测试和优化,推动其发展和应用。

六、References

[1]. Lei Zhu, Xinjiang Wang, Wayne Zhang, Rynson W.H. Lau, R. (2024). RelayAttention for Efficient Large Language Model Serving with Long System Prompts: https://github.com/rayleizhu/vllm-ra

[2]. vLLM with RelayAttention integration, A vLLM fork with RelayAttention implemented: https://github.com/rayleizhu/vllm-ra

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_1028050.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CE-Net:用于2D医学图像分割的上下文编码器网络

CE-Net:用于2D医学图像分割的上下文编码器网络 摘要引言方法 【2019】CE-NetContext Encoder Network for 2D Medical Image Segmentation 摘要 医学图像分割是医学图像分析中的重要步骤。随着卷积神经网络在图像处理中的快速发展,深度学习已经被用于医…

服务器被攻击有什么表现?

引言 在现今高度互联的网络环境中,服务器安全已成为每个企业和个人站长不容忽视的重要议题。服务器作为承载关键业务和数据的核心设施,一旦遭受攻击,不仅可能导致服务中断、数据泄露,还可能带来严重的经济损失和声誉损害。本文旨…

【二叉树】Leetcode 98. 验证二叉搜索树【中等】

验证二叉搜索树 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 示例1&a…

fpga 通过axi master读写PS侧DDR的仿真和上板测试

FPGA和ARM数据交互是ZYNQ系统中非常重要的内容。PS提供了供FPGA读写的AXI-HP接口用于两者的高速通信和数据交互。一般的,我们会采用AXI DMA的方式去传输数据,DMA代码基本是是C编写,对于FPGA开发者来说不利于维护和debug。本文提供一种手写AXI…

6、鸿蒙学习-Stage模型应用程序包结构

基于Stage模型开发的应用,经编译打包后,其应用程序的结构如下图应用程序包结构(Stage模型)所示。开发者需要熟悉应用程序包结构相关的基本概念。 一、在开发态,一个应用包含一个或者多个Module,可以在DevE…

“免密支付”出事了?看看背后的安全隐患

#免密支付# 的安全问题近日冲上热搜,大家来看看怎么一回事。 “我不知道什么时候开通的‘免密支付’功能,直到手机频繁收到账单提醒,才发现平台账号被盗,对方通过‘免密支付’消费了5000多元。这种事关会员安全的操作提示应该设置…

机器学习概论—增强学习

机器学习概论—增强学习 强化学习(Reinforcement Learning, RL)或者说是增强学习,是机器学习的一个领域,旨在使智能体通过与环境的交互学习如何做出决策,它是关于在特定情况下采取适当的行动来最大化奖励。它被各种软件和机器用来寻找在特定情况下应采取的最佳行为或路径…

无忧微服务:如何实现大流量下新版本的发布自由

作者:项良、十眠 微服务上云门槛降低,用好微服务才是关键 据调研数据显示,约 70% 的生产故障是由变更引起的。在阿里云上的企业应用如茶百道、极氪汽车和来电等,他们是如何解决变更引起的稳定性风险,实现了在白天高流…

etf期权开户有哪些基本条件,期权的佣金最低多少?

在中国开设etf期权账户,投资者需要满足一系列的基本条件。首先,投资者的证券账户日均客户权益不得低于50万元人民币,且需有6个月以上的证券或期货交易经验。此外,投资者还必须通过相关的测试,并具备被认可的期权模拟交…

wpf程序调用macad的c++编写的dll

1.把macad里的build,source文件夹复制到一个文件夹里 2.创建一个wpf项目,在解决方案里添加macad.occt项目 3.把macad.occt设为dll文件,修改平台工具集,在macadtest里引用macad.occt 4.运行,应该会报错,说找…

深度学习每周学习总结P3(天气识别)

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制 数据链接 提取码:o3ix 目录 0. 总结1. 数据导入部分数据导入部分代码详解:a. 数据读取部分a.1 提问:关…

30-3 越权漏洞 - 水平越权(横向越权)

环境准备:构建完善的安全渗透测试环境:推荐工具、资源和下载链接_渗透测试靶机下载-CSDN博客 一、定义 攻击者可以访问和操作与其拥有同级权限的用户资源。 示例: 学生A在教务系统上正常只能修改自己的作业内容,但由于不合理的权限校验规则等原因,学生A可以修改学生B的内…

【CDA二级数据分析备考思维导图】

CDA二级数据分析备考思维导图 CDA二级复习备考资料共计七个章节,如需资料,请留言,概览如下图:一、数据采集与处理1.数据采集方法2.市场调研和数据录入3、数据探索与可视化4、数据预处理方法 总结:以上为自己学习数据分…

修改 RabbitMQ 默认超时时间

MQ客户端正常运行,突然就报连接错误, 错误信息写的很明确,是客户端连接超时。 不过很疑虑,为什么会出现连接超时呢?代码没动过,网络也ok,也设置了心跳和重连机制。 最终在官网中找到了答案&am…

展示大屏-24小时天气预报

一、项目说明 展示大屏显示未来一周天气和24小时天气详情。 二、技术工具 1.语言&框架:java、springboot 2.UI界面:jQuery、HTML、CSS、 VUE 3.开发工具:IntelliJ IDEA、Eclipse 三、实现步骤 后端步骤 1.调取免费或收费的API接口。 …

CSGO赛事管理系统的设计与实现|Springboot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)

本项目包含可运行源码数据库LW,文末可获取本项目的所有资料。 推荐阅读100套最新项目持续更新中..... 2024年计算机毕业论文(设计)学生选题参考合集推荐收藏(包含Springboot、jsp、ssmvue等技术项目合集) 目录 1. 系…

harmonyos:显示图片(Image)

开发者经常需要在应用中显示一些图片,例如:按钮中的icon、网络图片、本地图片等。在应用中显示图片需要使用Image组件实现,Image支持多种图片格式,包括png、jpg、bmp、svg和gif,具体用法请参考Image组件。 Image通过调…

路由的完整使用

多页面和单页面 多页面是指超链接等跳转到另一个HTML文件,单页面是仍是这个文件只是路由改变了页面的一部分结构. 路由的基本使用 使用vue2,则配套的路由需要是第3版. 1)下载vue-router插件 2)引入导出函数 3)new 创建路由对象 4)当写到vue的router后只能写路由对象,因此只…

快麦ERP中采购单在旺店通中同步退货

什么是快麦ERP 快麦ERP作为专业的电商ERP系统软件,为所有的商家提供涵盖订单、库存、分销、采购、财务、员工绩效等一体化的电商ERP解决方案。通过仓储数字化升级和库存精准化管理,帮助商家有更高效的工作体系,以数字赋能大卖家实现降本增效…

探索数据库--------------mysql主从复制和读写分离

目录 前言 为什么要主从复制? 主从复制谁复制谁? 数据放在什么地方? 一、mysql支持的复制类型 1.1STATEMENT:基于语句的复制 1.2ROW:基于行的复制 1.3MIXED:混合类型的复制 二、主从复制的工作过程 三个重…