路线图

面试 · 系统串联题

星辉 2026-07-02 阅读 4 min 828 字 路线图
面试 · 系统串联题 封面

更新:2026-07

这份和 1-6 类题的关系:1-概念 / 2-对比 / 3-原理 / 4-场景 / 5-方案 / 6-岗位分支是"原子题"——一问一答,各考一个点。这份是综合锚点题,凌驾于题型之上:每道题都是真实面试里考官会抛的"大题",一问能炸开成一整棵知识树,顺着追问能问 20 分钟。考前重点刷这一份,它把前面的零件串成整机。

判断一道题够不够格进这份的三条标准:① 高杠杆(真实生产反复用)② 高频必问 ③ 能串联一连串知识点。


锚点题 1:推理服务 TTFT 高、吞吐(tokens/s)上不去,完整调优链路怎么走?#

为什么是锚点题:这是 Inference 岗的"总题"。它逼你先把"延迟"和"吞吐"拆开,再一路串到 KV Cache、batching、PD 分离、量化、调度——几乎覆盖性能优化整章。答得清不清楚,直接分辨"用过 vLLM"和"读过 vLLM"。

会串出的知识点地图

text
先分清两个指标(最关键的第一步)
├── TTFT(首 token 延迟)—— prefill 阶段,算力密集(compute-bound)
└── TPOT(每 token 延迟)—— decode 阶段,访存密集(memory-bound)
    ↓ 对症下药,不能一锅端
TTFT 高 → prefill 慢
├── prompt 太长 / batch 里长短请求混排(队头阻塞)
├── chunked prefill(把长 prefill 切块,和 decode 交错,避免饿死 decode)
├── prefix cache / RadixAttention(系统提示、多轮、RAG 前缀复用,命中直接跳过 prefill)
└── PD 分离(prefill 与 decode 拆到不同 GPU,互不干扰)
TPOT 高 / 吞吐低 → decode 效率低
├── KV Cache + PagedAttention(显存分页,减少碎片,提高并发)
├── continuous batching(动态插拔请求,GPU 不空转)—— 提吞吐第一杠杆
├── batch 打不满 vs 打太满(延迟/吞吐权衡)
├── 量化(FP8/INT8/FP4,权重和 KV 都能量化,省显存换更大 batch)
└── 投机解码(EAGLE,一次出多 token,且拒绝采样保证不掉质量)

考官追问链

  1. TTFT 和 TPOT 有什么区别?为什么优化手段不一样?(考"分清 compute-bound vs memory-bound")
  2. continuous batching 为什么能提吞吐?和静态 batching 差在哪?
  3. 为什么 batch size 越大不一定越好?(吞吐↑但单请求 TTFT/TPOT 可能↑,且显存吃紧)
  4. 你怎么定位到底卡在哪?(看 vllm:gpu_cache_usage_perc、queue 长度、GPU 利用率、prefix cache 命中率)
  5. 上了优化怎么证明有效?(压测 TTFT/TPOT/tokens·s 的 P50/P99,别只看均值)

参考答题骨架

  • 第一句先分诊:「先看是 TTFT 高还是 TPOT 高,两者是不同瓶颈」——这句话就是及格线。
  • TTFT 高:查 prompt 长度分布 → 开 chunked prefill 防长请求阻塞 → 有共享前缀开 prefix cache → 量级再大上 PD 分离。
  • 吞吐低:先确认 continuous batching 开了没 → 看 KV 显存够不够撑更大并发(不够就量化/降 gpu-mem-util 余量重算)→ batch 打满没 → 再考虑投机解码。
  • 全程用指标说话:GPU 利用率、KV Cache 使用率、queue wait、prefix 命中率、P99 延迟。

踩坑 / 加分点

  • 「GPU 利用率 90% 就是好」是错觉——decode 是访存密集,算力利用率高不代表吞吐高,要看 tokens/s 和显存带宽。
  • 加分:主动区分「离线批处理(吞吐优先,可大 batch)」vs「在线服务(延迟优先,SLO 约束 batch)」——同一套引擎两种调法。
  • 加分:指出 continuous batching 是 vLLM 吞吐的根,PagedAttention 是它能高并发的显存基础,两者关系别说反。

