基础层 · 网页版

LLM Inference推理服务

训练好的模型怎么又快又省地跑起来:先弄懂推理本身(两阶段与 KV Cache 的核心矛盾),再看单机怎么榨干一张卡、引擎怎么选,然后量化、投机解码、P/D 分离三招提速降本,最后收拢成 SLO(Service Level Objective)、压测与成本账。本页是这一册的网页版,讲义 PPT 见页脚链接。

核实窗口 2026-07-09 至 08-01 引擎版本一节过期最快 · 月度巡检优先

01推理是怎么跑起来的#llminf-anatomy

大模型生成文字是「一次一个 token」的自回归过程,且分成性格完全相反的两个阶段: prefill 读题飞快、吃算力;decode 写字很慢、吃显存带宽。全书一半的优化都在对付这条矛盾。

自回归:为什么一个字一个字往外蹦

模型每次只做一件事:看着前面所有 token 预测下一个,接到末尾再预测下一个。生成 500 字 ≈ 串行跑 500 次前向计算,后一步依赖前一步,天然无法并行。流式输出(Streaming)不是产品设计,是把真实生成过程直接播给你看。训练可以整段并行、推理只能逐 token 串行——这条不对称是推理成为独立工程领域的根源。

两个阶段,性格相反

Prefill 预填充 · 读题 所有输入 token 并行算,一次大矩阵乘 瓶颈:算力受限(Compute-bound) 决定 TTFT(首字延迟) 读题快慢看「理解力」(算力) Decode 解码 · 写字 逐 token 生成,每步搬一遍全部权重 瓶颈:带宽受限(Memory-bound) 决定 TPOT(每字延迟) 「不在算得慢,在搬得慢」——手速(带宽) 考试类比:读题可以一目十行(prefill),答题只能一个字一个字写(decode)——混在同一张卡上必然互相干扰(第 7 节的伏笔)
两阶段的账要分开算:prefill 拼算力利用率,decode 拼显存带宽。

带宽墙:decode 慢在哪

decode 每生成一个 token,理论上要把全部权重读一遍。算一遍就明白瓶颈在哪:

70B 模型 FP16 权重约 140GB
H100 带宽3.35TB/s
光搬权重的上限单请求每秒最多约 24 个 token——算力再强也白搭
此时 GPU 算力利用率往往不足 1%——几百 TFLOPS 的卡在陪显存散步

decode 速度上限 ≈ 显存带宽 ÷ 模型字节数

要么摊薄搬运(批处理),要么减小字节(量化)——全书一半优化都在改这个分子或分母。

「每 token 搬全量权重」是单请求的理想化上界,实际有缓存与批处理摊薄,数量级判断成立。

三个仪表盘与一条时间线

指标由谁决定它是什么
TTFT(Time To First Token,首字延迟)prefill用户等多久看到第一个字
TPOT(Time Per Output Token,每字延迟)decode字往外蹦的快慢
吞吐批处理摊成本的分母
500 token 提示、生成 300 token 的一次调用 decode 300 × ~25ms ≈ 7.5s 网络+排队 ~20ms prefill ~80ms 总耗时 95% 以上花在 decode 这就是优化都围着 decode 转的原因——柱长按实际耗时等比画
批越大吞吐越高、单请求越慢:所有调度设计都是在这条曲线上选点。

谈体验先问 TTFT / TPOT,谈成本用吞吐,不要只问「一条请求几秒」。

02KV Cache 与显存账#llminf-kv-budget

KV Cache「为什么存在」(空间换时间)在 LLM 原理模块第 4 章;本节讲它在服务系统里的新角色:并发的天花板、长上下文账单的主角。「装得下模型」和「服务得了客户」是两回事。

心算公式

每 token 的 KV 字节数 = 2(K 和 V)× 层数 × KV 头数 × 每头维度 × 精度字节。以 Llama-3-70B 为例:

算式2 × 80 层 × 8 个 KV 头(GQA,Grouped-Query Attention)× 128 维 × 2 字节(FP16)
结果320KB / token
记结论主流 70B 级约 0.3MB / token,10 万 token 上下文 ≈ 30GB 显存

注意力架构直接改写成本表

架构KV 占用
无 GQA(64 头全存)是 GQA 的 8 倍
GQA基准
MLA(Multi-head Latent Attention,DeepSeek 系)比 GQA 再省约 10 倍
显存去向怎么算占用(70B FP16 示例)说明
模型权重70B 参数 × 2 字节140GB单卡装不下 → 至少 2 卡张量并行
KV Cache0.32MB/token × 并发 × 长度弹性:8K × 20 并发 ≈ 51GB随并发与对话长度膨胀
激活/缓冲运行时临时张量~5–10GB随 batch 波动
结论2×H100 = 160GB,权重吃掉 140GB剩 ~15GB只够 ~6 路 8K 并发——瓶颈是 KV 不是权重

