路线图

面试 · 对比辨析型

星辉 2026-07-02 阅读 5 min 1,050 字 路线图
面试 · 对比辨析型 封面

考察目标:能否说清两个相近概念/工具/技术的本质差异,展示选型决策能力 约 20 题,含对比表格 答题框架:差异 → 替代方案 → 如何选


Q1:vLLM vs SGLang?#

维度vLLMSGLang
核心武器PagedAttention(分页管理 KV Cache)RadixAttention(Radix Tree 前缀共享)
KV Cache 共享Automatic Prefix Caching(block 级 hash,跨请求持久共享,仅显存不足才按 LRU 淘汰)Radix Tree(token 级,前缀树持续共享)
前缀命中率稳定(hash 精确匹配前缀,非碰运气)稳定 + 多前缀/分叉管理更灵活(多轮可达 60-85%)
结构化输出支持原生约束解码(JSON Schema/正则/EBNF)
前端 DSLPython + sgl.gen/sgl.fork
DeepSeek 优化一般最深度(MLA + MoE + EPLB)
社区最大最活跃快速增长
适用场景通用推理,开箱即用Agent/多轮对话/RAG 固定前缀/MoE

辨析要点(常被说错):两者的前缀缓存都是跨请求持久命中——vLLM Automatic Prefix Caching 用 block-hash + LRU(只有显存不足才淘汰),SGLang 用 Radix 树,命中都不是"碰运气"。真正差异是 Radix 树对"多前缀/分叉"场景(同一 system prompt 下大量不同分支、树状会话/Agent)管理更灵活,命中率更稳;vLLM 的 block-hash 在高分叉场景命中率略低。别答成"主动共享 vs 幸运命中"。

如何选:通用场景 + 快速上线 → vLLM;MoE 模型 / Agent / 多轮 / RAG(多分叉前缀)→ SGLang。


Q2:vLLM vs Triton Inference Server?#

维度vLLMTriton
定位LLM 专用推理引擎通用推理服务器(CV+NLP+LLM)
LLM 优化PagedAttention + Continuous Batching依赖 backend(如 tensorrtllm)
多模型混部不支持(一个进程一个模型)原生支持
多框架LLM 开源模型TensorRT/ONNX/PyTorch/TF/Python 等十余种
编排Ensemble + BLS
适用场景纯 LLM 服务多模型、多框架、LLM+传统模型混部

如何选:纯 LLM 服务 → vLLM;多模型混部(LLM + Embedding + Rerank + CV)→ Triton。


Q3:TensorRT-LLM vs vLLM?#

维度TRT-LLMvLLM
编译必须离线编译 .engine(30 分钟+)运行时动态加载
极致性能最好(图级优化,kernel 融合深)接近
FP8 支持最成熟(权重+激活+KV全FP8)较好
动态性参数改一个要重新编译完全动态
跨硬件只 NVIDIANVIDIA/AMD/TPU 等
上手难度
适用场景H100 极致性能、Triton 栈通用、快速迭代、多硬件

如何选:快速迭代/多硬件 → vLLM;H100 极致性能 + 稳定不变 → TRT-LLM。常见做法:迭代期用 vLLM,稳定后转 TRT-LLM。


Q4:vLLM vs SGLang vs TRT-LLM 三者对比?#

维度vLLMSGLangTRT-LLM
核心优势社区最大,通用易用RadixAttention,DeepSeek 优化极致性能,FP8 最成熟
MoE/MLA 优化一般最深度中等
多轮/Agent中(Prefix Cache)最优(RadixAttention)
编译必须离线编译
跨硬件好(NVIDIA/AMD/TPU)中(NVIDIA 为主)只 NVIDIA
上手难度
适用场景通用、快速上线MoE/Agent/RAGH100 极致性能

如何选:MoE 模型(DeepSeek)→ SGLang;通用快速上线 → vLLM;H100 极致性能 → TRT-LLM。


Q5:Online vs Batch Inference?#

维度Online InferenceBatch Inference
延迟要求秒级(TTFT < 2s)分钟到小时级
调用方式HTTP/gRPC 实时 API文件批处理
成本全价~50% 折扣(OpenAI/Anthropic Batch API)
弹性要求高(实时响应)低(可排队)
适用场景用户对话、实时 Agent数据清洗、离线标注、批量评估

如何选:实时场景 → Online;离线大数据量 → Batch(省 50% 成本)。


Q6:Prefill vs Decode?#

维度PrefillDecode
处理方式并行处理所有输入 token串行逐个生成
计算特征Compute-boundMemory-bound
GPU SM 利用率高(80-95%)低(20-40%)
每次 token 数input_len(一次性)1 per step
瓶颈算力(FLOPS)显存带宽
优化方向加大 batch、FP8 计算、Chunked PrefillKV Cache 压缩、CUDA Graph、增大 batch

