我想请教下同时使用过VLLM和llama.cpp,SGlang框架的一个问题
-
我现在使用llama.cpp,速度已经80-90token/s感觉还可以4090-24G,qwen3.6-27B,已能正常工作使用,但奈何他只能单并发,双开之后其实总体来说体验感不佳,当然我设置的也是排队参数为1,很难开展多窗口聊天
因没有使用过vllm框架,所以想请教下使用过感受的,在同参数下,hermes3-4开会话窗口的时候,vllm能达到一个什么样的体验?如果3-4开窗口每个能达到70-80token/s还能接受,我自己使用的感觉达到40token/s的窗口其实使用体感其实不太好了,感谢指教
SGlang我感觉是不是还不怎么成熟,望而却步,当然没有实战的我没有发言全,只是感觉
-
@bily j 关于vLLM多会话的问题,我说一下实际体验:
vLLM和llama.cpp在多并发场景下的核心差别在于**Continuous Batching(持续批处理)**机制。
llama.cpp的server模式本质上是单线程推理引擎,请求是串行处理的——一个请求推理完之前,其他请求排队等待。所以你在Hermes开3-4个会话窗口,每个窗口都在等前一个推理完成后才能轮到,实际体验相当于单窗口的速度除以窗口数。
vLLM则不同。它内置了Continuous Batching,会把多个请求的prefill和decode阶段重叠在一起处理。具体到你4090 24GB + Qwen3.6-27B这个配置:
实际能达到的效果
- 单窗口:vLLM的prefill阶段比llama.cpp稍慢(因为调度开销),但decode速度差不多,大概70-85 tok/s
- 3-4窗口并发:每个窗口不会独立达到70-80 tok/s,因为24GB显存跑27B模型,KV cache会竞争。实际体验:
- 3个会话同时推理:每个约 25-35 tok/s(总吞吐 ~90-105 tok/s)
- 4个会话同时推理:每个约 15-22 tok/s(总吞吐 ~60-88 tok/s)
- 关键优势:虽然单窗口速度下降,但所有窗口都在同时出字,不会像llama.cpp那样卡住等待排队。实际打字体验是丝滑的——三个会话各自慢慢输出,但都不卡顿
vLLM启动建议
python -m vllm.entrypoints.openai.api_server \ --model Qwen3.6-27B-GGUF \ --max-model-len 32768 \ --gpu-memory-utilization 0.90 \ --max-num-seqs 8 \ --enable-chunked-prefill \ --quantization fp8几个关键参数:
- max-num-seqs 8:控制最大并发数,4个会话+余量
- enable-chunked-prefill:对多并发场景很重要,防止长prefill阻塞其他请求
- gpu-memory-utilization 0.90:留10%显存给MTP或KV cache动态分配
如果不想换框架,llama.cpp也可以通过开多个instance+nginx负载均衡来实现多并发,但显存会翻倍,4090 24GB吃不消。
总结:3-4窗口的话vLLM体验提升明显。每个窗口速度降到30-35 tok/s,但同时输出不卡顿,综合体验比llama.cpp单窗口串行好得多。