当前位置: 首页 > news >正文

LazyLLM:长上下文场景下提高LLM推理效率

LazyLLM旨在优化大型语言模型(LLM)在处理长文本语境下的推理效率。传统上,LLM的推理过程分为预填充和解码两个阶段,其中预填充阶段负责计算并存储输入提示的所有token的键值(KV)缓存,这一步骤在面对长提示时会显著增加首次生成token的时间消耗,成为效率瓶颈。LazyLLM通过动态剪枝策略解决了这一问题,它仅计算对下一个token预测至关重要的KV,并将剩余token的计算推迟到它们变得相关时。不同于一次性剪枝整个提示的静态方法,LazyLLM允许模型在不同生成步骤中灵活选取不同的上下文子集,即使这些子集在先前步骤中已被剪枝。LazyLLM能够大幅减少首次生成token的时间,同时几乎不牺牲性能。此外,该方法可以无缝集成到现有的基于Transformer的LLM中,无需任何微调,即可提升推理速度。

在这里插入图片描述

1 动态Token剪枝

推理过程分为两个阶段:预填充(Prefilling)和解码(Decoding)。预填充阶段需要计算所有提示(Prompt)token的键值(KV)缓存,这在长提示的情况下会显著增加“首次生成token时间”(Time-To-First-Token, TTFT),而成为性能瓶颈。动态token剪枝旨在选择性地计算那些对下一个token预测至关重要token的KV缓存。

  • 方法: 采用渐进式token剪枝(Progressive Token Pruning),在预填充阶段而且在解码阶段动态选择重要token进行计算,允许模型在不同生成步骤中动态选择上下文的不同子集,战略性地在后期层中剪枝更多token,而在早期层中保留更多token,以平衡效率和性能。

  • 实现: 在每个生成步骤中,使用注意力图确定token的重要性。具体来说,使用注意力概率来决定输入token相对于要预测的下一个token的重要性。与静态剪枝不同,动态剪枝在每个步骤优化下一个token的预测,即使某些token在先前的步骤中被剪枝过也可能再次被选中。

在这里插入图片描述

2 渐进式KV增长

传统的LLM推理过程中,预填充阶段需要计算所有输入token的KV缓存,这一步骤会显著增加生成第一个token所需的时间,成为生成过程中的瓶颈。通过分析,发现并非所有的输入token对于预测下一个token都是必要的,许多token可以被剪枝而不影响输出质量。LazyLLM采用动态token剪枝策略,只计算那些对下一个token预测重要的KV值,而“懒惰地”将剩余令牌的计算推迟到它们变得相关时。该方法允许模型在不同的生成步骤中动态地从上下文中选择不同的token子集,即使这些token在之前的步骤中被剪枝。

  • 累积token使用率:累积token使用率定义为每个给定步骤的KV缓存大小,展示了在不同生成步骤中使用的token比例及其反向未使用的token比例。

  • 层级敏感性:后期Transformer层相对于前期层对token剪枝更为不敏感,这意味着后期层保持更少的token也能有较好的性能。为了平衡速度和准确性,采用渐进式剪枝,早期层保留更多的token,而在后期层逐渐减少。

  • 辅助缓存(Aux Cache):由于每个解码步骤依赖于预填充阶段计算的KV缓存来计算注意力,当token在后续层的KV缓存中缺失时,模型无法检索其KV值。引入辅助缓存以存储被剪枝token的隐藏状态,以便在后续迭代中潜在地检索,避免了重复计算同一token,确保每个token在每个Transformer层最多计算一次,并保证LazyLLM的最坏运行时间不会慢于基线。

3 结语

文章提出了LazyLLM技术,这是一种针对长上下文场景下提高大型语言模型(LLM)推理效率的方法,它通过动态选择性计算关键token来加速预填充阶段,同时保持推理性能,无需额外的模型微调。并且,LazyLLM可以无缝集成到现有的基于Transformer的LLM中,提高推理速度。