显存与并发计算器

按上面的心算公式实现(FP16 口径:8B ≈ 0.13、32B ≈ 0.26、70B ≈ 0.32 MB/token)。 MLA 架构(DeepSeek 系)不适用此公式,按官方数据另算。结果是容量直觉,报价以压测为准。

长上下文为什么贵:两头吃钱

Prefill 端计算平方级涨:输入 4K → 128K(32 倍),注意力计算量涨约 1000 倍, TTFT 从零点几秒到几十秒,还独占算力挤压别的请求。Decode 端显存与带宽线性涨: 128K 的 KV ≈ 41GB,不仅占座、每生成一字还扫一遍。「把整本手册塞进上下文」每次提问为 10 万 token 付钱;「RAG 检索相关三页」每次只带几千 token——能检索就别硬塞,这正是「1M 窗口不是 RAG 终结者」的推理侧论据。

窗口是容量,命中是复用

上下文窗口是「一次能装多少」的能力上限,像信用卡额度——额度高不等于每次刷满;缓存命中是「装进去的东西要不要重算」的运行时效率。命中率由 prompt 结构与请求模式决定,不由窗口大小决定:1M 窗口可以 0% 命中,200K 窗口也能 90%+(稳定前缀放开头、别在头部插时间戳)。容量规划也别按会话数算:按「并发活跃请求 × 实际长度」算,任一时刻绝大多数会话离线、占的只是可回收的缓存位;但要给真跑满超长窗口的请求做准入控制(并发配额、长度分级),别让一个 1M 请求把整台机器的批处理能力挤瘦。

命中直接改写账单:命中读取的价约为原价 1 折,而写入缓存要加价(5 分钟档 1.25×、1 小时档 2×)——像租一个带过期时间的储物柜:存要加钱、取很便宜,放太久被 LRU 挤掉就得重算。省下的绝对金额随前缀长度增长,所以多轮 Agent 每轮重发全部历史时的增量缓存命中,正是「1M 窗口 × 多轮对话」在经济上成立的前提。判断一个长上下文 Agent 方案划不划算,先看它的稳定前缀有多长、命中率能做到多少,而不是看窗口标称多大。

03批处理与调度#llminf-batching

把 GPU 利用率从 1% 拉到 40%+ 靠三件套:

连续批处理时间上不空转
PagedAttention空间上不浪费
前缀缓存相同开头只算一次

这是 vLLM 和 SGLang 起家的本钱,也是「同一张卡吞吐差数倍」的全部秘密。

批处理:GPU 是大巴,不是出租车

decode 的主要成本是把权重从显存搬进计算单元;一次搬运顺手算 1 路和算 32 路耗时几乎一样——把并发请求拼进同一批,吞吐近似 ×32 而单路延迟只略增。实测量级:单请求几十 token/s 的卡,批到 32–64 路时整机吞吐能到几千 token/s,单路 TPOT 只慢 20–50%。演进三代:静态批(旅游包车:人齐才发、全程同进退)→ 动态批 → 连续批处理(地铁:每生成一步重新组批,完成的立刻下车、新请求下一步就上车)。

PagedAttention:显存当虚拟内存管

