开源推理引擎吞吐量对比:vLLM和SGLang和TRT-LLM实测
手头有四张A100 40G,上周跑了一轮推理引擎对比,测的模型是Qwen2.5-72B和Llama3-70B,都是AWQ 4-bit量化。三套引擎:vLLM 0.6.3、SGLang 0.4.1、TensorRT-LLM 0.13.0。vLLM的吞吐量在并发64的场景下大概是2100 tokens/s,P99延迟2.3秒。SGLang在同条件下到了2400左右,延迟压到1.8秒,主要优势在它的RadixAttention缓存复用,重复前缀多的场景提升明显。TRT-LLM最高,到了2800,但编译engine花了快两小时,而且换个模型就得重新编译,灵活性太差。
https://www.metk.cn/img/posts/inference_engine_gpu_01.jpg
实际选型的话我觉得分场景:在线服务对延迟敏感的,SGLang现在是最优解,社区也很活跃;离线批量推理不在意启动时间的,TRT-LLM吞吐最高;快速验证和原型阶段,vLLM最省心,文档好生态全。
还有个细节,vLLM从0.6开始默认开了chunked prefill,对长上下文场景的TTFT改善很大,之前0.5版本跑128K context要等十几秒首token,现在压到了4秒以内。 传说中的沙发???哇卡卡 现在工具链更新太快,半年前的最佳实践今年可能就过时了。 延迟和成本这两项是硬指标,演示好看但扛不住量。 演示效果和稳定上线之间差着十万八千里。 这个结论我保留意见,至少在我们行业不太成立,可能跟样本有关。 把工作流拆细之后,能自动化的比例其实没有想象中高。 真正跑通的案例里,投入的人力成本往往被忽略不计了。 提示词工程能解决一部分,但解决不了根本的领域知识问题。 小团队做这个真不如直接用现成 API,自建维护成本太高。