论文题目:LazyLLM: Dynamic Token Pruning for Efficient Long Context LLM Inference

论文链接:https://arxiv.org/abs/2407.14057

PS: 欢迎大家扫码关注公众号_,我们一起在AI的世界中探索前行,期待共同进步!
在这里插入图片描述

相关文章:

LazyLLM:长上下文场景下提高LLM推理效率

LazyLLM旨在优化大型语言模型(LLM)在处理长文本语境下的推理效率。传统上,LLM的推理过程分为预填充和解码两个阶段,其中预填充阶段负责计算并存储输入提示的所有token的键值(KV)缓存,这一步骤在…...

PDF文件点击打印无反应?是何原因造成能解决吗?

PDF无法打印怎么处理?在我们工作中,经常会遇见各种各样的文件问题,当我们想要将PDF文件打印出来纸质版使用,却不知什么原因,显示PDF无法打印,这时应该怎么处理呢? 一般情况下,PDF文件…...

初学者友好!从零到一快速上手PyCharm安装的超详细图解+避坑指南教程

一,pycharm的官网下载 下载地址:www.jetbrains.com/pycharm/ 本文将从 Python解释器安装到Pycharm专业版安装和配置汉化等使用都进行了详细介绍,希望能够帮助到大家。 Python解释器&Pycharm安装包&Pycharm破姐插件我都打包好了。 …...

AI大模型需要什么样的数据?

数据将是未来AI大模型竞争的关键要素 人工智能发展的突破得益于高质量数据的发展。例如,大型语言模型的最新进展依赖于更高质量、更丰富的训练数据集:与GPT-2相比,GPT-3对模型架构只进行了微小的修改,但花费精力收集更大的高质量…...

Java每日一练_模拟面试题1(死锁)

一、死锁的条件 死锁通常发生在两个或者更多的线程相互等待对方释放资源,从而导致它们都无法继续执行。死锁的条件通常被描述为四个必要条件,也就是互斥条件、不可剥夺条件、占有并等待条件和循环等待条件。 互斥条件:资源不能被共享&#x…...

第三方库认识- Mysql 数据库 API 认识

文章目录 一、msyql数据库API接口1.初始化mysql_init()——mysql_init2.链接数据库mysql_real_connect——mysql_real_connect3.设置当前客户端的字符集——mysql_set_character_set4.选择操作的数据库——mysql_select_db5.执行sql语句——mysql_query6.保存查询结果到本地——…...

Python兼职接单全攻略:掌握技能,拓宽收入渠道

引言 随着Python在数据处理、Web开发、自动化办公、爬虫技术等多个领域的广泛应用,越来越多的人开始利用Python技能进行兼职接单,以此拓宽收入渠道。本文将详细介绍Python兼职接单的注意事项、所需技能水平、常见单子类型、接单途径及平台,帮…...

一键编译并启动一个 ARM Linux qemu 虚拟机

需要事先自己编译 qemu-system-arm 可执行文件; 1,编译创建ARM 虚拟机 #!/usr/bin/bash sudo lssudo apt-get install gcc-arm-linux-gnueabi#wget https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.10.tar.gztar zxf linux-kernel-v5.10…...

KubeVirt虚拟机存储及网络卸载加速解决方案

1. 方案背景 1.1. KubeVirt介绍 随着云计算和容器技术的飞速发展,Kubernetes已成为业界公认的容器编排标准,为用户提供了强大、灵活且可扩展的平台来部署和管理各类应用。然而,在企业的实际应用中,仍有许多传统应用或遗留系统难…...

JVM—对象已死?

参考资料:深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)周志明 在堆里面存放着 Java 世界中几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象之中哪些还“存活”着,哪些已经“死去”。 1、如何判…...

【前端面试3+1】20 css三栏布局6种实现方式、多行文本溢出怎么实现、token过期了怎么处理、【二叉树的中序遍历】