锚点题 2:给你一个万亿参数的 MoE 大模型和一批 GPU,怎么把它服务化?#

为什么是锚点题:2026 主流大模型(DeepSeek-V4、Kimi K2 等)全是 MoE,且单卡根本放不下。这题一次考完「多卡并行 + MoE 专属难题 + 引擎/编排选型」,是大模型部署的分水岭题。

会串出的知识点地图

text
第一关:单卡放不下,怎么切?(四种并行分清)
├── TP 张量并行 —— 单层权重切到多卡(卡间通信重,走 NVLink)
├── PP 流水线并行 —— 不同层放不同卡(有 pipeline bubble)
├── EP 专家并行 —— MoE 的 expert 分到多卡(MoE 专属)
└── DP 数据并行 —— 多副本分摊请求
第二关:MoE 专属难题
├── 总参数大(1.6T)但激活小(~49B)—— 显存要装全部 expert,算力只算激活的
├── 专家路由不均衡 —— 热门 expert 过载、冷门空闲
├── EPLB(专家并行负载均衡,统计激活重排 expert)
└── MLA(Multi-head Latent Attention,压 KV,配合长上下文)
第三关:引擎与编排选型
├── 引擎层:SGLang(DeepSeek 系最快)/ vLLM(生态广)
└── 编排层:NVIDIA Dynamo / llm-d(多节点、KV-aware 路由、动态 GPU 分配)

考官追问链

  1. TP / PP / EP / DP 分别切的是什么?为什么大模型要组合用?
  2. MoE 明明只激活一小部分参数,为什么显存还是要装下全部 expert?
  3. 专家路由不均衡会怎样?EPLB 怎么解决?
  4. 引擎(vLLM)和编排层(Dynamo)是什么关系?为什么需要两层?
  5. 怎么估算这个模型至少要几张卡?(权重 + KV Cache + 激活 + 余量)

参考答题骨架

  • 先算账:万亿 MoE 就算 FP8 也要上 TB 级显存装全部 expert,单卡不可能 → 必须多卡,先 TP 后 PP,MoE 层用 EP。
  • MoE 难点讲透:显存按总参数、算力按激活参数;路由不均衡靠 EPLB 重排。
  • 选型有依据:DeepSeek 系优先 SGLang(MLA/MoE 优化最深);多节点上 Dynamo 做编排 + KV-aware 路由。
  • 收尾提可观测/成本:MoE 单请求成本波动大,要按 expert 命中和激活量核成本。

踩坑 / 加分点

  • 常见错:以为 MoE「激活 49B 所以只要装 49B 显存」——错,全部 expert 都得常驻显存。
  • 加分:提「引擎跑单模型、编排管多节点」这个 2026 的分层认知,并知道 Dynamo 是 GTC 2025 发布的编排层。
  • 加分:知道 MLA 是 DeepSeek 带火的 KV 压缩,恢复 K/V 的计算代价压在 decode 每一步(用计算换显存)。

锚点题 3:从 0 设计一个公司内部的多模型推理平台#

为什么是锚点题:平台方向的必考大题。它把「服务化 + 网关 + 可观测 + 弹性 + 成本 + 合规」全串起来,考的是系统设计的完整度和取舍意识。

会串出的知识点地图

text
分层架构
├── 引擎层:vLLM / SGLang / TensorRT-LLM(按模型选)
├── 编排层:Dynamo / llm-d(多节点、PD 分离、KV 路由)
├── 接入层 AI Gateway:多模型路由 / 鉴权 / 租户隔离 / 限流 / 熔断 / fallback / 额度
├── 可观测:TTFT/TPOT/tokens·s + GPU/显存(DCGM) + 单请求·单token·租户维度成本
│           + OpenTelemetry GenAI 语义约定(token/成本/质量标准化)
├── 弹性:HPA/KEDA 按 GPU 指标扩缩 + scale-to-zero + 冷启动(模型加载慢)优化
├── 治理:Model Registry / Eval / 灰度 / 回滚
└── 合规(国内):内容审核 + 拒答 + 备案公示

