以“吞吐/延迟/易用/资源占用/生态”五个维度,对比 vLLM/TGI/Ollama/LMDeploy。
🎯 文章目标
- 给出“何时选哪一个”的建议
- 提供最小启动参数与压测方法
- 明确 KV 缓存与批处理支持差异
📚 背景/前置
- vLLM:PagedAttention,高吞吐,OpenAI 兼容好
- TGI:Hugging Face 推理服务,生态强
- Ollama:本地易用,模型管理方便
- LMDeploy:推理优化,量化/并行灵活
🔧 核心内容
1) 最小启动
vLLM:见 25 篇
TGI:
bash
text-generation-launcher --model-id Qwen/Qwen2.5-7B-Instruct --port 8080
- Ollama:
bash
ollama serve &
ollama pull qwen2.5:7b-instruct
- LMDeploy:略(结合官方脚本)
2) 压测方法
- 并发 32/64、请求 256;观察 TTFB/吞吐/错误率
- 记录 tokens/s、P95/P99 延迟、最慢 5%
3) 取舍建议
- 高吞吐:vLLM
- 简易上手:Ollama
- 生态联动:TGI
- 细粒度推理优化:LMDeploy
📊 对比/取舍(速查)
- 吞吐 vs 延迟,简易 vs 可控,依场景权衡
🧪 踩坑与经验
- 没有控制 batch 导致头阻塞
- 忘记启用 KV/前缀缓存,延迟偏高
📎 参考与延伸
- 各引擎官方文档/参数指南
- 社区压测与对比报告
💭 总结
- 先选定“应用目标”,再根据吞吐/延迟/易用性选引擎;用压测数据说话