📋 摘要
- 大模型推理与部署面试高频问答,每题只保留回答重点与扩展知识
- 详细原理解析见 大模型推理与部署
- 相关主题:大模型基础(面试版)、大模型训练与微调(面试版)、RAG(面试版)、AI Agent(面试版)、LangChain 与 LangGraph(面试版)
1. 什么是 KV cache?为什么它能加速推理?
📋 回答重点
- 缓存已算过的历史 K/V,新 token 只算自己的 Q/K/V,避免每步重算全部历史
- 计算量从 O(n²) 累加降为增量 O(n)
- 显存
2×batch×层数×KV头数×头维度×seq×字节数,是长序列显存大头
扩展知识
- 是 MQA/GQA 与 PagedAttention 优化的动机
- 详细讲解:大模型推理与部署
2. 如何估算大模型的显存占用?
📋 回答重点
- 显存 ≈ 权重 + KV cache + 激活值
- 权重 = 参数量 × 字节数(FP16=2B、INT8=1B、INT4=0.5B)
- KV cache 随 batch × 序列长度 线性放大,长序列可远超权重
- 7B FP16 权重 ≈ 14GB
扩展知识
- 部署前先算「权重 + 最大 batch×seq 的 KV」
- 详细讲解:大模型推理与部署
3. 主流推理框架有哪些?PagedAttention 是什么?
📋 回答重点
- 框架:vLLM(高吞吐、PagedAttention)、TensorRT-LLM(NVIDIA 极致)、TGI、llama.cpp/Ollama(CPU)
- PagedAttention:仿 OS 虚拟内存分页,KV cache 切成 block 按需分配,消除碎片、按需分配,batch 更大 → 吞吐高
扩展知识
- 还支持 KV cache 共享(beam search/共享前缀)
- 详细讲解:大模型推理与部署
4. 什么是 continuous batching?如何提升吞吐?
📋 回答重点
- 静态 batching 等最慢请求,GPU 空转
- continuous batching 以迭代为单位动态调度:完成即退、新请求立刻补位,batch 持续满负荷
- 吞吐提升来自 GPU 利用率,常配 PagedAttention
扩展知识
- 面向高并发在线服务
- 详细讲解:大模型推理与部署
5. 模型量化是什么?INT8/INT4 有哪些方法?
📋 回答重点
- 用低比特(INT8/INT4)表示权重,省显存/带宽、加速,代价是精度损失
- PTQ(训练后,GPTQ/AWQ/GGUF)vs QAT(量化感知训练)
- INT8 基本无损;INT4 略降但省 4 倍;关键层可混合精度
扩展知识
- AWQ 保护高权重通道、SmoothQuant 平滑 outlier
- 详细讲解:大模型推理与部署
6. 什么是知识蒸馏?部署中有什么用?
📋 回答重点
- 大模型(教师)指导小模型(学生),把小模型逼近大模型能力
- 部署用途:模型压缩,降显存与延迟
- 三种:软标签/温度蒸馏、中间特征蒸馏、数据蒸馏(教师生成训练数据)
扩展知识
- 如 GPT-4 蒸馏小模型、Alpaca 数据蒸馏
- 详细讲解:大模型推理与部署
7. 什么是投机采样(Speculative Decoding)?
📋 回答重点
- 小模型(draft)快速起草 k 个 token,大模型(target)一次并行验证
- 一次前向验证多个 token,2~3 倍加速且不损失精度
- 保证输出分布与大模型一致
扩展知识
- 内存带宽受限场景收益明显
- 详细讲解:大模型推理与部署
8. FlashAttention 和 FlashDecoding 是什么?
📋 回答重点
- FlashAttention:tiling + 在线 softmax,中间结果留 SRAM、减少 HBM 读写,显存 O(n²)→O(n),数学等价
- FlashDecoding:解决解码阶段 batch 小/query 少的并行不足,在 KV 序列维度再切分
扩展知识
- 核心是 IO 优化而非算法改动
- 详细讲解:大模型推理与部署
9. 长上下文推理有哪些优化手段?
📋 回答重点
- 压 KV:GQA/MQA、MLA(低秩压缩)
- 省显存:KV cache 量化、FlashAttention
- 扩并行:ring attention 序列并行
- 换架构:稀疏/滑动窗口注意力、Mamba(SSM 线性注意力)
扩展知识
- 从「压 KV→省显存→扩并行→换架构」分层
- 详细讲解:大模型推理与部署
10. 吞吐和延迟如何权衡?如何提升并发?
📋 回答重点
- batch 大 → 吞吐高但延迟高,二者此消彼长(离线重吞吐、在线重延迟)
- 提吞吐:continuous batching、量化、投机采样、FlashAttention、多卡 DP/TP
- 降延迟:降 batch、量化、蒸馏小模型、减少输出长度
扩展知识
- 按场景选 batch 与精度
- 详细讲解:大模型推理与部署
11. 什么是模型并行?TP、PP、DP 有什么区别?
📋 回答重点
- DP 切数据(batch,每卡一份模型)
- TP 切张量(层内切权重,通信频繁,单机内)
- PP 切层(按层分卡,流水线,通信少但有空泡)
- 组合 = 3D 并行;推理主要用 TP/PP
扩展知识
- PP 有空泡(bubble)问题
- 详细讲解:大模型推理与部署
12. 显存不足时有哪些应对手段?
📋 回答重点
- 阶梯式:量化 → 降 batch/seq → GQA/MLA 压 KV → KV/权重 offload → 多卡 TP/PP → 换小模型/蒸馏
- 差一点:量化 + 降 batch;差很多:多卡或换小模型
- 需精度:优先 INT8、混合精度、KV 量化
扩展知识
- CPU 推理(llama.cpp)作兜底
- 详细讲解:大模型推理与部署
13. KV cache 显存公式如何推导?
📋 回答重点
- 每 token 每层存 K、V 两份:
2 × KV头数 × 头维度个元素 - 公式
2×batch×层数×KV头数×头维度×seq×字节数 - LLaMA-7B(32 层、32 头、头维 128、FP16、seq 2048)≈ 1GB;batch=8、seq=4096 ≈ 17.2GB
- 长序列下 KV cache 反超权重,成为显存大头
扩展知识
- GQA/MQA/MLA 通过压缩「KV 头数」来降这个值
- 详细讲解:大模型推理与部署
14. KV cache 量化是什么?
📋 回答重点
- 把 K/V 用低比特(FP8/INT8/INT4)存储,省 2~4 倍显存
- 收益:长序列/大批量下 KV 是显存大头,量化后可提 batch/seq
- 风险:K/V 是激活值,分布敏感、误差沿序列累积
- 缓解:per-channel/分组量化、混合精度、FP8
扩展知识
- FP8 动态范围大,是 KV 量化精度与显存的甜点
- 详细讲解:大模型推理与部署
15. 什么是 prefix caching?
📋 回答重点
- 缓存共享前缀(system prompt、few-shot、多轮历史、RAG 公共上下文)的 KV,命中后免重算 prefill
- 收益:省 prefill → 降 TTFT、提吞吐
- 实现:vLLM automatic prefix caching(block 哈希)、SGLang RadixAttention(radix tree)
扩展知识
- Agent 长 system prompt、多轮对话、批量共享文档场景提速数倍
- 详细讲解:大模型推理与部署
16. 什么是 MLA?
📋 回答重点
- DeepSeek 的低秩注意力:把 K/V 投影到低维潜变量 c,只缓存 c,按需上投影还原
- KV cache 大幅下降(DeepSeek-V2 相比 MHA 约降 10 倍以上),几乎不损性能
- 对比 MQA/GQA(共享头)是「低秩压缩」,更彻底
扩展知识
- RoPE 解耦到 Q 与共享 K,避免低秩吸收位置信息的问题
- 详细讲解:大模型推理与部署
17. 对称量化和非对称量化有什么区别?
📋 回答重点
- 对称:零点=0,
q=round(x/s),实现简单,常用于权重 - 非对称:有零点 z,
q=round(x/s)+z,把 [min,max] 完整映射到整数区间 - 非对称更好拟合单边/偏斜分布(ReLU 后激活),但多一个零点参数
扩展知识
- W8A8 多对「权重对称、激活非对称」组合使用
- 详细讲解:大模型推理与部署
18. weight-only 和 W8A8/W4A16 有什么区别?
📋 回答重点
- WxAy 命名:权重 x bit、激活 y bit
- weight-only(W4A16/W8A16):只压权重,省显存、实现简单、激活保 FP16
- W8A8:权重激活都 INT8,省带宽+算力,需 INT8 算子(SmoothQuant 代表)
扩展知识
- decode 是内存带宽受限,weight-only 收益大;W8A8 才能用 INT8 Tensor Core
- 详细讲解:大模型推理与部署
19. GPTQ 的原理是什么?
📋 回答重点
- PTQ,逐层最小二乘重建:
min ||WX - ŴX||² - 用 Hessian 逆把已量化列的误差补偿到剩余权重(OBS/OBC 思想)
- GPU 友好、INT4/INT8、无需重训,AutoGPTQ/GGUF 底层算法
扩展知识
- 逐层 + 二阶信息 + 误差补偿三点是核心
- 详细讲解:大模型推理与部署
20. AWQ 的原理是什么?
📋 回答重点
- 依据激活幅度找重要通道,重要通道权重乘缩放因子 s 后量化,等效保护
- 无需反向传播、只统计激活,效率高
- INT4(W4A16)下性能接近/超过 GPTQ,不损泛化
扩展知识
- 「放大权重、缩小激活」公式等效降低重要通道量化误差
- 详细讲解:大模型推理与部署
21. SmoothQuant 的原理是什么?
📋 回答重点
- 解决:激活 outlier 让 W8A8 量化崩
- 做法:激活除以 s、权重乘以 s,矩阵乘不变,把量化难度从激活迁移到权重
- 实现 W8A8 几乎无损,利用 INT8 Tensor Core
扩展知识
s = max(|X|)^α / max(|W|)^{1-α},α 常取 0.5- 详细讲解:大模型推理与部署
22. 什么是 FP8 推理?
📋 回答重点
- FP8 是 8 位浮点:E4M3(精度高)、E5M2(动态范围大)
- 相比 INT8:动态范围大、无需逐张量校准、误差小
- H100+ FP8 Tensor Core 原生支持,理论 2 倍 FP16 吞吐
扩展知识
- GEMM 用 FP8、累积保留 FP16/FP32;权重/KV/激活均可 FP8
- 详细讲解:大模型推理与部署
23. KV cache 量化和权重量化有什么区别?
📋 回答重点
- 权重:静态参数,离线一次性量化,误差固定
- KV:运行时激活,动态分布、有 outlier、误差沿序列累积,只能在线缩放
- 权重省「基础显存」、KV 省「长上下文显存」,两者可叠加
扩展知识
- KV 对低比特更敏感,INT4/INT2 KV 需 per-channel/非均匀细粒度
- 详细讲解:大模型推理与部署
24. 张量并行(TP)的通信成本如何分析?
📋 回答重点
- 每层多次 all-gather/all-reduce,通信量正比 batch×seq×hidden
- 通信频繁、延迟敏感,需高带宽互联(NVLink),适合单机内
- 跨机带宽低一个量级不划算;卡数越多通信占比越大
扩展知识
- 推理只前向,通信比训练少;TP 度不宜过大
- 详细讲解:大模型推理与部署
25. 流水线并行(PP)的 bubble 如何优化?
📋 回答重点
- bubble 成因:流水线首尾空闲,占比 ≈
(P-1)/(P-1+M) - 增大微批次 M 摊薄 bubble
- chunked/interleaved(1F1B 交错):把每卡层再切成多 stage 交错调度,填满气泡
扩展知识
- 推理侧用 chunked prefill / splitfuse 类比减少空等
- 详细讲解:大模型推理与部署
26. 什么是专家并行(Expert Parallelism)?
📋 回答重点
- MoE 把不同专家分布到多卡,token 按路由送到对应专家
- 通信为 all-to-all(dispatch/combine),区别于 TP 的 all-reduce
- 突破单卡专家显存,常与 TP/DP 组合
扩展知识
- DeepSeek 的「细粒度 EP + 共享专家」;capacity factor 控负载与丢 token
- 详细讲解:大模型推理与部署
27. 什么是序列并行(Sequence Parallelism)?
📋 回答重点
- 切序列维度到多卡,突破单卡长序列显存/算力
- Ring Attention:环形传 K/V 聚合全局注意力
- Megatron-SP(切 LayerNorm/Dropout 省激活)、Ulysses(切头 + all-to-all)
扩展知识
- 超长上下文(几十万 token)单卡放不下时横向扩展
- 详细讲解:大模型推理与部署
28. 3D 并行如何组合?各维度如何分配?
📋 回答重点
- 3D = DP×TP×PP(MoE 再加 EP)
- TP 单机内(NVLink)、PP 跨机、DP 切 batch
- 总卡数 = TP×PP×DP,先填单机 TP
扩展知识
- 推理无梯度,DP 变多副本扩容,主要用 TP/PP(+EP)
- 详细讲解:大模型推理与部署
29. ZeRO 是什么?ZeRO-1/2/3 有什么区别?
📋 回答重点
- 训练显存优化:分片优化器状态/梯度/参数,消除 DP 冗余
- ZeRO-1 分片优化器状态、ZeRO-2 加梯度、ZeRO-3 再分片参数(需 all-gather)
- ZeRO-3 随卡数近线性省显存
扩展知识
- ZeRO-Offload/Infinity 卸载到 CPU/NVMe;推理用不到(无优化器/梯度)
- 详细讲解:大模型推理与部署
30. prefill 和 decode 阶段有什么区别?
📋 回答重点
- prefill:并行处理 prompt 全部 token,compute-bound
- decode:逐 token 自回归,memory-bound,KV 越读越多
- 瓶颈不同,混在一起会互相干扰(引出 chunked prefill)
扩展知识
- prefill 堆算力/大 batch/TP;decode 省带宽(量化/投机采样/GQA)
- 详细讲解:大模型推理与部署
31. TTFT 和 TPOT 是什么?如何优化?
📋 回答重点
- TTFT = 首 token 延迟(排队 + prefill);TPOT = 后续每 token 平均耗时(decode)
- 优化 TTFT:prefix caching、chunked prefill、TP 并行、缩短 prompt
- 优化 TPOT:KV 量化、投机采样/Medusa、GQA/MLA、降 batch
扩展知识
- 大 batch 提吞吐却拉高 TPOT,需按场景权衡
- 详细讲解:大模型推理与部署
32. chunked prefill 和 splitfuse 是什么?
📋 回答重点
- 长 prefill 会阻塞 decode(head-of-line blocking)
- chunked prefill:把长 prefill 切块穿插到 decode 之间
- SplitFuse:把 prompt 切块与 decode token 合到同一前向,填满算力
扩展知识
- 控 TTFT/TPOT、提 GPU 利用率,是 vLLM/SGLang 调度器核心能力
- 详细讲解:大模型推理与部署
33. vLLM 的调度器是如何工作的?
📋 回答重点
- 迭代级 continuous batching:选请求 → 前向 → 采样 → 更新 KV
- 优先 prefill(先给首 token),decode 填满剩余容量
- Block Manager(PagedAttention)管 KV 容量决定准入
扩展知识
- 显存不足时抢占(swap 到 CPU 或 recompute);chunked prefill 防阻塞
- 详细讲解:大模型推理与部署
34. 流式输出(streaming)如何实现?
📋 回答重点
- 逐 token 产出后通过 SSE/WebSocket/HTTP chunked 增量推送
- OpenAI 兼容
stream:true,data:{delta}事件流、[DONE]结束 - 降低感知延迟,支持中途取消
扩展知识
- 服务端逐 token yield,客户端逐条渲染
- 详细讲解:大模型推理与部署
35. 推理服务如何做并发控制和过载保护?
📋 回答重点
- 并发控制:最大并发/in-flight token 上限、准入控制、排队 + 超时
- 过载保护:限流、背压、优先级 + 抢占、熔断降级(429/503)、弹性扩容
- 目标:保核心请求延迟 SLA、防雪崩
扩展知识
- 按 KV cache 余量做准入,指标驱动动态调整
- 详细讲解:大模型推理与部署
36. 如何在一个服务上部署多个 LoRA adapter?
📋 回答重点
- base 权重只加载一份,adapter 低秩 A/B 按请求路由
- 同 adapter 合批、segmented gather 聚合不同 adapter
- adapter 太多按 LRU 换入换出(S-LoRA 统一分页)
扩展知识
- vLLM/TGI/SGLang 均支持 multi-LoRA;一份底座服务 N 个定制模型
- 详细讲解:大模型推理与部署
37. 离线推理和在线推理有什么区别?
📋 回答重点
- 离线:批量打分/生成,重吞吐、延迟不敏感、大 batch、无流式
- 在线:实时请求,重延迟(TTFT/TPOT)、流式、continuous batching、弹性扩容
- 调度与优化目标不同
扩展知识
- 两者可共享同一套量化/蒸馏模型,但引擎与调度不同
- 详细讲解:大模型推理与部署
38. KV cache 共享有哪些应用场景?
📋 回答重点
- 共享前缀(system prompt、few-shot、多轮历史、RAG 公共上下文)
- beam search、并行采样 n>1 共享父序列 KV
- PagedAttention 写时复制 + 引用计数
扩展知识
- vLLM automatic prefix caching、SGLang RadixAttention 是落地
- 详细讲解:大模型推理与部署
39. 什么是抢占式调度和优先级调度?
📋 回答重点
- 优先级:高优先级先调度,过载保 SLA
- 抢占:低优先级被抢占让资源,KV 换出(swap)或重算(recompute)
- vLLM/TGI 均支持 priority + preemption
扩展知识
- swap 恢复快但占 CPU 内存;recompute 省内存但恢复慢
- 详细讲解:大模型推理与部署
40. 如何优化首 token 延迟(TTFT)?
📋 回答重点
- TTFT = 排队 + prefill
- prefix caching 命中共享前缀、chunked prefill 不阻塞
- TP/FlashAttention 加速 prefill、压缩 prompt、量化/蒸馏小模型
扩展知识
- 大 batch 加长排队反而抬 TTFT,需优先级/准入控制
- 详细讲解:大模型推理与部署
41. 模型冷启动和加载如何优化?
📋 回答重点
- 权重加载:safetensors mmap、多 rank 并行分片、SSD/RAM 缓存
- 预编译:TensorRT build engine、缓存 autotune/compiled graph
- 量化减体积、常驻预热池 warm up、NUMA 感知
扩展知识
- 冷启动从分钟级压到秒级;滚动发布旧实例不立即下线
- 详细讲解:大模型推理与部署
42. 推理服务有哪些关键可观测指标?
📋 回答重点
- 延迟:TTFT/TPOT/E2E、P50/P90/P99
- 吞吐:tokens/s、requests/s、并发数
- 资源:GPU 利用率、KV cache 使用率、排队长度
- 稳定性:错误率、超时率、限流率
扩展知识
- Prometheus + Grafana,OpenTelemetry 追踪单请求各阶段
- 详细讲解:大模型推理与部署
43. Medusa 是什么?如何加速解码?
📋 回答重点
- 在底座加多个 Medusa head,一次前向预测未来多个 token
- 无需独立 draft 模型,共享底座、无分布漂移
- 2~3 倍解码加速;Medusa-2 用 tree attention 提接受率
扩展知识
- 对比 draft 模型:单模型、显存省、实现简单
- 详细讲解:大模型推理与部署
44. 投机采样中 draft 模型如何选择?
📋 回答重点
- 原则:分布接近(高接受率)+ 足够快
- 同家族小模型、蒸馏 draft、EAGLE(动态 draft)、Medusa(无 draft)
- tokenizer 必须一致,否则无法逐 token 对齐
扩展知识
- 核心权衡:draft 速度 × 接受率共同决定加速比
- 详细讲解:大模型推理与部署
45. 什么是 Early Exit(提前退出)?
📋 回答重点
- 中间层加 exit head + 置信度阈值,简单样本提前返回、跳过深层
- 省算力、降延迟,端侧部署有用
- 权衡:多 exit head 增参数,难样本仍走全层
扩展知识
- CALM 做逐 token 动态层数;用熵/最大概率做退出判据
- 详细讲解:大模型推理与部署
46. 什么是模型剪枝?推理中有什么用?
📋 回答重点
- 移除冗余权重/头/通道/层,减小体积与计算量
- 非结构化(难加速)、结构化(硬件友好直接加速)、2:4 半结构化(TensorCore)
- 流程:重要性打分 → 剪 → 微调恢复精度
扩展知识
- SparseGPT/Wanda 训练后剪枝;常与量化/蒸馏叠加
- 详细讲解:大模型推理与部署
47. 如何评估量化误差?
📋 回答重点
- PPL(困惑度)上升越小越好,先快速筛
- 下游 benchmark(MMLU/GSM8K/HumanEval)分数下降
- KL 散度衡量 logits 分布差异
扩展知识
- PPL 必要不充分;INT8 几乎无损、INT3 起明显掉点
- 详细讲解:大模型推理与部署
48. vLLM、TGI、TensorRT-LLM、SGLang 有什么区别?
📋 回答重点
- vLLM:易用、PagedAttention 高吞吐
- TensorRT-LLM:NVIDIA 极致性能、FP8/量化、编译式
- SGLang:RadixAttention 前缀复用、结构化生成
- TGI:HuggingFace 生态整合、生产特性全
扩展知识
- 按「性能 vs 易用 vs 特性」三角取舍,多框架压测选优
- 详细讲解:大模型推理与部署
49. SGLang 的 RadixAttention 是什么?
📋 回答重点
- radix tree 管理 KV,自动复用最长公共前缀
- 命中前缀免重算,省 prefill、提吞吐、降 TTFT
- cache-aware 调度 + LRU 淘汰
扩展知识
- 比 vLLM block 哈希匹配更精确;多轮对话/Agent/few-shot 收益大
- 详细讲解:大模型推理与部署
50. 推理服务如何做灰度发布和 A/B 测试?
📋 回答重点
- 灰度:新模型先放小流量(5%~10%),观察指标,逐步放量/回滚
- A/B:分流对比不同模型/配置(prompt、量化、采样参数)
- 实现:网关/负载均衡按比例或用户 ID 哈希分流到不同实例
扩展知识
- 观察错误率、TTFT/TPOT、业务/质量指标,达阈值触发回滚
- 详细讲解:大模型推理与部署