考官追问链

  1. 为什么要有 AI Gateway 这一层?直接暴露引擎不行吗?
  2. 多个模型、多个租户共享 GPU,怎么隔离和计费?
  3. 推理负载有波峰波谷,怎么做弹性?scale-to-zero 的冷启动问题怎么解?
  4. 一个模型挂了 / 超时了,请求怎么办?(fallback / 熔断 / 重试)
  5. 怎么统计"这个租户这个月花了多少 GPU 钱"?

参考答题骨架

  • 先画分层:引擎 → 编排 → 网关 → 业务;每层职责单一。
  • 网关是重点:OpenAI 兼容 API 统一入口 + 路由 + 鉴权 + 限流熔断 fallback + 成本埋点。
  • 可观测和成本一起讲:按模型/租户/接口三维拆,token 级成本。
  • 弹性讲权衡:scale-to-zero 省钱但有冷启动(模型加载几十 GB 慢),用预热/常驻最小副本兜底。
  • 国内加一句合规:内容安全 + 备案,是上线前置。

踩坑 / 加分点

  • 加分:把「成本治理」讲成闭环——不只统计,还有量化/PD 分离/弹性/配额这些降本手段
  • 踩坑:别忘了模型加载/分发(权重几十上百 GB),冷启动和扩容延迟强相关。

锚点题 4:长上下文 / RAG 场景下推理又慢又贵,怎么系统性优化?#

为什么是锚点题:RAG 和长上下文是 2026 落地最多的场景,痛点尖锐(每次几十 K token 的 prefill 重算),是把 KV Cache 知识用到实处的题。

会串出的知识点地图

text
成本大头:长 prompt 的 prefill 每次重算(算力 + 首 token 延迟)
├── prefix cache / RadixAttention —— 相同前缀(系统提示、文档)跨请求复用 KV
├── 分级 KV Cache(LMCache/HiCache)—— GPU 显存 → CPU 内存(L1) → 远端(L2)
│      长上下文 KV 超显存时下沉,跨请求/跨会话复用
├── KV-aware routing —— 把命中同一 KV 的请求路由到同一节点
├── chunked prefill —— 长 prefill 切块,别阻塞其他请求的 decode
└── 命中率与成本账 —— 80% 命中可省大量 prefill(具体比例看 benchmark 条件,非通用常数)

考官追问链

  1. 为什么长上下文 / RAG 的成本主要在 prefill?
  2. prefix cache 和分级 KV 有什么区别?各解决什么?
  3. 命中率怎么影响 TTFT 和成本?怎么提高命中率?
  4. 分级 KV 把 KV 下沉到 CPU/远端,传输开销会不会反而更慢?(看命中收益 vs 传输代价)
  5. 多轮对话和 RAG 的 KV 复用策略一样吗?

参考答题骨架

  • 定位成本:长 prompt 每次 prefill 重算最贵,先想"能不能不重算"。
  • 分层复用:前缀能复用先上 prefix cache;KV 超显存上分级 KV;多节点加 KV-aware 路由把命中留在本地。
  • 用数据说话:cache 命中率、TTFT 降幅、prefill 成本降幅。

踩坑 / 加分点

  • 踩坑:把某个 benchmark 的「省 69%」当通用常数到处套——要说清是特定条件(如 128K 提示、80% 命中)下的数字。
  • 加分:知道 LMCache 2026 已转生产(Google GKE / CoreWeave / Cohere 在用),不是实验室玩具。

锚点题 5:线上 GPU 成本突然飙升,你怎么定位和治理?#

