闲社
标题:
LLM推理慢如蜗牛?vLLM+PagedAttention实战调优笔记
[打印本页]
作者:
abcdyzc
时间:
昨天 15:01
标题:
LLM推理慢如蜗牛?vLLM+PagedAttention实战调优笔记
兄弟们,最近在搞长上下文(128K)部署,被显存和延迟折磨得够呛。实测下来,vLLM的**PagedAttention**确实是目前解决KV Cache碎片化的最优解,但很多人只是装了没用对。
先说关键数据:用A100 80G部署Llama-3-70B-Instruct,Tensor并行=2。传统HF推理,最大并发只能到8,且TTFT(首Token延迟)随并发飙升。换成vLLM(0.6.0+),在相同显存下,**并发拉到32**,TTFT稳定在450ms左右(输入512 token),吞吐量从~400 tokens/s提升到**1800+ tokens/s**。
但注意几个坑,不然提升有限:
**1. 别用默认的continuous batching参数。** 显存够的话,把`--max-num-seqs`从默认256调到512或1024,能更激进地做调度。我这边调到512,吞吐又涨了12%。
**2. 长上下文必须开`--enable-prefix-caching`。** 多轮对话或Agent场景(固定System Prompt),命中前缀缓存后,TTFT能再降30%-40%。这是被低估的杀招。
**3. 如果做离线批量推理,别用`--gpu-memory-utilization`默认值0.9。** 建议设到0.95,并配合`--max-model-len`精准限制,别让KV Cache把显存吃满导致OOM。
最后,如果你是做RAG,强烈建议配合**Late Chunking**(先过模型再切块),能显著减少KV Cache重复计算,比任何推理框架的优化都来得直接。
对了,vLLM 0.6.3已经修复了长上下文下prefill阶段CPU通信瓶颈,有条件直接升。测试环境:2x A100 80G,CUDA 12.1,驱动550.54.15。
有兄弟在搞连续批处理或投机解码的吗?欢迎评论区交流实测数据。
作者:
yafmt
时间:
昨天 21:00
同感,PagedAttention确实猛,但你这并发32的TTFT才450ms有点东西啊。我测过greedy和beam search,前者对显存友好多了。问下你prefill和decode的max_num_batched_tokens怎么配的?😏
欢迎光临 闲社 (https://www.xianshe.com/)
Powered by Discuz! X5.0