如何选:不需要选,两者是同一请求的不同阶段。但 PD 分离可以把它们分到不同 GPU 各自优化。


Q7:TTFT vs TPOT?#

维度TTFTTPOT
全称Time To First TokenTime Per Output Token
对应阶段Prefill + 首 token 生成Decode 每个 token
单位秒(绝对值)毫秒(平均值)
影响因素prompt 长度、GPU 算力、KV Cache 命中显存带宽、batch 大小、模型复杂度
高延迟原因长 prompt、KV Cache Miss大 batch 竞争带宽、显存不足

如何选:两者独立,TTFT 高不一定 TPOT 高。TTFT 高查 prefill,TPOT 高查 decode。总延迟 = TTFT + output_tokens × TPOT。


Q8:AI Gateway vs 普通 API Gateway?#

维度普通 API GatewayAI Gateway
路由URL/Host 路由模型名/Model Group 路由
限流QPS/RPSRPM + TPM(token per minute)
鉴权API KeyVirtual Key(模型+预算绑定)
计费无/简单Token 级计费,按模型/租户拆分
FallbackHTTP 级模型级(还可自动切更大上下文的模型)
审计HTTP 日志Prompt+Response+Token 日志

如何选:LLM 服务必须用 AI Gateway(普通网关不懂 token/模型路由/成本统计)。LiteLLM 是开源首选。


Q9:Volcano vs Kueue?#

维度VolcanoKueue
定位批调度器(替代 kube-scheduler)队列管理(admission gate)
API 风格自有 CRD(Volcano Job/PodGroup)贴近原生 K8s(原生 Job + Label)
Gang Scheduling原生 PodGroupall-or-nothing admission
跨集群MultiKueue
生态集成Kubeflow/MPI/SparkRayJob/PyTorchJob/JobSet
成熟度稳定多年v1beta2(SIG 项目,发展快)
学习曲线低(贴近 K8s 原生)

如何选:纯 AI 训练 + K8s 原生 → Volcano;想要 upstream 方案 + API 贴近原生 → Kueue。


Q10:Volcano vs Slurm?#

维度VolcanoSlurm
平台K8s 原生独立 HPC 调度器
容器化原生容器模块加载为主
生态Kubeflow/K8s 生态HPC(MPI/CUDA/Lustre)
运维与 K8s 统一需要独立集群
适用团队K8s 背景传统 HPC 背景

如何选:K8s 背景 → Volcano;已有 HPC 集群 + Slurm 经验 → 继续 Slurm;混合栈:Slurm 管训练,K8s+Volcano 管推理。


Q11:Volcano vs Kueue vs Slurm 三者对比?#

维度VolcanoKueueSlurm
平台K8s 原生K8s 原生独立 HPC
定位批调度器队列管理HPC 调度器
容器化原生原生模块加载
Gang SchedulingPodGroupadmission gate原生
跨集群MultiKueue多集群
适用场景K8s AI 训练K8s 原生批处理传统 HPC

如何选:K8s 原生 AI 训练 → Volcano 或 Kueue;传统 HPC → Slurm。


Q12:HAMi vs MIG vs MPS?#

维度HAMiMIGMPS
隔离粒度vGPU 级(显存+算力)物理切分(固定规格)SM 并发共享
显存隔离支持物理隔离
灵活性灵活(任意比例)固定(1g/2g/3g/7g)灵活
硬件要求NVIDIA GPUA100/H100 专属NVIDIA GPU
国产化支持不支持不支持
适用场景K8s 原生 GPU 共享生产多租户强隔离同租户多进程

如何选:强隔离 + 固定规格 → MIG;灵活 + 国产化 → HAMi;同租户多进程并发 → MPS;开发测试 → Time-Slicing(无显存隔离)。


Q13:Inference Infra vs Training Infra?#

维度Inference InfraTraining Infra
核心关注延迟(TTFT/TPOT)、吞吐(QPS)、显存吞吐(Tokens/s)、收敛速度、显存
调度在线服务调度批作业调度(Gang Scheduling)
GPU 使用模式持续在线短期高密度使用
弹性HPA/KEDA/scale-to-zero批处理队列
关键工具vLLM/SGLang/LiteLLMPyTorch DDP/DeepSpeed/Megatron
通信NCCL(TP 场景同机为主)NCCL(跨机 AllReduce)
Checkpoint不涉及(无状态)核心机制(断点续训)

如何选:岗位方向选择——喜欢在线服务/低延迟优化 → Inference;喜欢分布式系统/大规模计算 → Training。


Q14:引擎层 vs 编排层?#

