本文来自ray summit 2024上 vllm现状及roadmap分享,带大家一起回顾vllm发展历史、过去一年的发展及接下来Q4规划。
vllm的目标是构建最快、最易使用的开源大模型推理服务引擎,最初起源可追溯到22年8月,用于解决大模型推理慢速问题。23年2月提出了pagedattention概念,并于23年4月提交相关论文。在社区帮助下快速迭代发展,成为最受欢迎的LLM服务引擎之一。
过去一年的工作内容
模型支持,支持几乎所有llm和vlm模型且效率非常高,包括LLama系列模型/Mixtral系列模型/LLava多模态/状态空间模型/reward模型等
硬件支持,支持主流的xPU,如nvidia GPU/amd GPU/Intel GPU/Google TPU等
模型性能优化
深层次的 cuda kernel优化,如计算时异步数据传输/优化内存访问(精度精度-高效数据类型-减少数据传输量)/增加并行度等优化allreduce通信。利用cutlass库优化GEMM,实现kernel fusion等功能,提供专门的flashatention kernel等
cuda图优化
支持主流的量化技术,FP8/INT8/GPTQ/AWQ等,并集成marlin kernel等
新特性
支持sarathiserver论文提出的chunked prefill
speculative decodin(draft-verification)/dynamic speculative deccoding(根据系统负载和推测精度动态调整长度)
基于hash的自动前缀缓存,缓存system prompt及多轮对话,减少请求数据量,这与sglang中采用的radix树维护kv缓存不同,但都提高了缓存重用
支持多个lora adapter及热加载
支持结构化输出等
基于prometheus/grafana的实时监控,包括gpu内存使用/kvcache重用率/访问延迟吞吐等指标
分布式系统架构
支持tensor并行/流水线并行等
多GPU/多节点支持
cpu offloading
动态批处理/流式输出
v0.6.0中最小化GPU负载功能,
包括APIserver与推理引擎分离到不同进程,通过ZMQ消息队列通信
多步调度
异步输出
oss社区
CI/CD集成,做到每个commit都通过上千个测试用例
性能追踪,跟踪每次大的修改性能变化
加入linux foundation,每2个月的meetup及每2周的线上会议
github社区活跃,560+的contributor,20+的commiter
客户群体众多,包含众多科技巨头/云厂商等,在aws/azure/vertex等多个云端部署运行
欢迎加入自动驾驶实战群
接下来的Q4计划
模型支持,继续支持VLM多模态模型/SSM状态模型-mamba/reward模型/whisper等
硬件支持,继续提升支持nvidia h200/mi300x/intel gaudi/google tpu等
性能提升
默认打开chunked prefill/前缀树/speculative decoding
结构化输出优化
kernel fusion,提供更高性能的kernel如flashattention3/flashinfer/flexattetion/triton等
稀疏kv框架及长上下文优化等
新特性
kv offloading到cpu/磁盘,kv迁移等
prefill/decoding的分离
前缀树缓存策略/调度策略优化
动态speculative decoding
重构
vllm enging v2.0,异步调度和以prefix caching为中心的设计
多模态内存管理,支持不同shape的tensor,提供类似多级缓存管理功能
原生支持torch.compile
oss社区,提高perf benchmark及文档优化等
之前相关的推理服务、推理分离式架构及vllm/sglang/flashattention/mamba等分享可回溯参考,
OSDI 2024系列-低延迟大模型推理服务1(sarathiserver)
OSDI 2024系列-ML调度1(动态lora适配器)
AMD最新AI端到端基础设施(mi325x GPU)
更多资料:
https://blog.vllm.ai/2024/09/05/perf-update.html
https://github.com/vllm-project/vllm/issues/9006
最后别忘了,帮忙点“在看”。
您的点赞,在看,是我创作的动力。
AiFighing是全网第一且唯一以代码、项目的形式讲解自动驾驶感知方向的关键技术。
长按扫描下面二维码,加入知识星球。