一、css三栏布局6种实现方式 1.浮动布局(Floats) .container {overflow: auto; /* 清除浮动 */ }.left, .right {width: 20%; /* 左右栏宽度 */float: left; }.middle {width: 60%; /* 中间栏宽度 */margin: 0 20%; /* 左右栏宽度 */ } 2.Flexbox .conta…...

【C++】vector介绍以及模拟实现(超级详细<=>源码并存)

欢迎来到我的Blog,点击关注哦💕 【C】vector介绍以及模拟实现 前言vector介绍 vector常见操作构造函数iteratorcapacitymodify vector模拟实现存储结构默认构造函数构造函数拷贝构造函数赋值运算符重载析构函数 容量(capacity)si…...

【Redis 进阶】主从复制(重点理解流程和原理)

在分布式系统中为了解决单点问题(某个服务器程序只有一个节点(只搞一个物理服务器来部署这个服务器程序)。可用性不高:如果这个机器挂了意味着服务就中断了;性能 / 支持的并发量比较有限)。通常会把数据复制…...

Git常用命

转自:https://blog.csdn.net/ahjxhy2010/article/details/80047553 1.查看某个文件或目录的修改历史 git log filename #查看fileName相关的commit记录 git log -p filenam # 显示每次提交的diff#只看某次提交中的某个文件变化,commit-id  文件名…...

强化学习时序差分算法之Q-learning算法——以悬崖漫步环境为例

0.简介 基于时序差分算法的强化学习算法除了Sarsa算法以外还有一种著名算法为Q-learning算法,为离线策略算法,与在线策略算法Sarsa算法相比,其时序差分更新方式变为 Q(St,At)←Q(St,At)α[Rt1γmaxaQ(St1,a)−Q(St,At)] 对于 Sarsa 来说&am…...

111推流111

推流推流...

刷题——数组中只出现一次的两个数字

数组中只出现一次的两个数字_牛客题霸_牛客网 描述 一个整型数组里除了两个数字只出现一次&#xff0c;其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。 数据范围&#xff1a;数组长度 2≤n≤10002≤n≤1000&#xff0c;数组中每个数的大小 0<val≤100000…...

《剖析程序员面试“八股文”:助力、阻力还是噱头?》

#“八股文”在实际工作中是助力、阻力还是空谈&#xff1f; 作为现在各类大中小企业面试程序员时的必问内容&#xff0c;“八股文”似乎是很重要的存在。但“八股文”是否能在实际工作中发挥它“敲门砖”应有的作用呢&#xff1f;有IT人士不禁发出疑问&#xff1a;程序员面试考…...

Redis过期key的删除策略

在 Redis 中&#xff0c;设置了过期时间的键在过期时间到达后&#xff0c;并不会立即从内存中删除。如果不是&#xff0c;那过期后到底什么时候被删除呢&#xff1f; 下面对这三种删除策略进行具体分析。 立即删除&#xff1a; 立即删除能够保证内存数据的及时性和空间的有效…...

软件管理

设备挂载在目录下才可以读 挂载类似于将u盘插在电脑上 mount /dev/sr0 /opt/openeuler/ vim /etc/rc.d/rc.local #开机自运行脚本&#xff0c;将挂载命令写入脚本&#xff0c;并给这个脚本执行权限 chmod x /etc/rc.d/rc.local [rootlocalhost ~]# cd /etc/yum.repos.d/ […...

零基础掌握Degrees of Lewdity本地化工具:开源项目中文适配方案全攻略

零基础掌握Degrees of Lewdity本地化工具&#xff1a;开源项目中文适配方案全攻略 【免费下载链接】Degrees-of-Lewdity-Chinese-Localization Degrees of Lewdity 游戏的授权中文社区本地化版本 项目地址: https://gitcode.com/gh_mirrors/de/Degrees-of-Lewdity-Chinese-Lo…...

ChatTTS角色系统:从技术原理到生产环境部署指南

