---
name: llm-inference-serving
description: 推理服务深挖：投机解码、量化与算子、分布式推理与 PD 分离、MoE 服务、前缀缓存、约束解码、容量。
keywords: [推理服务, inference serving, 投机解码, speculative decoding, 量化, fp8, int4, 张量并行, pd 分离, disaggregation, moe 推理, expert parallel, 前缀缓存, prefix caching, 约束解码, guided decoding, 长上下文推理]
layer: detail
domains: [ai-infra, ai-agent]
---

## 面试官在意什么

这本是 ai-infra 的推理那一段往下挖：把一个模型的吞吐与延迟再抬一档要动哪些机制。面试官要算账（接受率、并行通信量、KV 传输带宽、量化后的精度差）和要故障（PD 分离后 TTFT 反而变差、MoE 专家不均、量化后某类请求崩）。应用岗读它是为了知道自己的 agent 每回合的首字延迟和缓存命中从哪来。

## 项目 / 实习怎么深挖

简历上出现下面这类经历时从哪里切、追什么。追到候选人能说出机制、数字的来源与一次真实的故障或取舍才算实；只有框架名与结论、说不出自己那一段的，记为危险信号。通用的追问方法见 project-deep-dive。

- 简历出现投机解码 → 追草稿怎么产生、接受率、什么分布下加速消失、和 batch 的冲突
- 简历出现量化 → 追方法与量化对象、精度回归、kernel 来源、实测吞吐
- 简历出现多卡 / 多机推理 → 追并行方式、通信占比、PD 分离有没有做、掉卡表现
- 简历出现 MoE 推理 → 追专家并行与 all-to-all、负载不均、显存放法
- 简历出现前缀缓存 / 多轮 → 追命中率、驱逐策略、什么请求模式命中低
- 简历出现结构化输出 / 约束解码 → 追怎么实现、对吞吐的影响、和采样的冲突

## 常见失守与危险信号

- 投机解码：只会"小模型猜"；说不出接受率决定加速比；不知道 batch 大时收益消失
- 量化与算子优化：量化只知道"变小变快"；不做精度回归；写 kernel 不看 profiler
- 分布式推理与并行：张量并行说不出通信在哪；不知道 PD 分离解决什么、代价是什么
- 长上下文与显存：只答"加显存"；不知道 offload 与 KV 压缩的取舍
- PD 分离与 KV 传输：不知道 KV 怎么在实例间传、带宽要多少；不知道什么规模才值得分
- MoE 服务：只答"选专家"；不谈 all-to-all 与负载不均；不知道专家怎么放显存
- 前缀缓存与多轮：只答"缓存前缀"；说不出命中条件；不知道系统提示放前面的意义
- 约束解码与采样：不知道结构化输出在推理侧怎么实现；不知道它对吞吐的影响
- 容量规划：不会从 SLO 反推卡数；没有峰谷弹性方案

## 常考主题清单

只列名字、阶梯与答实的标志，作"问到哪一层算实"的参考；问哪些、问几道由这份 JD 与这份简历定，不是配额。

### 投机解码
- 阶梯：为什么 decode 阶段有"白算"的空间 → 草稿模型 / n-gram / 自草稿（Medusa、EAGLE 类）各怎么产生候选，验证怎么一次前向完成 → 加速比由接受率与草稿长度决定，什么分布下接受率低；batch 大时为什么收益消失 → 验证的显存与算力成本、和 continuous batching 的冲突、什么业务值得开
- 答实的标志：能写出加速比与接受率的关系；知道输出分布不变的保证来自拒绝采样；有实测的接受率与不同 batch 下的收益曲线

### 量化与算子优化
- 阶梯：权重量化与激活量化的难点差在哪（离群值）→ GPTQ / AWQ / SmoothQuant / FP8 各解决什么，KV cache 量化的收益 → 量化后精度怎么回归（评测集、任务、长尾），kernel 不匹配时为什么反而变慢 → FlashAttention 省的是什么（分块 + 在线 softmax 减少显存读写）、算子融合的收益边界、什么时候该自己写 kernel
- 答实的标志：区分 PTQ 与 QAT；量化前后有评测对比；能说出 FlashAttention 的分块思路；写过或读过一个 kernel 并能讲 profiler 里前后的变化

