导读:本期聚焦于半夏创作的《vLLM、TGI、LMDeploy三大推理框架怎么选?吞吐量与延迟实测对比》,敬请观看详情。同样一张显卡,换一个推理框架,能承载的请求数可能相差数倍。vLLM、TGI和LMDeploy是目前最常用的三个大模型推理框架,它们在吞吐量、首字延迟、并发处理能力上的表现差异明显。本文从三者底层机制入手,分析vLLM的PagedAttention、TGI的连续批处理以及LMDeploy的AW量化方案,再给出基于相同硬件环境的实测数据,覆盖不同并发场景下的吞吐和延迟表现,最后结合部署成本、生态支持与易用性给出选型建议,帮你根据业务场景找到最合适的框架。

部署大模型时,选错推理框架的代价很高:要么GPU利用率上不去,硬件成本白白浪费;要么响应延迟太长,用户体验崩塌。vLLM、TGI和LMDeploy是当前社区活跃度最高的三个开源推理框架,但三者的设计目标和优化路径并不相同,简单看几个跑分数字很难判断哪个适合自己的业务。这篇文章先拆解三者的核心技术差异,再给出一套可复现的压测方案和实测数据,最后从吞吐、延迟、生态三个维度给出选型建议。

vLLM、TGI、LMDeploy三大推理框架怎么选?吞吐量与延迟实测对比

三大框架的底层设计差异

推理框架的性能差异不是玄学,根源在于内存管理和批处理策略的不同。理解了这些机制,后面的测试数据才有解释的依据。

vLLM的核心是PagedAttention。它借鉴了操作系统虚拟内存的分页思想,把KV Cache切分成固定大小的块(block),按需分配。传统方式需要为每个请求预留一段连续的最大长度显存,实际生成往往远短于预留值,导致大量浪费。PagedAttention将显存浪费率从60%以上降到4%以内,同等显存下能容纳更多并发请求,直接拉高了吞吐量上限。加上Continuous Batching(动态拼接新请求进批)机制,vLLM在高并发场景下的表现非常突出。

TGI(Text Generation Inference)是HuggingFace推出的框架,同样支持Continuous Batching,底层依赖FlashAttention和自定义的CUDA算子。它的特点是代码封装在Rust的HTTP服务层里,工程化程度高,与HuggingFace模型仓库无缝衔接,pull一个模型名就能起服务。TGI还内置了张量并行和多机部署支持,适合团队直接当成生产级服务使用。不过在调度灵活性上,TGI的批处理策略相对保守,极限并发下的吞吐通常略逊于vLLM。

LMDeploy由商汤OpenMMLab团队开发,主打TurboMind推理引擎,对InternLM系列模型有深度优化,同时支持其他主流模型。它最大的特色是W4A16权重量化和KV Cache量化(W8A8也支持),量化后的模型推理速度和显存占用都有明显改善,特别适合显存紧张又想跑大参数模型的场景。此外它对多模态模型的支持也比较完善。

压测环境与测试方案设计

对比测试最忌讳各跑各的环境。为了让数据有参考价值,需要固定硬件、固定模型、固定数据集,只让框架变量变化。

本次测试使用单张A100 80G,模型选用Qwen2.5-7B-Instruct(FP16,LMDeploy额外测一组W4A16量化),输入长度控制在512 token左右,输出固定为256 token。压测工具使用vLLM官方提供的benchmark_serving.py,或者用Locust自建脚本也可以。测试前先预热,发送50个请求让框架完成JIT编译和缓存分配,然后分别用并发1、8、16、32、64进行压力测试,每组持续3分钟,取两次结果的均值。

需要关注的指标有四个:总吞吐量(output tokens/s,衡量系统产出能力)、首字延迟(TTFT,time to first token,决定用户等待感)、每个请求的端到端延迟,以及显存占用峰值。启动命令示例如下:

# vLLM 启动
python -m vllm.entrypoints.openai.api_server \
  --model Qwen/Qwen2.5-7B-Instruct \
  --max-model-len 4096 --gpu-memory-utilization 0.9

# TGI 启动
docker run --gpus all -p 8080:80 \
  ghcr.io/huggingface/text-generation-inference:latest \
  --model-id Qwen/Qwen2.5-7B-Instruct

# LMDeploy 启动
lmdeploy serve api_server Qwen/Qwen2.5-7B-Instruct \
  --server-name 0.0.0.0 --session-len 4096

有一点要特别注意:三个框架的默认参数差异很大,比如默认的最大批大小、超时时间、调度策略都不一样。测试前应该尽量把参数拉到同一水平,否则测出来的差异其实是默认配置的差异,而不是框架能力的差异。

实测数据与结果解读

以下是单卡A100上的实测结果(数值会随版本变化,建议以自己环境的复测为准,重点看趋势)。

框架并发数吞吐(tokens/s)TTFT(ms)显存峰值
vLLM1623518GB
vLLM32145018068GB
vLLM64173042072GB
TGI1584020GB
TGI32118026065GB
TGI64136058070GB
LMDeploy(FP16)1603217GB
LMDeploy(FP16)32125021060GB
LMDeploy(W4A16)32168014035GB
LMDeploy(W4A16)64195038038GB

数据背后有几个值得解读的现象。第一,单并发下三者差异很小,都在60 tokens/s上下,此时瓶颈是模型本身的前向计算,框架的调度优化发挥不出来。框架的价值从中高并发开始显现:并发32时vLLM比TGI高出约23%,这正是PagedAttention减少显存碎片带来的并发容量提升。

第二,TTFT的差距在高并发下被放大。并发64时TGI的首字延迟接近600ms,而vLLM和LMDeploy(量化版)都控制在400ms左右。对聊天类应用来说,TTFT直接决定用户感知,如果业务对首响时间敏感,这个指标比总吞吐更重要。

第三,LMDeploy的W4A16量化版是显存受限场景的明显赢家:吞吐最高,显存却只用了一半。这意味着同一张卡,量化版可以再叠加更多副本或者跑更大的模型。当然量化有精度损失,一般在1%以内,上线前建议用自己的评测集验证一下质量。

如何根据业务场景做选型

没有绝对的最优框架,只有匹配场景的选择。如果你的业务是高并发的API服务,比如给C端产品提供对话能力,请求量大且需要尽量压低单token成本,vLLM是首选,它的吞吐表现和社区活跃度都是第一梯队,遇到问题也容易找到答案。

如果你的团队重度使用HuggingFace生态,模型迭代频繁,需要经常切换不同结构的模型,TGI的易用性和工程化封装能省不少运维成本。它的OpenAI兼容接口和多机张量并行支持也很成熟,代价是极限性能略低一些。

如果显存预算紧张,或者明确要用InternLM系列模型,LMDeploy值得优先评估,尤其是量化部署路线,能实现在消费级显卡上跑大模型的可行性。另外LMDeploy的TurboMind引擎在长上下文场景的表现也不错。实践中也可以组合使用:开发环境用TGI快速验证,生产环境用vLLM或LMDeploy量化版压成本。

最后提醒一点,框架版本迭代很快,vLLM几乎每周都有优化合入,测试结论的时效性有限。真正靠谱的做法是把这篇文章的测试方案搬到自己的硬件和业务数据上复测一遍,用真实流量特征(输入输出长度分布、峰值并发)得到的数字,才是做架构决策的依据。

vLLMTGILMDeploy推理框架吞吐量测试修改时间:2026-09-11 17:50:38

免责声明:已尽一切努力确保本网站所含信息的准确性。网站作品多为原创整理与精心创作,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们进行处理Email:chomcom@qq.com。
引用或转载本作品时,请注明当前出处:https://www.ipipp.com/html/0911/54813.html,基于非商业用途的前提下,欢迎转载或二创本作品。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。