维度引擎层编排层
职责跑单个模型管多个推理节点协同
代表vLLM/SGLang/TRT-LLMNVIDIA Dynamo/llm-d
PD 分离引擎内机制(如 vLLM KVConnector)跨节点 disaggregated serving
路由KV-aware routing
关系编排层不替代引擎层编排层在引擎层之上

如何选:单节点能扛住流量 → 引擎层 + 网关即可;需要跨节点 PD 分离/KV 路由/多节点负载均衡 → 引入编排层。


Q15:Dynamo vs llm-d?#

维度NVIDIA Dynamollm-d
主导方NVIDIARed Hat / 社区
定位全功能编排层(含 PD 分离、KV 路由)轻量级 KV-centric 路由
硬件绑定NVIDIA 生态(深度优化 NVLink/RDMA)硬件无关
部署复杂度较高(依赖 NVIDIA 栈)较低(K8s CRD)
适用场景大规模 NVIDIA 集群、需要 PD 分离中小规模、多硬件、需要 scale-to-zero

如何选:大规模 NVIDIA 集群 + PD 分离 → Dynamo;中小规模 + 多硬件 + scale-to-zero → llm-d。


Q16:LMCache 分级 KV vs vLLM 自带 Prefix Cache?#

维度LMCache(分级 KV)vLLM Prefix Cache
存储层级GPU + CPU DRAM + SSD 三级GPU 内存
命中范围跨请求、跨实例共享同实例同 prefix 请求
持久性L1/L2 跨实例重启可恢复进程内,重启即失
有效复用高(跨实例共享 + 持久化,可复用前缀更多)中(仅单实例进程内、重启即失,可复用面更窄)
复杂度需要部署 LMCache 服务引擎自带,一行参数开启

如何选:RAG/多轮/固定前缀 → LMCache 分级 KV(跨实例共享 + 持久化);简单前缀复用 → vLLM Prefix Cache(零部署成本)。两者可叠加使用。


Q17:TP vs PP vs EP vs DP?#

并行策略切分粒度通信代价适用场景
TP(张量并行)单层权重切分到多卡每层 2 次 AllReduce(高)单机 NVLink 域(≤8卡)
PP(流水线并行)不同层分到不同设备层边界传激活值(低)跨机部署首选
EP(专家并行)MoE 的 expert 分布路由分发(中)MoE 模型专属
DP(数据并行)完整模型多副本无(网关分流)扩吞吐首选

如何选:优先级是能 DP 不 TP;必须跨机优先 PP;MoE 加 EP。典型组合:单机 TP=8,跨机 TP=8+PP=N,MoE 用 TP+EP。


Q18:FP8 vs INT8 vs INT4 量化对比?#

维度FP8INT8 (SmoothQuant)INT4 (AWQ/GPTQ)
权重大小1 byte1 byte0.5 byte
精度损失极小(< 1%)小(1-2%)中(2-5%)
硬件要求H100/H200Ampere+Ampere+
KV Cache可 FP8INT8 + FP16 KVFP16 KV
计算加速硬件原生 2x1.5-2x主要省显存
适用场景H100 基线A100 通用单卡跑 70B

如何选:H100/H200 → FP8(无脑);A100 → AWQ INT4(单卡跑大模型)或 SmoothQuant INT8(通用);精度敏感场景至少 FP8。


Q19:HPA vs KEDA?#

维度HPAKEDA
全称Horizontal Pod AutoscalerKubernetes Event-Driven Autoscaling
数据源metrics.k8s.io + custom.metricsPrometheus/Kafka/Redis 等 60+
scale-to-zero不支持支持
部署复杂度K8s 内置需安装 KEDA Operator
适用场景简单 CPU/内存扩缩自定义指标/事件驱动/scale-to-zero

如何选:简单 CPU/内存扩缩 → HPA;需要 Prometheus 指标/scale-to-zero/事件驱动 → KEDA。LLM 推理场景必须用 KEDA 或 HPA + 自定义指标(GPU 指标)。


Q20:PD 分离 vs 混合部署?#

维度PD 分离混合部署(无分离)
架构Prefill 节点 + Decode 节点分离同一 GPU 跑 prefill + decode
TTFT低(prefill 不被 decode 干扰)高(decode 抢占 prefill 算力)
吞吐高(decode 可无限扩展)中(互相干扰)
复杂度高(KV 跨节点传输 + 两套硬件)低(单引擎搞定)
网络要求100Gbps+ RDMA无特殊要求
适用场景大规模 + 流量波动大小规模 + 流量平稳

如何选:小规模 + 流量平稳 → 混合部署(简单);大规模 + prefill/decode 冲突严重 → PD 分离。不是银弹,看场景。