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

news2024/12/26 0:40:10

一、前言

虽然大型语言模型 (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.coloradmin.cn/o/1547323.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网际协议 - IP

文章目录 目录 文章目录 前言 1 . 网际协议IP 1.1 网络层和数据链路层的关系 2. IP基础知识 2.1 什么是IP地址? 2.2 路由控制 3. IP地址基础知识 3.1 IP地址定义 3.2 IP地址组成 3.3 IP地址分类 3.4 子网掩码 IP地址分类导致浪费? 子网与子网掩码 3.5 CIDR与…

笔记本如何调节亮度?笔记本亮度调节方法

对于经常长时间面对笔记本电脑的小伙伴们来说,屏幕亮度过暗或者过亮,都会对眼睛造成伤害。那么,我们如何调节笔记本亮度至适中呢?下面为大家介绍3种简单的调节屏幕亮度的方法,一起来看看吧! 笔记本亮度调节方法一: 1、…

【MySQL】4.MySQL日志管理与数据库的备份和恢复

备份的目的只要是为了灾难恢复,备份还可以测试应用,回滚数据,修改和查询历史数据,审计等 日志在备份、恢复中起着重要作用 一、数据库备份的重要性 在生产环境中,数据的安全性至关重要 任何数据丢失都可能产生严重的…

关系型数据库mysql(7)sql高级语句

目录 一.MySQL常用查询 1.按关键字(字段)进行升降排序 按分数排序 (默认为升序) 按分数升序显示 按分数降序显示 根据条件进行排序(加上where) 根据多个字段进行排序 ​编辑 2.用或(or&…

centos 7 安装磐维(PanWeiDB)数据库(单机)

前置环境准备 文件系统环境要求 文件系统环境所要求的扇区必须为512bytes,查看方法如下: [rootdevops-core-highapp3-b-32 ~]#df -h /apps/ [rootdevops-core-highapp3-b-32 ~]#ll /dev/mapper/vg--docker-lvapp [rootdevops-core-highapp3-b-32 ~]#f…

Apache ActiveMQ OpenWire 协议反序列化命令执行漏洞分析 CVE-2023-46604

Apache ActiveMQ 是美国阿帕奇(Apache)软件基金会所研发的一套开源的消息中间件,它支持Java消息服务、集群、Spring Framework等。 OpenWire协议在ActiveMQ中被用于多语言客户端与服务端通信。在Apache ActiveMQ 5.18.2版本及以前&#xff0…

小程序富文本图片宽度自适应

解决这个问题 创建一个util.js文件,图片的最大宽度设置为100%就行了 function formatRichText(html) {let newContent html.replace(/\<img/gi, <img style"max-width:100%;height:auto;display:block;");return newContent; }module.exports {formatRichT…

2024-03-26 Android8.1 px30 WI-FI 模块rtl8821cu调试记录

一、kernel 驱动&#xff0c;我这里使用v5.8.1.2_35530.20191025_COEX20191014-4141这个版本&#xff0c;下载这个版本的驱动可以参考下面的文章。 2021-04-12 RK3288 Android7.1 USB wifi bluetooth 模块RTL8821CU 调试记录_rk平台rtl8821cu蓝牙调试-CSDN博客 二、Makefile文…

基于nodejs+vue考试信息报名系统python-flask-django-php

本文拟采用nodejs技术和express 搭建系统框架&#xff0c;后台使用MySQL数据库进行信息管理&#xff0c;设计开发的考试信息报名系统。通过调研和分析&#xff0c;系统拥有管理员、学生和教师三个角色&#xff0c;主要具备登录注册、个人信息修改、对系统首页、个人中心、学生管…

在项目中数据库如何优化?【MySQL主从复制(创建一个从节点复制备份数据)】【数据库读写分离ShardingJDBC(主库写,从库读)】

MySQL主从复制 MySQL主从复制介绍MySQL复制过程分成三步&#xff1a;1). MySQL master 将数据变更写入二进制日志( binary log)2). slave将master的binary log拷贝到它的中继日志&#xff08;relay log&#xff09;3). slave重做中继日志中的事件&#xff0c;将数据变更反映它自…

JS等比压缩图片方法

AI给出来的答案&#xff0c;AI真的能改变世界&#xff0c;以后程序员这个职业真的有可能不存在了。 function compressImage(image, callback) {// 创建一个 canvas 元素const canvas document.createElement(canvas);canvas.width 48;canvas.height 48;// 获取 canvas 的绘…

【学海拾贝】| 关于Python的 PEP 484规则了解:类型提示,函数注解

在实际的工厂在实际的工程代码的开发中&#xff0c;常常可以碰到这种情况 上网查了之后发现这是PEP484规则~ 文章目录 1 Type Hints for Variables&#xff08;变量在这里插入图片描述2 Function Annotations&#xff08;函数注解&#xff09;3 Type Checking Tools&#xff08…

【比特币】比特币的奥秘、禁令的深层逻辑与风云变幻

导语&#xff1a; 比特币(Bitcoin)&#xff0c;这个充满神秘色彩的数字货币&#xff0c;自诞生以来便成为各界瞩目的焦点。它背后所蕴含的Mining机制、禁令背后的深层逻辑以及市场的风云变幻&#xff0c;都让人欲罢不能。今天&#xff0c;我们将深入挖掘比特币的每一个角落&…

视觉图像处理与FPGA实现第七次作业——生成512深度、8位宽度的双端口存储器IP,并分析IP包资料构成

一、生成IP 打开Vivado&#xff0c;点击IP Catalog&#xff0c;搜索memory&#xff0c;双击对应IP核 调整参数为——512深度、8位宽度&#xff0c;双端口&#xff0c;然后一直默认点击OK 二、分析IP构成 查看IP细节&#xff0c;查看设计资源和仿真资源 双击打开文件 设计文件…

代码随想录 图论-并查集

代码随想录 (programmercarl.com) 寻找图中是否存在路径这道题中的类可看做并查集的标准类 目录 1971.寻找图中是否存在路径 684.冗余连接 685.冗余连接II 1971.寻找图中是否存在路径 1971. 寻找图中是否存在路径 已解答 简单 相关标签 相关企业 有一个具有 n 个顶…

NOIP,CSP-J,CSP-S——输入输出进阶

一、输入scanf 格式&#xff1a; int a,b; scanf("%d%d", &a, &b) 类似于 int a,b; cin>>a,b; 双引号里面的两个“%d”表示要输入两个int类型的变量的占位符。然后是要输入的变量名&#xff0c;前面要加“&”&#xff0c;如果有多个变量则用…

SystemUI修改系统状态栏右边的ICON背景颜色

文件在 status_bar.xml 。 如下&#xff1a; <com.android.keyguard.AlphaOptimizedLinearLayout android:id"id/system_icon_area"android:layout_width"0dp"android:layout_height"match_parent"android:background"#ff0000"andr…

我的 Android 性能书上架了!内附书籍介绍

大家好&#xff0c;我是拭心。 很高兴地向大家宣布&#xff0c;我的新书《Android 性能优化入门与实战》上架了&#xff01; 点击下面的小程序进行购买&#xff1a; 封面介绍 这本书的封面来自之前的投票文章 # 投票啦&#xff01;最新安卓进阶书籍封面由你来定&#xff0c;从四…

基于SIR模型的疫情发展趋势预测算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于SIR模型的疫情发展趋势预测算法.对病例增长进行SIR模型拟合分析&#xff0c;并采用模型参数拟合结果对疫情防控力度进行比较。整体思路为采用SIR微分方程模型…

小迪安全48WEB 攻防-通用漏洞Py 反序列化链构造自动审计 bandit魔术方法

#知识点&#xff1a; 1、Python-反序列化函数使用 2、Python-反序列化魔术方法 3、Python-反序列化 POP 链构造&#xff08;payload构造&#xff09; 4、Python-自动化审计 bandit 使用 #前置知识&#xff1a; 函数使用&#xff1a; pickle.dump(obj, file) : 将对…