在语音合成技术日益成熟的今天&#xff0c;多角色、高表现力的TTS系统已成为互动应用的关键组件。ChatTTS的角色系统允许在同一对话流中动态切换不同音色的语音输出&#xff0c;极大地提升了交互的自然度和沉浸感。然而&#xff0c;在实际生产部署中&#xff0c;开发者常面临一…...

eSearch终极指南:5分钟掌握OCR屏幕工具的强大功能

eSearch终极指南&#xff1a;5分钟掌握OCR屏幕工具的强大功能 【免费下载链接】eSearch 截屏 离线OCR 搜索翻译 以图搜图 贴图 录屏 滚动截屏 Screenshot OCR search translate search for picture paste the picture on the screen screen recorder 项目地址: https://gitco…...

Spring AI智能客服多轮问答实战:从架构设计到生产环境部署

最近在做一个智能客服项目&#xff0c;客户反馈最集中的问题就是“机器人聊着聊着就忘了前面说过什么”。比如用户想订机票&#xff0c;先问了“明天北京到上海的航班”&#xff0c;接着问“下午的呢&#xff1f;”&#xff0c;机器人很可能就懵了&#xff0c;因为它丢失了“北…...

WuliArt Qwen-Image Turbo科研部署:计算机视觉课题组可控图像生成基线

WuliArt Qwen-Image Turbo科研部署&#xff1a;计算机视觉课题组可控图像生成基线 1. 项目概述 WuliArt Qwen-Image Turbo是一款专为计算机视觉课题组和科研人员设计的轻量级文本生成图像系统。这个项目基于阿里通义千问Qwen-Image-2512文生图底座&#xff0c;深度融合了Wuli…...

双模型对比:OpenClaw同时接入Qwen3.5-9B与Llama3的任务执行差异

双模型对比&#xff1a;OpenClaw同时接入Qwen3.5-9B与Llama3的任务执行差异 1. 测试背景与实验设计 上周我在整理一个长期堆积的文档项目时&#xff0c;发现手动分类200多份混合格式文件&#xff08;PDF/Word/Markdown&#xff09;需要至少3小时。作为OpenClaw的早期使用者&a…...

两个线程对socket 进行读和写,需要加锁吗

同一个 socket&#xff0c;一个线程只读、一个线程只写 → 不需要加锁&#xff01;同一个 socket&#xff0c;两个线程都可能读 / 都可能写 → 必须加锁&#xff01;我给你用最简单、最直白、Linux 官方规则讲清楚&#x1f447;1. 官方 POSIX / Linux 规定&#xff08;黄金定律…...

计及力累积效应电力变压器绕组短路强度与稳定性研究 电力变压器作为电网系统的电力转换枢纽

计及力累积效应电力变压器绕组短路强度与稳定性研究 电力变压器作为电网系统的电力转换枢纽&#xff0c;因短路冲击造成其损坏的事故时有发生&#xff0c;统计发现单次短路冲击有时并不会对绕组造成严重的损坏&#xff0c;但会存有难以检测的暗伤&#xff0c;经多次作用累积&am…...

git不跟踪文件夹

git不跟踪文件夹假设你有一个名为build的文件夹&#xff0c;你想从Git跟踪中移除它&#xff1a; 1.移除跟踪&#xff1a; bash git rm -r --cached build/ 2.提交更改&#xff1a; bash git commit -m “Remove logs folder from tracking” 3确保未来不被跟踪&#xff1a; bas…...

4G手机远程断电停电报警器:三重告警,漏报风险全杜绝

4G手机远程断电停电报警器&#xff0c;简单来说&#xff0c;就是一款在监测到设备停电时&#xff0c;能通过4G网络自动给你打电话、发短信“通风报信”的智能硬件。解决人不在现场&#xff0c;如何第一时间知道设备停电了。特别适合那些停电会造成严重损失的场景&#xff0c;比…...