旧做法按「最大可能长度」预留连续显存,实际只用 20%,研究测到 60–80% 的 KV 显存被浪费。 vLLM(SOSP'23)把 KV Cache 切成固定小页(如 16 token/页),逻辑连续、物理任意、页表映射、按需分配——碎片近零、利用率逼近 100%,直接换来 2–4 倍吞吐。赠品:同一份前缀的页可以被多个请求共享(copy-on-write),前缀缓存由此而来。

前缀缓存:提示词结构 = 缓存命中率 = 账单

两条请求开头相同(同一 system prompt、同一文档、同一多轮历史),前缀部分的 KV 完全一样——算过一次就存着,后来者直接命中,省掉整段 prefill,TTFT 常见提速 3–10 倍。 SGLang 的 RadixAttention 把所有请求的 KV 按前缀组织成基数树,自动发现公共前缀、自动共享。最大受益者:多轮 Agent(每轮带全量历史,命中后每轮只算新增几百 token)和固定语料 RAG。把「稳定不变的内容放提示词开头」从写作习惯升级为省钱手段。

Chunked Prefill 与请求状态机

分块预填充(Chunked Prefill)解的是一个调度两难:

如果……后果
长文档 prefill 独占 GPU 几秒批里所有 decode 用户集体卡顿(TPOT 尖刺)
永远让 decode 优先长请求饿死
分块预填充把长 prefill 切成小块(如每块 2K)与 decode 交替执行——长请求慢一点点,换全场平稳,现代引擎默认开启

调度的本质是状态机管理

请求的九种状态分三类走:进行中(排队 / Prefill / Decode)、等待(等 KV 或资源、抢占后待恢复、客户端背压)、终态(完成 / 取消 / 超时失败)。每个状态都要有进入条件、最大驻留时间、可观察事件——缺一个,这个状态就是看不见的黑洞。平均吞吐很好看、P99 排队驻留 8 秒的服务——仪表盘是绿的,用户体感是崩的。

调度验收同时看五项:队列驻留、批内 token、KV 压力、取消抢占率、用户 SLO。

04推理框架图鉴#llminf-engines

引擎是模型的运行时:向下榨硬件、向上暴露 OpenAI 兼容 API 这个事实标准——应用代码一行不改就能在 GPT、Claude、自建 vLLM 之间切换。绑标准接口、不绑具体引擎,是给客户的防锁定承诺。

vLLM v0.32SGLang v0.5.22TensorRT-LLM 1.xllama.cpp / Ollama
定位通用默认引擎前缀共享 / 结构化输出NVIDIA 性能上限本地 / 边缘
绝活PagedAttention · 生态最大RadixAttention · day-0 支持内核级优化 · 新精度首发CPU 可跑 · 零门槛
硬件最广(含国产卡)NVIDIA/AMD 为主仅 NVIDIA几乎任何设备
上手pip 一条命令pip 一条命令较重、需调优一条命令
适用不知道选啥选它Agent/RAG/DeepSeek 系新卡 + 专职团队demo / 隐私 / 离线
你的情况选谁像什么
NVIDIA 新卡 + 极致性能TensorRT-LLM绑定自家赛道的 F1(商业包装为 NIM,按 GPU 收订阅)
共享前缀多 / DeepSeek 系SGLang特定赛道超快的改装车
本地单机 / 桌面Ollama——
其余一律vLLM 起步什么路都能跑的丰田——「它是这个领域的 Linux」

两个别:别拿 Ollama 的体验推断生产容量(无连续批处理,几十并发吞吐差近一个数量级);也别拿 vLLM 的门槛吓退桌面用户——两个世界各自最优。

云上三条路线

路线形态适合谁代价
托管模型 API按 token 付费,开箱即用快速上线、流量不稳单价高、定制少
托管 GPU 自建租 GPU/K8s,自跑 vLLM 等流量稳定、要控制力要运维团队
Serverless GPU按秒计费、自动扩缩波峰波谷明显冷启动延迟

经验阈值:GPU 月利用率稳定站上盈亏线时,自建开始比按 token 买便宜(盈亏线按当期卡价与 API 价代入算)——成本模型见生产化一节。

引擎版本核实 2026-10-20(vLLM v0.32.0 · SGLang v0.5.22、Spec V2 默认开启 · TensorRT-LLM 稳定版 v1.2.1),来源 GitHub releases。这张表是本页过期最快的一处,月度巡检重点。不可外推边界:版本号只说明当期稳定版,不代表功能对等——三家的默认开关不同,跑分对比必须锁同一批参数。

05量化#llminf-quant

量化直接改 decode 公式的分母:字节减半 = 显存减半 + 搬运变快 + 省出的空间喂给 KV 拼更大的批——一份投入三重回报,是性价比最高的单项优化。神经网络几十亿参数的「集体投票」淹没个体噪声,所以砍一半比特能力几乎不变,像无损音乐压成高码率 MP3。

精度每参数70B 占用质量损失地位(2026-07)
FP16/BF162 字节140GB基准训练产物原始精度,推理侧已非默认
FP81 字节70GB~0.5–2%生产默认:Hopper/Blackwell 原生支持,主流引擎一等公民
INT4(AWQ/GPTQ)~0.5 字节~35–40GB~1–5%显存受限场景主力;大模型塞小卡的标准答案
FP4/NVFP4~0.5 字节~35GB优于同位宽整型Blackwell 原生格式,工具链成熟中,尚未大规模生产

方法各管一段:FP8 训练后转换 + 少量校准几乎免费,权重和 KV Cache 都能用(KV 减半 = 并发翻倍);AWQ/GPTQ 用小批校准数据找「重要权重」,是 GPU 端 INT4 主流;GGUF 服务桌面世界(llama.cpp 生态,2–8bit)。共同关键词是校准——拿几百条真实样本「试穿」,不是盲目砍位数。

什么时候收手

损失不均匀:日常对话、摘要、客服几乎无感;数学推理、代码生成、长链条逻辑对低比特敏感, INT4 可能掉 3–5 分甚至更多。反例警示:某场景 INT4 后客服话术无感,但工单里的金额计算开始出错——败在评测集没覆盖算术。两条铁律:①用自己的业务评测集做上线门禁,不只信通用榜单; ②分档使用——面客核心链路 FP8 起步,内部工具再下探 INT4。量化不是「开不开」而是「开到几档」:FP8 近乎白捡,INT4 用评测换显存,再往下要业务拍板。

核实 2026-07-09,来源 2026 量化综述。NVFP4 用块级缩放把量化误差比 MXFP4 降 88%(NVIDIA 数据)——低比特损失的大头来自缩放粒度。不可外推边界:这个 88% 是两种低比特格式之间的量化误差相对改善(厂商自家口径),不是「模型质量只掉一点点」的结论——业务侧仍要拿自己的评测集做上线门禁。

06投机解码#llminf-speculative

量化减小「每次搬多少」,投机解码减少「搬多少次」:小草稿一口气猜 K 个 token,大模型一次前向并行验证——猜对了白赚,猜错了照旧。像秘书起草、老板审签:审批比逐字口述快得多。

为什么「无损」

验证按大模型自己的概率分布逐 token 把关(拒绝采样),数学上可证输出分布与大模型独跑一模一样——不是「差不多」,是分布级相等。猜错的 token 被拒绝重算,损失的只是那次加速机会,不是质量。所以它敢进生产默认配置。

三代草稿与接受率

①独立小模型起草(要维护两个模型、词表对齐)→ ②EAGLE 系:在大模型内部特征上训轻量草稿头, EAGLE-3 配树状草稿成当前主流 → ③MTP(Multi-Token Prediction):DeepSeek 系把多 token 预测头直接训进模型,原生自带。接受率是成败仪表盘:>80% 时整体 2–4 倍加速;草稿总被拒反而白付验证开销。趋势:草稿能力从「外挂」走向「内生」,新模型自带 MTP/EAGLE 头是 2026 常态。

收益边界

低并发、延迟敏感时收益最大(GPU 闲着,验证白嫖算力);高并发吃满算力时收益缩水甚至为负。代码、结构化文本接受率高,天马行空的创意写作接受率低。典型配置:在线聊天服务开(保体验)、离线批量任务关(保吞吐),同一集群两套配置。一句话:投机解码是「拿闲置算力换延迟」的交易。

推理模型:优化从可选项变刚需

RLVR 训出的推理模型靠「先想后答」提升解题力——同一个问题,普通模型答 300 token,推理模型「想」5000 再答 300:decode 负载 ×17,且全部发生在最慢最贵的那段。行业预测 2030 年推理占 AI 总算力 ~75%。这就是 2025–2026 推理优化集中爆发的原因:投机解码默认化、P/D 分离标准化、NVIDIA 专门发布 Dynamo。售前叙事线:客户要更强的推理能力 → token 消耗数量级上涨 → 推理优化直接决定这件事经济上可不可行。

核实 2026-07-09,来源 2026 实测综述(vLLM 报告 EAGLE-3 最高 ~2.5×)。三板斧正交且叠乘:FP8 + 连续批处理 + EAGLE 组合后,同硬件吞吐可达朴素部署的 5–10 倍。不可外推边界:两个倍数都是特定负载与硬件下的实测:投机解码的收益强依赖草稿命中率,长输出场景收益大、短问答几乎无感;5–10 倍是三招叠乘的上限估计,不是默认可得。

07P/D 分离与分布式#llminf-disagg

单卡优化到头,战场转向集群:装不下就切开跑(并行),prefill 和 decode 互相干扰就分开跑(P/D 分离),KV Cache 金贵到要建分层仓库(缓存池)。这是「千并发怎么架构」的标准答案——但规模不够时别用。

推理侧三种并行

张量并行 TP(一层切给多卡,单机内低延迟首选,NVLink 内不出机)、流水线并行 PP(按层分段,跨机用)、专家并行 EP(MoE 的专家分布到多卡)。DeepSeek 系旗舰(671B 总参/37B 激活)权重远超单机 8 卡容量,生产普遍 TP+EP、几十张卡为一个推理单元——「部署单元」从单卡变成集群是 2026 年旗舰模型常态。MoE 激活少省的是每 token 计算量,但所有专家权重都要装在显存里待命:省的是电费,不是卡数。

P/D 分离:前厅后厨彻底分区

prefill 是算力密集的「突发大活」,decode 是带宽密集的「持续细活」,混跑时两个 SLO 互相绑架——chunked prefill 只是止痛药,根治是分池部署:

prefill 池 算力密集 · 专职读题产出 KV 突发大活 decode 池 带宽密集 · 逐 token 生成 持续细活 KV 经高速网络快递 NIXL 这类传输层 两池可用不同型号 GPU、按各自负载独立扩缩
学术源头 DistServe(OSDI'24)证明分离可数倍提升 goodput;NVIDIA 口径 Dynamo 在 Blackwell 跑 DeepSeek-R1 吞吐最高 7×(厂商基准,理解量级即可)。

代价是 KV 搬运的网络开销:请求短、KV 小时不划算——它是「大集群 + 长上下文」的解药,不是万能默认。

Mooncake:KVCache 从私产变公共资产

Kimi 面对海量长文档对话,把整个推理平台围绕 KVCache 重构(FAST'25 最佳论文):P/D 分池各自调度;全集群闲置的显存、内存、SSD 统一成分布式 KVCache 池,算过的前缀全集群共享复用;过载时按 SLO 主动拒载保住已接请求。真实负载下吞吐提升最高 5 倍级——「缓存换算力」在生产规模被验证。这是推理架构从单机思维到平台思维的分水岭。

方案出品方形态一句话定位
NVIDIA Dynamo v1.5.1NVIDIA开源编排层(1.0 于 2026-03 GTC GA) vLLM 等引擎之上做 P/D 分池 + KV 感知路由;NVIDIA 全家桶首选
llm-d红帽/谷歌/IBM 等K8s 原生开源项目 P/D 分离、KV 感知调度做成 K8s 组件;已有 K8s 平台团队的自然选择
Mooncake(开源版)月之暗面等KVCache 传输/存储组件 分层 KV 池参考实现,常与 vLLM/SGLang 组合
各云托管推理各大云厂商托管服务 上述能力逐步内置——客户不想自己拼就买这个

配套拼图是 KV 分层存储(显存→内存→SSD):热前缀留显存、温的下沉,命中即免 prefill——「存储换计算」。什么时候不用:客户规模没到「多机集群 + 长上下文」之前,单机 vLLM + chunked prefill 足够;过度架构是减分项,能讲出「什么时候不用」比「什么都用」更显专业。

核实 2026-10-20(Dynamo 稳定版 v1.5.1,2026-10-07),来源 NVIDIA 官方博客 / GitHub releases;Mooncake 见 arXiv 2407.00079。不可外推边界:分布式推理的收益随规模才显现,论文与厂商博客给的都是大规模场景的数字;小集群引入会先付一笔运维成本。

08生产化与排错#llminf-production

SLO 是推理服务的合同语言:先问场景,再报数字;离线任务只谈吞吐与单位成本。给客户的容量数字,四份证据(负载、性能、质量、成本)齐了再签。

场景TTFT 目标(P90)TPOT 目标备注
在线聊天/客服< 1s(力争 500ms)30–50 token/s体感生死线:首字慢即「卡」
代码补全(IDE 内)< 300ms越快越好对 TTFT 最苛刻的场景
Agent 工具链(多步)单步 < 2s适中即可步数多,累计延迟才是体验
文档生成/摘要< 3s 可接受20–30 token/s用户预期本来就长
离线批处理不设不设只谈吞吐与单位成本,夜间跑满

人的阅读速度约 5–10 token/s——TPOT 超过它太多,对阅读场景是浪费;同一集群分服务档,在线池保延迟、离线池吃剩余算力(错峰混部提利用率 20–30 个百分点)。

SLO 还得配一句:扛不住的时候先关哪扇门

推理服务的过载不长「宕机」的样子,它是全场一起变慢:显存里的 KV 位置被抢光,新请求排队、在跑的被抢占重算,吞吐曲线还挺好看,用户体感已经崩了。所以承诺容量时要连降级一起承诺,按这个顺序放闸:①准入控制——并发配额加按长度分级,超长请求单列,别让一个跑满窗口的请求把整机批处理能力挤瘦;②让离线让路——在线池保延迟,本来就吃剩余算力的离线池在高峰期把算力交出来;③主动拒载——按 SLO 拒掉新请求、保住已经接住的那批(Mooncake 在生产规模验证过的做法)。唯一不能选的是无限排队:队列越长越是把所有人一起拖垮,所以每个状态都要有最大驻留时间。

压测与成本心算

压测三口诀:真实流量、分位延迟、goodput 口径——用 vllm bench serve / AIPerf (现 v0.13.0,接棒 GenAI-Perf)这类懂 token 级计时的压测器,流量画像照生产日志配;看 P50/P90/P99 TTFT、P90 TPOT、整机吞吐、goodput(满足 SLO 的那部分吞吐);画「并发-延迟」曲线找拐点,报价按拐点的 70–80% 留余量。三类假数字要拦:只报均值不报 P99、拿饱和吞吐当可用容量、短输入压测冒充长文档场景。

要签的不是一个吞吐数,是四份证据:负载——流量画像照生产日志配,短问答和长文档分开报;性能——P50/P90/P99 的 TTFT、P90 的 TPOT,容量口径用 goodput 不用裸吞吐;质量——量化档、投机解码这些优化开关都要过业务评测集门禁(见第 5 节);成本——每百万 token 单价。四份必须绑同一个发布组合(模型、精度档、引擎参数、流量画像)一起出:其中任何一项改了,这份报告就作废——这就是「同口径对比」在推理侧的具体含义。

成本公式:每百万 token 成本 ≈ GPU 集群时租 ÷ 每小时产出。

算一遍数
配置2×H100 跑 70B FP8,时租按当期价(H100 级 neocloud 档 $2.89–3.99/卡·时)
压测产出按实测吞吐代入(旧「~3000 token/s」无一手实测源,已撤)
折算每百万 token 成本 = 时租 ÷ 每小时产出
托管 API 两档价开源 70B 级约 $1 / 前沿旗舰 $12–50(输出)

粗看自建便宜,但要摊利用率、运维人力、峰值冗余——盈亏线按当期卡价与 API 价代入算,不背固定区间。

H100 级时租

$2.89–3.99 / 卡(neocloud 档)

开源 70B 托管

约 $1 / 百万 token

前沿旗舰

$12–50 / 百万输出 token

2026-09-05 量级参考,报价以实测为准。

降本组合拳:按序叠加

招式收益量级代价/前提机制在
连续批处理 + PagedAttention吞吐 2–4×用现代引擎即免费自带第 3 节
Prefix CachingTTFT 3–10×(命中时)提示词结构要配合第 3 节
FP8 量化(权重+KV)显存减半、吞吐 +50–100%评测门禁;损失 0.5–2%第 5 节
投机解码(EAGLE-3)延迟 2–2.5×低并发收益大;需匹配草稿头第 6 节
P/D 分离 + KV 池goodput 数倍(大集群)多机 + 长上下文才划算第 7 节
错峰混部在线/离线利用率 +20–30pp调度与隔离要做好本节

叠加不是简单相乘,但「现代引擎 + FP8 + prefix caching」三件套让多数场景的单位成本先降一半,是性价比最高的起手式。自建还是托管,三问定方向:数据能不能出去?月 token 量到没到量级?有没有人运维?——别替客户选立场,把两条路线的月账单摆出来,数字比立场有说服力。

按症状排错

这张表是网页版把全书速查从「按章翻」改成「按症状查」——机制都在上面各节,无新事实。

症状最可能的原因先试什么
首字慢(TTFT 高)输入长、prefill 排队,或前缀没复用 prefix caching(稳定内容放开头);长知识改 RAG 检索;chunked prefill 参数
逐字忽快忽慢(TPOT 尖刺)长文档请求的 prefill 插队阻塞 确认 chunked prefill 开启、调块大小;规模够大上 P/D 分离
并发一高就排队剩余显存装不下更多 KV——瓶颈是 KV 不是权重 FP8 权重 + FP8 KV 腾显存;用上方计算器复核容量;超长请求做准入控制
吞吐低、GPU 利用率低没拼上批(流量少或引擎不带连续批处理) 换 vLLM/SGLang 类现代引擎;离线任务错峰填谷
账单高但延迟达标全场开满档(旗舰模型 + 满预算 thinking) 按难度分流;聊天开投机解码;核缓存命中率——三件套按序过一遍

SLO 与成本量级核实 2026-07-09、压测工具 10-20(AIPerf v0.13.0),来源 pypi/GitHub 与 2026 年中多方评测量级归纳(讲义中已标注「参考」口径)。

09现场高频追问#qa

只收会改变某个决定的问题——会改变技术方案、风险判断、验收方法、对客沟通或下一步行动。

每题标出它加入本题库的日期:2026-07-09 的来自讲义首版对练页,2026-07-12 的来自引擎版本复核,2026-07-20 的来自容量规划增补,2026-07-23 是按客户交锋场景补的三题(上线验收 / 扛不住怎么办 / 已经自己跑起来了)。

为什么模型回答是一个字一个字往外蹦?能不能一次出全文?2026-07-09

这是工作原理:每个词都依赖前面所有词算出来,本质串行,任何厂商都一样。流式输出反而是优点——首字几百毫秒就到,用户不用对着转圈等。

这题是推理话题的入口:答清自回归,后面 TTFT/TPOT、批处理、投机解码的讨论才有地基。

下一步 演示永远开流式;把对方的体验诉求翻译成 TTFT/TPOT 两个可测数字。

依据 推理是怎么跑起来的

我买了 8 张卡,为什么并发一高就排队?显存明明够装模型。2026-07-09

装下权重只是入场券,真正的座位是剩余显存里的 KV Cache:每路对话占一段、还随轮次膨胀。并发上限 ≈ 剩余显存 ÷ 每请求 KV。

「装得下模型 ≠ 服务得了客户」是本册最值钱的一句话——显存账本三大块里,瓶颈几乎总在 KV 不在权重。

下一步 用计算器按对方真实场景(模型/上下文/ 并发)当场算这笔账,再谈加卡还是量化。

依据 KV Cache 与显存账

128K 长上下文这么好,为什么按输入收费还这么贵?2026-07-09

长输入两头吃资源:读入时计算量随长度平方涨,读完后每 10 万 token 还占约 30GB 显存直到对话结束。定价反映真实成本——长知识用 RAG 检索,别整本塞窗口。

成本结构讲清了,「窗口大小竞赛」的营销话术就失效了——这题直接改变客户的架构判断。

下一步 对必须长驻的前缀上 prefix caching 只付一次;其余改检索喂料,两条路的月账各算一遍。

依据 长上下文为什么贵

1000 个用户都开 1M 窗口,要备多少张卡?2026-07-20

按「并发活跃请求 × 实际长度」算,不按「会话数 × 窗口上限」算——任一时刻绝大多数会话离线,占的只是可回收的缓存位。窗口上限是信用卡额度,不是预扣款。

把标称窗口当预留资源,容量估算会虚高几个数量级——这是容量规划里最贵的一个误解。反面也要防:一个真跑满 1M 的请求 ≈ 几十路普通请求,要做准入控制。

下一步 拉对方生产日志里的「并发活跃 × 实际长度」分布,用计算器出容量表,超长请求单列配额。

依据 窗口是容量,命中是复用

vLLM 和 SGLang 到底选哪个?给句准话。2026-07-12

看流量画像:请求间共享前缀多(多轮 Agent、固定模板、RAG 固定语料)或主力是 DeepSeek 系 → SGLang;否则 vLLM——生态最大、坑最少。两者 API 兼容,切换成本低。

引擎选型的判据是流量画像不是排行榜——这也是「绑标准接口、不绑引擎」防锁定承诺的底气。

下一步 拿真实流量各压一周再定;压测口径按第 8 节三口诀来。

依据 推理框架图鉴 · src-engines

量化会不会把模型「变笨」?我们业务敢用吗?2026-07-09

FP8 校准后通用任务损失约 0.5–2%,日常场景基本无感,是 2026 年生产默认。稳妥做法:拿业务评测集做上线门禁,通过就用——损失可测、可控,不是赌博。

损失不均匀才是要点:对话无感、算术翻车的反例说明,评测集覆盖面比「量化损失多少」这个笼统数字更重要。

下一步 面客核心链路 FP8 起步、内部工具再下探 INT4;评测集里补上数字计算类用例。

依据 量化

投机解码听着像「猜答案」,会不会导致质量下降?2026-07-09

不会。草稿只是候选,每个 token 都经大模型按自己的分布验证,数学上保证输出分布与大模型独跑完全一致——猜错的被拒绝重算,损失的只是那次加速机会。

「无损」是分布级相等不是「差不多」——这一点讲透,客户对默认开启的顾虑就消了。压测只有 1.5× 而非宣传 3×,通常是并发高或文本难预测,不是坏了。

下一步 在线聊天开、离线批量关;用接受率指标(引擎 metrics 端点)确认草稿头真的生效。

依据 投机解码

我们要支撑几千并发,直接堆卡行不行?2026-07-09

堆卡解决容量,不解决干扰:prefill 和 decode 混跑时 SLO 互相绑架,堆再多也有尖刺。正确路径分层:先单机榨干(批处理+量化),再分池部署独立扩缩——同样的卡数,架构对了吞吐差数倍。

「加卡」是最贵的默认答案;组合拳表里前三招几乎免费。P/D 分离只在「大集群 + 长上下文」才划算——会说「不用」更专业。

下一步 按组合拳表从上往下过一遍现状,标出还没吃到的免费收益,再谈扩容。

依据 P/D 分离 · 降本组合拳

你们能承诺多少并发?2026-07-09

并发本身不是好指标——同样 1000 并发,128 token 短问答和 50K 长文档差百倍资源。按流量画像承诺三件事:TTFT/TPOT 的 P90 SLO、goodput 容量、超量时的降级策略。

裸并发数是最容易被拿来对比也最容易失真的数字;goodput(满足 SLO 的吞吐)才是能签进合同的口径。

下一步 把四份证据(负载/性能/质量/成本)绑同一发布组合做一轮压测,容量表按拐点七八成报。

依据 生产化

别家报价比你们便宜一半,是不是你们黑?2026-07-09

先对口径:同一精度(FP8 还是 INT4)、同一 SLO(P99 还是均值)、同一流量画像(短问题还是长文档)?三项对齐后价差通常就解释清了。

推理报价的三类假数字(均值掩尖刺、饱和吞吐当容量、短输入冒充长文档)都会让「便宜一半」凭空出现——识破口径差是这一册的看家本领。

下一步 提议按对方真实流量做一次同口径对比测试,用 goodput 谈单价。

依据 压测与成本心算

你们说的性能,拿什么证明?这个 POC 怎么算通过?2026-07-23

验收标准事前签、不事后争,而且签的不是「吞吐多少 token/s」这一个数,是四份证据绑同一个发布组合:照客户生产日志配的流量画像、P90 的 TTFT/TPOT 与 goodput 容量、业务评测集的质量门禁、每百万 token 单价。模型、精度档、引擎参数、流量画像任改一项,这份报告就得重跑。容量按「并发-延迟」曲线拐点的 70–80% 报,不按压出来的最大值。

推理压测最容易在口径上翻车,三类假数字当场就要拦:只报均值不报 P99、拿饱和吞吐当可用容量、短输入压测冒充长文档场景。拐点之后吞吐还在涨、延迟已经不可用,拿那一段当承诺就是给自己埋雷——所以能签进合同的口径只有 goodput,不是裸吞吐。

下一步 POC 启动会上先定三样:照生产日志配的流量画像、签字的 P90 SLO、质量门禁用的业务评测集;压测器用懂 token 级计时的(vllm bench serve / AIPerf),通用 HTTP 压测工具报的 QPS 交不了差。

依据 压测与成本心算 · 调度验收看哪几项

高峰期扛不住了会怎样?会不会整个服务瘫掉?2026-07-23

不会瘫,但会先变慢——这是推理服务和普通 Web 服务最不一样的地方:它不是一刀切地拒绝服务,而是显存里的 KV 位置被抢光后全场一起排队,被抢占的请求还要重算。所以「扛不住」要连降级一起写进 SLO,按序放闸:先准入控制(并发配额加按长度分级,超长请求单列),再让离线让路(在线池保延迟,离线池把算力交出来),最后主动拒载——按 SLO 拒新请求、保住已经接住的那批。唯一不能选的是无限排队。

客户脑子里的「扛不住」是宕机,推理服务的形态却是劣化,而且劣化期间仪表盘往往还是绿的——平均吞吐很好看、P99 排队驻留 8 秒的服务,用户体感已经崩了。承诺并发时把降级策略一并说清,是这个承诺听起来不心虚的唯一办法。

下一步 让对方按调度验收那几项(队列驻留、批内 token、KV 压力、取消抢占率、用户 SLO)建监控,再把「超量时先拒谁、拒多久、谁有权拒」写成一条能演练的规则——演练过一次,事后就不用解释。

依据 扛不住的时候先关哪扇门 · 调度的本质是状态机 · Mooncake

我们自己用 Ollama 已经跑起来了,为什么还要再上一套?2026-07-23

先接住这句:那一步的价值是真的——模型能力、提示词、业务链路都验过了,而且因为大家都是 OpenAI 兼容 API,这些资产一行不改就能接过来。要换的只有运行时那一层,原因很具体:桌面引擎没有连续批处理,单人试用和多人并发根本不是一条曲线——一个人用体感很好,几十并发时整机吞吐差近一个数量级。这不是它做得差,它本来就是为本地单机优化的,两个世界各自最优。

这题答成「你们那套不行」,就把客户自己的技术团队推到了对立面——而他们做的这个验证,恰恰是项目能立项的原因。改叙成「验证阶段已经完成,进入服务阶段该换运行时」,对方从阻力变成盟友。判据留一句可复述的:演示用什么都行,容量结论只认带并发的压测。

下一步 拿他们现在这套跑一次并发压测(哪怕只压到 32 路),和现代引擎同口径对一次——差距是自己跳出来的,不用你说。

依据 推理框架图鉴 · 批处理与调度

11来源与核实#sources

本页时效性数字均经联网核实后写入,完整登记(事实 × 核实日期 × 信源)见本模块 MANIFEST。核实窗口 2026-07-09 至 2026-08-01。引用任何数字前先核日期。

来源 ID信源支持什么不能支持什么
src-enginesGitHub releases / 2026 对比评测 四引擎版本号与格局(2026-08-01)版本号周级过期;对比结论依赖负载画像
src-quant2026 量化综述(vrlatech/sesamedisk) 精度谱系地位与损失量级具体任务的损失要用业务评测集实测
src-spec2026 实测综述(spheron/sesamedisk) 投机解码加速量级与接受率口径加速比不能脱离并发与文本类型外推
src-dynamoNVIDIA 官方博客 / GitHub releases Dynamo 版本与 GA 时间线「最高 7×」为厂商基准,不能当生产承诺
src-mooncakearXiv 2407.00079(Mooncake)等 P/D 分离的生产验证与收益量级论文负载与你的负载不同,量级参考
src-aiperfpypi.org/aiperf / GitHub 压测工具换代(AIPerf 接棒 GenAI-Perf)不涉及具体容量结论
src-cost2026 年中多方评测量级归纳 时租/吞吐/盈亏线的量级直觉不能当报价——各云差异大,以实测与当期价格为准