推理优化技术
📅 发表于 2025/07/25
🔄 更新于 2025/07/25
👁️ -- 次访问
📝 0 字
⏳ 0 分钟
llm-inference
#prefix caching
#kv cache
#attention优化
#MLA
#flash attention
#PagedAttention
#Copy-On-Write
#动态批处理
预填充和解码阶段
预填充阶段
输入prompt做前向计算,生成第一个token
TTFT指标 (Time To First Token):生成第1个token所需的时间
解码阶段
提高效率方法
批处理Batching
KV 缓存
之前所有token的key/value
,但这部分不用重新计算,可以缓存在GPU
fp16精度,b=1,seq长度4096,32层,hsize4096
1*4096*2*32*4096*2=2GB
,其中LLM 内存需求
fp16,2m
, 7B,14GB显存
具体:模型并行
背景
[1, k-1]步骤计算过
方法
增量QKV计算
优点
缺点
限制序列长度和BatchSize
,影响吞吐量在1个请求内复用
,无法做到跨请求,不适用于多轮对话场景
对比示意图,一目了然,每次只用当前Q和前的KV做计算即可,因为前面的行和
参数定义
b个序列
t个token
,包括prompt和completionkey和value 2类张量
n_layers注意力层
n_heads个头
d_head向量维度
1参数p_a字节
,fp32-4,fp16/bf16-2,fp8/int8-1KV Cache大小 (单token)
KV Cache大小 (整个batch) MHA
背景
方法
block table来找到块
,进而取出k和v
优点
碎片很多:
PageAttention 运行机制
背景
方法
vLLM写时复制
:当一个序列会改变KV Cache时,vLLM会先创建副本,这样修改就不会影响其他序列背景
核心思想
复用上一轮结果
,提升prefix性能
,降低新一轮的TTFT重用
SGLang Prefix Caching
vLLM Prefix Caching
DeepSeek Prefix Caching / Context Caching
压缩了KV Cache的大小
核心思想
训练32/16
-> 存储8/4
等。优点
核心思想
核心思想
模型执行通常受内存带宽限制(特别是权重),期望加载权重时尽可能多的处理他们。
思想
思想