为什么是锚点题:成本是 Infra 团队的 KPI,也是最能体现"既懂技术又懂账"的题。它串起可观测、性能、调度、治理。

会串出的知识点地图

text
先定位(拆维度)
├── 按模型 / 租户 / 接口拆成本,找到是谁涨的
├── 调用量涨?上下文变长?循环调用?重试风暴?
└── GPU 利用率(DCGM)—— 是真在算,还是空转烧钱
再归因
├── batching 没打满(并发低但占着卡)
├── 请求排队 + 超长请求拖慢整体
├── scale-to-zero 没配,空闲还满载
└── 模型选型不当(小任务用大模型)
后治理
├── 弹性伸缩 / scale-to-zero / 配额(Quota)
├── 量化 / PD 分离 / 分级 KV 降单位成本
└── 模型级联(小模型兜底,难的才上大模型)

考官追问链

  1. 你第一步看什么?(先拆维度定位是谁涨的,别瞎猜)
  2. GPU 利用率高就说明钱花得值吗?(不一定,decode 访存密集)
  3. 怎么区分"真的负载涨了"和"效率变差了"?
  4. 有哪些直接的降本手段?(弹性、量化、级联、配额)
  5. 怎么防止某个租户把成本打爆?(配额 + 限流 + 告警)

参考答题骨架

  • 先拆维度定位(模型/租户/接口/时间),再归因(量涨 vs 效率降),最后治理(弹性 + 单位成本 + 配额)。
  • 强调可观测是前提:没有 token 级、租户级成本埋点,根本没法归因。

踩坑 / 加分点

  • 加分:提「模型级联/路由」——不是所有请求都值得上最大模型,按难度路由是最直接的省钱杠杆。
  • 踩坑:只盯 GPU 单价,忽略"利用率低导致的隐性浪费"(空转的卡最贵)。

锚点题 6:多租户共享同一批 GPU,怎么做隔离、调度和公平?#

为什么是锚点题:智算/平台方向的核心大题,把算力调度整章串起来,且强绑真实企业痛点(多团队抢卡)。

会串出的知识点地图

text
隔离
├── 显存隔离:MIG(硬切分,强隔离)/ MPS(共享,弱隔离)/ 时间片
├── 故障隔离:一个租户的任务崩了不能影响别人
└── 性能隔离:吵闹邻居问题(noisy neighbor)
调度
├── Queue / Quota / Priority —— 队列 + 配额 + 优先级
├── Preemption —— 高优抢占低优
├── Gang Scheduling —— 多卡任务要么全调度要么不调度(否则死锁)
└── 拓扑感知 —— 同一任务的卡尽量同 NVLink/同节点
公平与成本
├── 资源碎片治理
└── 按租户配额 + 成本归因
框架:Volcano / Kueue / HAMi

考官追问链

  1. MIG 和 MPS 有什么区别?什么场景用哪个?
  2. 为什么多卡训练/推理任务需要 Gang Scheduling?不用会怎样?
  3. 高优任务来了但卡被低优占满,怎么办?(抢占,但要处理 checkpoint)
  4. 怎么防止一个团队把 GPU 全占了?(Quota + 优先级 + 抢占)
  5. GPU 碎片是怎么产生的?怎么治理?

参考答题骨架

  • 隔离先讲清 MIG(强/硬切)vs MPS(弱/共享)的取舍。
  • 调度串起 Queue/Quota/Priority/Preemption/Gang,点出 Gang 不做会死锁。
  • 落到框架 Volcano/Kueue/HAMi,并提成本归因闭环。

踩坑 / 加分点

  • 加分:Gang Scheduling 的必要性——多卡任务部分调度会互相等资源死锁,这是分布式任务调度的经典坑。
  • 加分:提 HAMi 做 GPU 细粒度共享(显存/算力配额),比只有 MIG 灵活。

刷这份的方法:每题先自己讲一遍"知识点地图",卡壳的地方回去补对应章节的原子题;再对着"追问链"模拟被追问,直到每一层都能顺下来。