状态传导图
高峰期应同时观察队列时间、被拒请求和 GPU 利用率。
观察点 01
请求先过鉴权、配额和路由,才进入 GPU 队列
Gateway 检查身份、长度、模型与预算;Router 选择实例或模型池;Scheduler 根据显存、优先级和批次状态决定何时准入。
- GPU 计算已开始还在排队
- 尾延迟风险受队列影响
排队延迟不是模型算子时间,但会直接进入用户感知。
部署不是把模型“跑起来”就结束。网关、调度器、Prefill/Decode、KV 管理、连续批处理和流式输出共同决定 TTFT、TPOT、吞吐与成本。
状态传导图
高峰期应同时观察队列时间、被拒请求和 GPU 利用率。
观察点 01
Gateway 检查身份、长度、模型与预算;Router 选择实例或模型池;Scheduler 根据显存、优先级和批次状态决定何时准入。
排队延迟不是模型算子时间,但会直接进入用户感知。
状态传导图
Chunked Prefill 可把长输入切块以减轻对 decode 的干扰,但 chunk 大小也会改变 TTFT、ITL 和 kernel 效率。
观察点 02
Scheduler 按 token 预算、优先级和 KV 容量准入 prefill 工作,模型处理未命中的输入并建立 KV Cache。Prompt 更长、排队更久或受大请求干扰时,TTFT 往往升高。
TTFT 是网络、接入、排队、调度、tokenization、prefill 与首 token 返回的端到端合计,不等于单个 prefill kernel 时间。
状态传导图
KV block、采样状态和停止条件都必须按请求隔离;标准自回归通常每轮为每个活跃序列追加约一个 token,投机解码是另一条路径。
观察点 03
一个请求生成、另一个结束、第三个刚加入;continuous batching 在迭代边界更新活跃集合,让同一轮模型执行服务更多序列。
Decode 吞吐来自动态凑批,而不是让每个请求独占 GPU。
状态传导图
客户端看到的 TPOT 包含模型步进、调度和传输抖动。
观察点 04
采样出的 ID 经 tokenizer decode 变成文本片段;服务处理停止词、安全策略、用量统计与断连。异常时要释放 KV,并记录完整 trace。
生成结束不是最后一步;资源回收和可观测性决定服务能否长跑。
你现在应该能解释:生成结束不是最后一步;资源回收和可观测性决定服务能否长跑。
训练是「造车」,部署是「让车持续载客、按时到站、还算得过账」。模型权重能加载,只代表服务刚启动;还要把准入、排队、Prefill / Decode、KV 生命周期、流式返回和观测连成闭环,才能在业务 SLO 下兼顾延迟、吞吐与成本。
模型训得再好,跑不起来、用不起也没用。部署优化围绕四个目标:装得下(显存)、跑得快(延迟)、省得起(成本)、扛得住(并发)。手段分两大类——省显存/省钱 和 提速。先建立端到端心智模型可读 一次推理的数据流;要算容量与 Roofline 再读 显存与带宽。
KV Cache、PagedAttention、连续批处理、投机解码分别减少重算、内存浪费或串行等待;它们影响的指标不同,不会自动同时改善 TTFT、TPOT 和总吞吐。
(收入−算力成本)/算力成本≈545%,收入/算力成本约 6.45×。官方明确说实际收入低得多;这既不是收入/成本比 545%,也不是包含带宽、运维、研发等费用的完整利润率。理解推理优化,先分清这两段——几乎所有提速、省钱的招,都是在针对其中一段。一句话:Prefill 读题、Decode 答题。
8/0.035≈229 token/s,但每个请求的 TPOT 是 35ms。连续批处理是在吞吐、延迟与 SLO 之间动态折中。把整段 prompt 并行过一遍、建好 KV Cache,大矩阵乘较多,常更偏算力受限并显著影响 TTFT;很长 attention 或低效 kernel 也可能受 IO 限制。
优化招:FlashAttention、Chunked Prefill。
每轮生成少量 token,同时读取权重块和历史 KV;低 batch 时常更偏带宽受限并影响 TPOT。batch、上下文、量化和硬件都可能移动瓶颈。
优化招:连续批处理、KV 量化、投机解码。Roofline 直觉 →
| 手段 | 做什么 / 代价 |
|---|---|
| 量化Quantization | 把权重从 FP16/BF16 降到 INT8/INT4,可降低容量和流量。7B 权重的紧凑下界约是 14GB → 3.5GB,真实 INT4 文件/运行时还要 scale、元数据、对齐与 buffer,常为 4GB+。代价依任务而异:一项覆盖五模型、五方法的 2025 长上下文评测中,8-bit 平均约掉 0.8%,4-bit 在个别任务最高掉 59%;这不是所有模型的固定退化。 |
| 蒸馏Distillation | 用教师输出或中间表示训练更小的学生模型,通常可降低容量与计算;能否保住任务能力取决于教师、数据、目标和评测,不是把大模型能力无损复制过去。 |
| 剪枝Pruning | 删除或结构化移除权重、通道、层或专家以形成稀疏性。参数更少不等于墙钟时间必然更短:非结构化零值若没有匹配的稀疏 kernel、格式和硬件,仍可能按稠密张量执行。 |
| MoEMixture of Experts 混合专家 | 每个 token 只激活一部分专家,主要省每 token 计算;所有专家权重仍需存放在某处,可能跨 GPU 分片或 offload。若全部常驻 HBM,聚合容量账并不会因稀疏激活自动消失。 |
常见路线包括:训练后量化(PTQ)直接处理已训练模型,如 GPTQ、AWQ;量化感知训练(QAT)在训练中模拟量化,可能恢复低比特精度,但需要额外训练成本,并非必然优于所有 PTQ。系统化解释见 量化算法专题。
| 方法 / 格式 | 是什么 · 怎么读名字 |
|---|---|
| GPTQ | 用近似二阶信息做一次性权重量化;原论文的特定 kernel/模型基准相对 FP16 报告 A100 约 3.25×、A6000 约 4.5×,不能外推为所有框架的固定速度。 |
| AWQActivation-aware | 论文发现只保护约 1% 的显著权重即可显著降误差,并依据激活统计识别、等价缩放相应显著通道以避免低效混精;其 TinyChat 基准相对 Hugging Face FP16 在桌面/移动 GPU 报告超过 3×。 |
| GGUFllama.cpp 文件格式 | 用于保存模型张量与元数据的文件格式,不等于某一种量化算法。Q4_K_M、Q5_K_M、Q8_0 表示不同量化方案;在同一模型与同系列中,更多 bit 通常占用更大、误差更小,但文件还可能混合不同精度,不能只按参数量×bit 精确推大小。 |
| NF4NormalFloat 4-bit | QLoRA 为近似正态分布权重设计的 4-bit 存储类型,常通过 bitsandbytes 配合 LoRA 微调(见 SFT);NF4 不是 bitsandbytes 的同义词,能否高效推理仍看运行时 kernel。 |
| SmoothQuant | 把激活里的离群值难度「迁移」到权重,实现 W8A8(权重+激活都 INT8),曾单节点服务 530B 模型 |
| 手段 | 核心思路 |
|---|---|
| KV CacheKey-Value Cache 键值缓存 | Transformer 推理命脉:缓存历史 token 的 K/V,每生成一个新词不用重算全部历史。但它随上下文线性增长,长文会吃爆显存 |
| PagedAttentionvLLM 的分页 KV 路线 | 借鉴操作系统分页,用 block table 把逻辑 KV 映射到非连续物理块,降低预留与碎片浪费。原论文报告的是包含 PagedAttention、调度与共享机制的 vLLM 整体,在指定模型、负载和同延迟水平下比 FasterTransformer/Orca 吞吐高 2–4×;不是单独打开分页就固定加速。 |
| 投机解码Speculative Decoding | 草稿模型先猜多个 token,目标模型批量验证。标准 speculative sampling 的接受/校正步骤在理论上保持目标分布;实际收益取决于接受率与验证开销。EAGLE 论文在 LLaMA2-Chat 70B 的指定任务/硬件上报告延迟加速 2.7–3.5×,不是所有请求的固定收益。 🔗 原理 + 草稿家族 + 论文拆解 → 《投机解码》专题 |
| 连续批处理Continuous Batching | 不等静态 batch 全部结束,在迭代边界按活跃请求、token 预算和 KV 容量重组批次(也称 iteration-level scheduling)。它常提高利用率和总吞吐,也可能增加排队、单步时间或尾延迟。 |
| FlashAttentionIO 优化的注意力 | 精确、非近似地重排计算,用分块减少 HBM 读写;截至核查日官方已有面向 Hopper/Blackwell 的 FA4 CuTeDSL beta,是否被框架采用取决于版本与硬件。 |
这些优化你不用自己写——推理框架(vLLM、SGLang、TensorRT-LLM、llama.cpp…)已经打包好了。它们各有侧重,下一节专门对比 →
| 技术 | 解决什么 |
|---|---|
| KV Cache 量化 | 长上下文、高并发下 KV 总量可能超过权重,把 KV 降到 FP8/INT8/更低位宽可省容量和带宽,但支持与精度要按模型/引擎验证。 |
| MLAMulti-head Latent Attention | DeepSeek-V2 缓存压缩 latent 等表示;论文相对 DeepSeek 67B 报告 KV Cache 减少 93.3%,是特定架构/基线数字。 |
| Prefix Caching前缀缓存 | 相同 token 前缀命中时跳过重复 prefill。DeepSeek 2024 年磁盘缓存公告在“128K prompt、高复用”条件下报告 TTFT 从 13s 到 500ms,并称历史用户平均省费 50%+;这是其旧模型/服务实测,不是通用保证。 |
| Prefill/Decode 分离Disaggregation | 把两阶段分到不同资源池以独立优化 TTFT/TPOT,同时付出 KV 传输与调度成本。DistServe 论文在其模型、集群和 SLO 组合中报告最多服务 7.4× 请求;不是所有负载都收益。 |
| Chunked Prefill | 把长 prompt 的 prefill 切块,并与其他 prefill/decode 工作共同调度,可减轻长输入对 decode 的头阻塞;chunk 大小和优先级也会改变该请求自己的 TTFT、ITL 与 kernel 效率。 |
这些框架把连续批处理、paged KV、量化和投机解码等能力打包起来,但支持矩阵随版本、模型与硬件变化。可把下面当“候选集起点”,不能当唯一答案:云端通用服务常从 vLLM/SGLang 评估,NVIDIA 深度优化可看 TensorRT-LLM,本地/边缘常看 llama.cpp 或 Ollama;最终要用自己的模型与流量压测。
| 框架 | 定位 | 核心招牌 | 适合谁 |
|---|---|---|---|
| vLLM | 开源推理与服务引擎 | continuous batching、chunked prefill、prefix caching、投机解码、多种 attention/quant backend 与多类并行;具体模型和硬件支持以当前矩阵为准 | 云端 API、生态兼容性与多种后端优先 |
| SGLang | 高性能语言/多模态服务框架 | RadixAttention 前缀复用、结构化输出、连续批处理、PD 分离与多种并行;项目官方称已广泛用于大规模集群 | 共享前缀多、结构化输出、Agent/RAG 与大规模服务 |
| TensorRT-LLMNVIDIA | NVIDIA GPU 优化栈 | in-flight batching、FP8/NVFP4(取决于硬件)、优化 kernel 与 CUDA graph;可与 Dynamo/NIM 等组合 | NVIDIA 单机或分布式部署,愿意针对模型/硬件调优 |
| llama.cpp | 本地/边缘推理的 C/C++ 底座 | GGUF、多种低比特量化、CPU/GPU 混合与多硬件 backend;具体算子支持随平台变化 | 个人离线、边缘、隐私场景 |
| Ollama | 本地模型运行与管理工具 | 模型拉取、进程管理和 HTTP API 集成简单;底层 runner/后端会随平台和版本演进 | 个人电脑、demo、本地联调 |
其他候选包括 LMDeploy(TurboMind/PyTorch 引擎)、TGI(Hugging Face;先进入维护模式,仓库又于 2026-03-21 归档为只读;新项目不应按活跃引擎评估)、MLC-LLM(编译式,覆盖 WebGPU/移动端)、KTransformers(CPU+GPU 异构探索)和 Dynamo。Dynamo 当前官方定位是 vLLM/SGLang/TensorRT-LLM 之上的数据中心编排层,负责 PD 分离、KV-aware routing、多级缓存和扩缩容,不是替代单机 engine。
优化是否有效,不能只截一张“tokens/s”图。先固定请求边界、输入/输出长度分布、到达率、并发、模型 revision、精度、硬件和版本,再同时报告平均值与 P95 / P99。
Time to First Token(首 Token 延迟):客户端通常从发出请求计到收到第一个非空输出 token,包含网络、接入、排队、调度、tokenization、prefill、首 token 采样与 detokenization;工具边界不同必须注明。
TPOT(Time per Output Token)常按 (E2E−TTFT)/(输出 token 数−1)算每请求平均;ITL(Inter-token Latency,相邻 Token 延迟)保留每个相邻间隔,能看抖动和尾部。不同工具也可能混用名词,比较前先核公式。
吞吐要写清是 request/s、input token/s、output token/s 还是 total token/s。Goodput(有效吞吐)只统计同时满足 TTFT、TPOT/ITL 等 SLO 的请求率;过载后总吞吐不降,也可能因尾延迟失控而 Goodput 下降。
至少区分每请求、每百万输入 token、每百万输出 token 与满足 SLO 的成本。自建还要把 GPU 利用率、空闲/扩缩容、CPU、内存、网络、存储、编译、运维和失败重试纳入 TCO(Total Cost of Ownership,总拥有成本)。
压到 INT4 不总是「免费午餐」——长上下文、小语种、复杂推理上可能明显掉点。
缓解:按任务实测、用 AWQ/GPTQ 等更好的量化、关键层保留高精度。
增大 batch、队列或 chunk 常能提高吞吐,却可能恶化 TTFT、TPOT 或尾延迟;优化也可能同时改善两者,但不存在脱离负载的固定最优点。
缓解:按场景定 SLO,分线上/离线策略,并用 Goodput 找过载拐点。
reasoning 模型可能生成大量不可见或可见的思考 token,成本和延迟随预算上升。
例:DeepSeek 官方 R1-0528 模型卡报告其 AIME 2025 pass@1 从 70.0 升到 87.5,同时该评测平均思考长度从约 12K 增至 23K token;这是同一模型版本与评测口径的相关变化,不证明所有任务“多想必然更好”。
缓解:按需启用、控制 reasoning 预算、简单任务路由到更小/非思考模型。
真实流量、上下文长度、并发波动让成本难预估。
缓解:压测、监控、缓存(prompt caching)、按量扩缩。
| 问题 | 答案 |
|---|---|
| 要解决什么 | 让训好的模型又快又省地服务:装得下、跑得快、省得起、扛得住 |
| 省显存/算力 | 量化(FP16→INT4)、蒸馏、剪枝;MoE 省每 token 计算(显存看专家怎么部署) |
| 提速/提吞吐 | KV Cache、PagedAttention(vLLM)、连续批处理、投机解码、FlashAttention |
| KV Cache 是什么 | 缓存历史 K/V 避免重算,是推理命脉;随上下文线性增长,长文会爆 |
| 投机解码 | 草稿先猜、目标模型批量验证;标准接受/校正算法保持目标分布,是否更快取决于接受率和开销 |
| 关键指标 | TTFT · TPOT / ITL · E2E · request/input/output throughput · Goodput · 满足 SLO 的成本 |
| 常用引擎 | vLLM、TensorRT-LLM、SGLang、llama.cpp |
| 最大的坑 | 量化掉点、长上下文 KV 爆显存、延迟与吞吐打架 |
| 价格与经济账 | OpenAI · GPT-4o mini(2024) · DeepSeek 当前 Models & Pricing · DeepSeek V3/R1 生产系统报告(2025) |
| 量化方法 | GPTQ · AWQ / TinyChat · QLoRA / NF4 · SmoothQuant · 长上下文量化评测 |
| FP8 / NVFP4 | DeepSeek-V3 Technical Report · NVIDIA NVFP4 技术说明 · NVIDIA trillion-parameter inference benchmark |
| KV / serving | PagedAttention / vLLM · DeepSeek-V2 / MLA · DeepSeek 磁盘 Context Cache 公告 · DistServe |
| 投机解码 | EAGLE · 站内专题与更多原论文 |
| Attention kernel | Dao-AILab FlashAttention 官方仓库 · FA4 CuTeDSL beta releases(截至 2026-07-14) · 站内机制专题 |
| 框架现状 | vLLM · SGLang · TensorRT-LLM · llama.cpp · TGI 归档仓库 · Dynamo |
| 指标与压测 | NVIDIA NIM LLM Benchmarking 指标定义 · SGLang bench_serving 公式与负载参数 · 站内部署压测实战 |
| 推理速度与 reasoning | Cerebras R1-Distill-Llama-70B 厂商 benchmark · DeepSeek-R1-0528 官方模型卡 |
核查日期:2026-07-14。价格、框架支持矩阵和版本状态会变化;性能数字均保留发布方的模型、硬件、负载或 SLO 限定,不应直接当作你的部署结果。厂商 benchmark 仅代表发布方口径,选型仍需用同一模型 revision、精度、输入/输出分布、到达过程和硬件复测。