登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
博客
发1篇日志+1圆
记录
发1条记录+2圆币
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
VIP网盘
VIP申请
网盘
联系我们
道具
勋章
任务
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
探秘Transformer系列之(24)--- KV Cache优化
探秘Transformer系列之(24)--- KV Cache优化
[ 复制链接 ]
煅汾付
2025-6-2 22:44:34
探秘Transformer系列之(24)--- KV Cache优化
目录
探秘Transformer系列之(24)--- KV Cache优化
0x00 前言
0x01 背景知识
1.1 度量指标
1.1.1 吞吐量
1.1.2 延迟
1.2 内存危机
1.3 KV Cache问题
0x02 总体思路
2.1 分类
2.2 从公式角度优化
2.2.1 难以利用的选项
减少模型层数
减少batch size
2.2.2 LLM推理加速的优化方向
2.2 按照特性进行优化
2.2.1 prefill
2.2.2 Decoding
2.2.3 分离与否
2.2.4 内存管理
2.2.5 调度
2.3 按照阶段来优化
0x03 按照公式优化
3.1 减少注意力头的数量
3.2 减少每个参数占用的字节
3.3 减少注意力头维度
3.2.1 Double Sparsity
洞见
方案
3.4 减少Layers
3.4.1 总体思路
3.4.2 LayerSkip
动机
方案
3.4.3 YOCO
模型架构
训练和推理
效果
3.4.4 CLA
3.4.5 MLKV
3.5 减少序列长度
0x04 按照特性进行优化
4.1 针对Prefill特性进行优化
4.1.1 Chunking
4.1.2 KV-Runahead
动机
方案
4.2 内存管理优化
4.2.1 问题
4.2.2 Paged Attention
实现
架构
KV Cache管理器
基本场景的解码算力
劣势
4.2.3 vAttention
洞察
设计概述
4.3 调度
4.3.1 Prefix-aware Scheduling
4.3.2 Preemptive and Fairness-oriented scheduling
4.3.3 Layer-specific and Hierarchical Scheduling
0xFF 参考
0x00 前言
目前的大型语言模型(LLM)服务系统采用KV Cache来避免在解码阶段重复计算键和值的投影。虽然这对于单个客户端请求生成短序列而言是一个有效的解决方案,但是,面对多个客户时,每个请求都保留自己的KV缓存,从而增加了推理过程中的总体KV缓存大小。另外,即使是针对单个客户端请求,当我们生成长序列或处理多轮对话时,KV Cache 依然会对推理性能造成极大的影响。比如,束搜索和平行采样也被广泛用于生成更好的输出或为客户提供候选选择。这些技术也会像批处理推理一样增加KV缓存的大小,因为它们会同时处理多个序列。
KV Cache问题的核心在于,KV Cache 占用了大量内存和访存带宽,同时在生成阶段引入了大量重复计算。从而阻止了我们处理或生成非常长的序列和处理大批量数据,无法最大化硬件效率。这就好比一个图书馆管理员每天忙于检索每本书的信息,却没有时间去为用户去拿书。而总体趋势上,LLM 的窗口长度也在不断增大,因此就出现一组主要矛盾,即:对不断增长的 LLM 的窗口长度的需要与有限的 GPU 显存之间的矛盾。
因此优化 KV cache 就显得非常必要,KV Cache 压缩技术也成为了 LLM 推理领域的热门研究方向。本文会带领大家深入剖析KV Cache的各项特性,并详细阐述了当前用于优化LLMs中KV Cache空间使用的各种方法,阐明了它们之间的相互关系,并比较它们的核心思想。
注意:因为KV Cache优化的内容太多,因为我们将分为三篇文章来仔细学习。
注:全部文章列表在这里,估计最终在35篇左右,后续每发一篇文章,会修改此文章列表。
cnblogs 探秘Transformer系列之文章列表
0x01 背景知识
1.1 度量指标
推理加速一般可以从两个层面体现:吞吐量与延迟。这两个层面的指标参见下图。
生成式LLM可以用于各种具有不同SLO( Service Level Objective/服务级别目标)的任务。对于批处理任务(例如摘要),TTFT或TBT延迟指标不如吞吐量重要。另一方面,对于对延迟敏感的任务(例如对话API),TTFT和TBT是更重要的指标,其SLO更严格。
1.1.1 吞吐量
吞吐量 (Throughput) 是从系统的角度来看的指标,或者说是 LLM 服务的成本指标,表示每生成一个 token 服务商需要支付的算力成本。吞吐量有多种评估方式,比如 tokens per second(tps),即推理服务器单位时间内能处理针对所有用户和请求生成的输出token数。如果不仅考虑预填和解码,还考虑内存限制和上下文切换,则可以考虑基于会话的吞吐量,即在给定时间内的并发用户交互数量,是一个端到端的目标。
\[\begin{align} \texttt{throughput} = \frac{\texttt{number of user interaction sessions}}{\texttt{time}}\notag\end{align} \]
吞吐量衡量的是所有用户和请求中完成的请求或词元的数量,因此忽略了时延要求。有研究人员引入了有效吞吐量(goodput),即每秒完成请求的遵守 SLO(TTFT 和 TPOT 要求)的数量。因为有效吞吐量捕获了在 SLO 达成下的请求吞吐量 —— 因此既考虑了成本又考虑了服务质量。
1.1.2 延迟
模型为用户生成完整响应所需的总时间可以使用这两个指标来计算:TTFT和TPOT。
首次token生成时间(Time To First Token,简称TTFT)
TTFT是在用户输入查询的内容后,模型生成第一个输出token所需要的时间。在人机实时交互的过程中,让用户得到快速的响应至关重要,返回结果越快,用户体验越好。但对于离线工作负载则不太重要。在实践中,我们一般会人为设置一个TTFT SLO(Service Level Objective)。举例来说,假设我们定P90 TTFT SLO = 0.4s,那么这意味着我们对该系统的要求是:“90%的request的TTFT值都必须
探秘
Transformer
系列
KV
Cache
相关帖子
HotSpot虚拟机对象探秘
.NET 10 中的新增功能系列文章4——.NET SDK中的新增功能
解密prompt系列58. MCP - 工具演变 & MCP基础
【Java 温故而知新系列】基础知识-06 深入理解String类
.NET 10 新增功能系列文章5——C# 14 中的新增功能
【模型压缩系列-1】一篇文章带你全面了解模型量化(Data Quantization )——全局篇
OMNET++系列问题(二)---如何解决 OMNeT++中的“Class _XXX_ not found”错误
MySQL中performance_schema.host_cache表为空的原因
Senparc.AI 系列教程(二):配置大模型,开始开发应用
高通手机跑AI系列之——人像与背景分割
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
HotSpot虚拟机对象探秘
0
563
育局糊
2025-08-05
业界
.NET 10 中的新增功能系列文章4——.NET SDK中的新增功能
0
542
聱嘹
2025-08-05
业界
解密prompt系列58. MCP - 工具演变 & MCP基础
0
507
裒噎
2025-08-06
安全
【Java 温故而知新系列】基础知识-06 深入理解String类
0
685
乱蚣
2025-08-06
业界
.NET 10 新增功能系列文章5——C# 14 中的新增功能
0
742
扈怀易
2025-08-07
业界
【模型压缩系列-1】一篇文章带你全面了解模型量化(Data Quantization )——全局篇
0
827
神泱
2025-08-07
安全
OMNET++系列问题(二)---如何解决 OMNeT++中的“Class _XXX_ not found”错误
0
580
浦乐
2025-08-07
安全
MySQL中performance_schema.host_cache表为空的原因
0
685
扈梅风
2025-08-15
业界
Senparc.AI 系列教程(二):配置大模型,开始开发应用
0
993
田雅宁
2025-08-21
安全
高通手机跑AI系列之——人像与背景分割
0
233
明思义
2025-08-28
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
安全
科技
签约作者
程序园优秀签约作者
发帖
煅汾付
2025-6-2 22:44:34
关注
0
粉丝关注
18
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
敖可
9984
黎瑞芝
9990
杭环
9988
4
凶契帽
9988
5
氛疵
9988
6
虽裘侪
9986
7
猷咎
9986
8
接快背
9986
9
里豳朝
9986
10
肿圬后
9986
查看更多