sglang vs vllm 推理速度:先别急着看谁快,看你的请求长什么样

模型与算力

讲清 SGLang 和 vLLM 在推理速度与吞吐上的差异来源,给出部署方按请求形态和负载类型选框架的判断步骤与自测方法。

多数人搜 sglang vs vllm 推理速度,是想找一个「谁更快」的答案。真上手部署会发现,同一个模型、同一张卡,换个压测脚本结论就反过来了。这篇不给你排名,给你一套对号入座的方法:先看请求是长 prompt 短输出还是多轮反复带前缀,再看是单人试还是多人排队,然后自己量三个数,再决定装哪个。

搜 sglang vs vllm 推理速度,多数人是想找个「谁更快」的结论。真上手部署会发现,同一个模型、同一张卡,换个压测脚本结论就反过来。这不是哪个框架在吹牛,是请求形态变了,瓶颈就换了位置。

所以这篇不给你排名,给你一套对号入座的方法:先看请求是长 prompt 短输出,还是多轮反复带前缀;再看是单人试还是多人排队;然后自己量三个数,再决定装哪个。框架选型的坑多半不在框架本身,在你没定义清楚自己跑的是什么负载。

同一个模型,为什么两边结论会打架

两个框架都在算力打满之前受限于不同环节。一边卡在调度和显存管理的开销上,一边卡在缓存能不能复用上。任务形态一换,受限的那一环就换人了,你看到的快慢自然也跟着换。

  • 贴出来的对比图通常只跑单一场景,比如固定短 prompt 的高并发,这种条件下赢的一方换成长上下文就未必还是它
  • 模型结构有影响,MoE 和稠密模型的分支开销不一样,别人压的是哪个模型,跟你手里这个不是一回事
  • 量化档位、张量并行配置、上下文长度这些都没统一,比出来的数字没法直接搬
  • 所以顺序应该是:先定义你的请求分布,再去比,而不是先比完再找理由

把你的请求摊开对号,比看跑分有用

这一步不需要装任何东西,先把线上日志或预想的请求扒一遍,看清长度分布和重复度。下面这张表可以对着填,填完基本就知道该往哪边偏。

请求特征更敏感的能力偏向
多轮对话、Agent,每轮带一大段相同系统提示和历史前缀复用,重复计算能不能省掉对缓存能力敏感的那一边
批量离线,每条 prompt 都不一样,输出很长调度和显存利用率缓存帮不上太多忙
结构化输出,要按格式约束生成约束解码的实现成熟度看文档和实测,不看宣传
请求量很小的内部工具部署顺手程度别为框架折腾,哪个资料多选哪个

还有一种常被忽略的情况:你的输出长度远大于输入。这类负载下缓存带来的收益被摊薄,重点变成解码阶段的调度效率,跟长输入场景的结论很可能相反。所以别拿一个场景的结论套所有业务。

自己量三个数,再决定装哪个

  1. 量首字延迟用你真实的 prompt 长度打,别用示例里的短句。从发请求到拿到第一个 token 计时,这才是用户感知最直接的一项。
  2. 量单路输出速度单并发压一次,看单个请求的生成节奏。这一步不受排队干扰,反映的是纯解码能力。
  3. 量并发拐点按预计峰值人数往上加并发,记录总吞吐和排队时间,直到延迟明显变差。那个拐点就是你的容量上限,加机器还是换框架都看它。
  4. 固定变量重测模型、量化档位、显卡、上下文长度四个变量固定住,改一个就重测。别把差异算到框架头上。

网络链路本身也有底噪。到 /tools/speed-test 先量出你这台机器到外部的延迟基线,压测结果再减掉这部分,不然首字延迟里混进了无关的东西,结论会偏。

速度之外还得算的两笔账

显存与上下文
单卡能塞多大的上下文、能跑到什么量化档位,直接决定要不要多买卡,这笔账通常比几个百分点的速度差更值钱
运维复杂度
版本更新频率、新模型适配要等多久、报错能不能搜到,出故障那天全变成时间成本
团队熟悉度
两边的启动参数、并行配置、量化支持写法都不一样,熟手能省掉一整天试错

有一种情况其实不用纠结速度:请求量本来就撑不满一张卡。这时候优化吞吐是空转,你真正该关心的是稳定性、启动速度和模型支持范围。等负载真的压上来,再回来做这轮对比也不迟。

想横向看各家框架和模型在站内的资料,可以到 /sites 按模型和部署方式筛一遍,再对照 /rankings 里当时整理的数字。价格和套餐变动快,具体数值到 /price-watch 核对当时的行情,别拿旧截图当依据。

下一步把你的请求长度分布和并发峰值记下来,去站内工具页做一轮自己的压测,再回来选框架,比看任何对比图都靠谱。

常见问题

是不是并发越高,两个框架的差距就越明显?

不一定。并发抬到某个点之后,双方都会撞上显存和调度上限,差距反而被抹平,这时候真正卡住你的是显卡数量而不是框架。先找到自己业务的并发拐点,再决定要不要为了高并发场景换框架。

能不能两个都装,按请求分路走?

技术上可以,但要先算清运维成本:两套服务意味着两份显存、两套监控和两套排障流程。团队小于五个人、请求量不复杂的情况下,通常一个跑顺了比两个都半熟要划算,先单框架跑满再说。

官方给的性能数字能直接拿来当选型依据吗?

只能当参考方向。那些数字是在特定模型、特定卡型、特定请求分布下测出来的,跟你手里的模型和流量形态常常对不上。可以拿它筛掉明显不合适的候选,最终结论还是得用自己的请求量一遍,数字口径到 /benchmarks 看当时怎么定义。

本文依据各平台公开文档与官方公告整理,只做中文归纳;具体做法、参数与限制以官方文档为准。