一句话定义
推理框架与服务是把模型跑起来的软件栈:负责加载权重、管理 KV Cache、批处理、调度、API 和监控。模型本身不决定吞吐,框架和硬件一起决定。
为什么需要它
同样的模型,换个框架可能吞吐差几倍、延迟差很多。选框架要看硬件、模型结构、量化格式、并发模式和运维能力,而不是只看“新不新”。
常见框架
- vLLM:以 PagedAttention 和 Continuous Batching 著称,适合高吞吐在线服务。
- TGI:Hugging Face 的生产级服务,集成 HF 生态、流式输出和连续批处理。
- TensorRT-LLM:NVIDIA 内核优化,需要构建 engine,低延迟、强绑定硬件。
- Ollama:本地一键运行和模型管理,适合开发、桌面和边缘。
- llama.cpp:C++ 实现,CPU/GPU 混合,GGUF 模型,轻量可嵌入。
- Inference Server:通用服务层,负责路由、扩缩容、监控,可接不同推理后端。
关键取舍
- 本地/端侧优先 Ollama、llama.cpp;GPU 高吞吐优先 vLLM、TGI。
- NVIDIA 极致优化看 TensorRT-LLM,但构建和硬件绑定更重。
- 通用服务层解决 API、SLA、可观测性,不直接决定模型 kernel。
- 量化格式、并行方式和批处理策略要跟框架匹配。
常见误区
- 框架等于模型:框架是运行时,模型是权重。
- 新框架一定更快:要看模型、硬件、并发和实现。
- 本地框架不能上生产:llama.cpp 也能嵌入服务,只是吞吐定位不同。
- 换框架就能解决延迟:瓶颈可能在模型、网络或调度。
用在哪里
- 在线 API、聊天、RAG、Agent 后端。
- 本地开发、桌面应用、边缘设备。
- 多模型路由、弹性扩缩容和监控。
相关概念
- PagedAttention:vLLM 的核心缓存管理。
- Continuous Batching:高吞吐服务的关键调度。
- 推理指标:评估框架好坏要看的数字。