- 设计规格:../../superpowers/specs/2026-07-28-llm-applications-design.md —>
LLM 推理与性能:从推理引擎到吞吐延迟优化
0. 元信息
- 主题路径:
docs/topics/llm-applications/subtopics/llm-inference-and-perf/ - 父主题:
llm-applications - 适合对象:已能调用模型服务、希望理解部署与性能的开发者
- 建议周期:1~2 周
- 前置知识:无额外前置(继承父主题依赖)
- 最终目标:能在固定模型、硬件、上下文和并发条件下比较推理引擎,并用数据优化 KV cache、量化、吞吐和延迟
1. 学习路线
推理请求与基准方法
→ Ollama 本地服务
→ TGI 服务化推理
→ vLLM continuous batching
→ KV cache 与显存
→ 量化
→ 吞吐/延迟压测与调优
3. 阶段表
| 阶段 | 核心知识 | 实践产出 | 可观察学会标准 |
|---|---|---|---|
| 1. 引擎对比 | vLLM、TGI、Ollama 的定位、API、部署边界 | 三引擎对比表 | 能在相同模型/请求下说明选择依据 |
| 3. 量化 | FP16/BF16、GPTQ/AWQ、bitsandbytes、精度权衡 | 量化前后基准 | 能同时报告质量、显存、延迟和吞吐变化 |
| 4. 性能调优 | batching、并发、max tokens、prefix cache、P95 | 压测报告与调参记录 | 能定位瓶颈,避免用单一平均值下结论 |
9. 学习资料汇聚(v0.3 自包含)
9.1 背景与动机
模型能力只是服务的一部分;推理引擎决定如何调度请求、复用 KV cache 和利用显存。性能优化必须建立可复现基准,否则吞吐提升可能以质量、尾延迟或成本恶化为代价。
9.2 概念地图
flowchart LR
Request[请求] --> Prefill[Prefill]
Prefill --> KV[KV cache]
KV --> Decode[Decode]
Decode --> Batch[批处理/调度]
Model[模型权重] --> Quant[量化]
Quant --> Memory[显存]
Memory --> KV
Batch --> Metrics[吞吐/首 token/总延迟/P95]
9.3 基础知识讲解
主推 vLLM、TGI 和 Ollama 官方文档;备查量化工具和模型仓库说明。先用 Ollama 理解本地服务,再用 TGI/vLLM 做同模型基准;所有结论记录硬件、模型、量化、上下文和并发。
9.4 经典问题与经典案例
| 问题 | 最简答案 |
|---|---|
| 显存不够 | 减小模型/上下文、量化或分片,并重新测质量 |
| 首 token 慢 | 优化 prefill、上下文长度、prefix cache 和批处理 |
| 解码吞吐低 | 检查 batch、并发、GPU 利用率和 memory bandwidth |
| P95 抖动 | 分离冷启动、长短请求,检查排队和 max tokens |
| 量化后质量降 | 用固定评测集比较,不只看主观样例 |
| 本地快、线上慢 | 固定硬件、驱动、引擎版本和请求分布后再归因 |
9.5 学习难点
- 概念难点:prefill 与 decode 的瓶颈不同;分别测首 token 和生成速度。
- 思维难点:吞吐和延迟是服务目标的权衡,不存在脱离负载的“最快”。
- 工程难点:基准条件不一致会让比较失效,必须保存配置和原始结果。
9.6 技术标准与接口
Entity
OpenAI-compatible endpoint、prefill/decode、KV cache、continuous batching、quantization、tokens/s、TTFT、TPOT、P95。
Scope
推理引擎负责模型服务和调度,不保证应用质量、事实性或业务安全;性能指标只在给定负载与硬件下成立。
Structure
必须掌握模型权重精度、显存占用、上下文长度、max new tokens、并发、batch、TTFT、TPOT、总延迟和吞吐。
Ecosystem
Ollama 偏本地易用;TGI 偏 Hugging Face 服务化;vLLM 偏高吞吐调度与兼容 API。版本、GPU、CUDA 和量化格式会改变结论。
Depth Tiers
L0 知道引擎存在;L1 看懂启动参数;L2 能部署并压测;L3 能定位显存/排队/批处理瓶颈;L4 能设计多模型路由和容量规划。本子主题要求 L3。
Source
vLLM、TGI、Ollama 官方文档及对应量化项目文档;版本快照日期:2026-07-28。