### 分布式推理与并行
- 阶梯：单卡放不下怎么切：张量并行、流水并行、专家并行各切什么、通信在哪一步 → 张量并行为什么一般不跨机、流水并行的气泡、通信与计算的重叠 → MoE 的路由、all-to-all 开销、专家负载不均与容量因子；PD 分离（prefill 与 decode 分到不同实例）解决什么、KV 怎么传、代价是什么 → 多机部署的故障：掉卡、慢节点、NCCL 超时怎么表现与定位
- 答实的标志：能说出每种并行的通信量与适用层；知道 PD 分离对 TTFT 与 TPOT 各自的影响；MoE 有负载均衡的具体手段；有一次多机故障的时间线

### 长上下文与显存
- 阶梯：长上下文的显存与延迟各随长度怎么增长（attention 的计算 vs KV 的存储）→ 分块 attention、序列并行、KV 换出各解决什么 → 128k 上下文的 prefill 要多久、怎么让首 token 不等太久（chunked prefill、缓存前缀）→ KV 压缩与滑动窗口的精度代价，什么业务能接受
- 答实的标志：能算长序列下 KV 与激活的显存；知道 prefill 时长与序列长度的关系；有长上下文下的实测延迟与取舍

### PD 分离与 KV 传输
- 阶梯：为什么把 prefill 与 decode 放到不同实例：两阶段瓶颈不同、互相干扰 → KV 从 prefill 实例传到 decode 实例怎么做（RDMA、传输库）、带宽要多少、传输时延占多少 → PD 分离后 TTFT 或 TPOT 反而变差怎么排查；两池比例怎么定 → 什么规模、什么请求分布才值得分；和单实例 chunked prefill 的比较
- 答实的标志：能算 KV 传输量与带宽需求；知道两池比例按负载调；有分与不分的实测对比或推演

### MoE 模型的服务
- 阶梯：MoE 为什么推理便宜但服务难 → 专家并行的路由、all-to-all 通信、容量因子与丢弃 → 专家负载不均怎么表现与处理；注意力与专家层分开并行的动机 → 显存怎么放专家（全放、分片、offload）；MoE 与稠密模型在同等算力下的吞吐比较
- 答实的标志：能说出 all-to-all 的开销所在；有负载均衡的具体手段；知道注意力与专家分离并行解决什么

### 前缀缓存与多轮对话
- 阶梯：前缀缓存的命中条件（逐 token 前缀一致）与失效 → 基数树管理与块级共享的差别；多租户下的隔离 → 系统提示、few-shot、工具定义放前面为什么重要；agent 多回合怎么设计上下文才命中 → 命中率怎么测、驱逐策略、对 TTFT 的实际收益
- 答实的标志：有命中率数字与提升手段；知道什么请求模式命中低；能说出应用侧要配合什么

### 约束解码与采样策略
- 阶梯：结构化输出（JSON、schema、语法）在推理侧怎么实现（掩码、状态机、编译后的约束）→ 约束解码对吞吐与延迟的影响、和投机解码的冲突 → 温度、top-p、重复惩罚各改变什么，对结构化输出的影响 → 服务端约束与应用端修补的分工
- 答实的标志：知道约束解码的实现原理与开销；能说出采样参数对格式稳定性的影响；有服务端与应用端分工的判断

### 容量规划与弹性
- 阶梯：从 SLO（TTFT、TPOT、并发）反推需要多少卡 → 请求分布（输入长、输出长、并发）对容量的影响；峰谷怎么弹 → 超载时准入控制、降级（换小模型、截断上下文）与限流放哪层 → 成本模型：每千 token 成本随利用率怎么变
- 答实的标志：能给出一次容量估算的过程；有峰谷弹性方案；知道利用率是成本分母
