M8-044M8: ML Systems, Engineering & ResearchCost & Latency OptimizationEasy
Mastery:
Cost & Latency Optimization: 解释 LLM 推理的成本构成与优化方向。
📐 Mathematical Definition
⚡ Executive Summary
Core Concept: 推理成本 = 算力(prefill 与 decode 的 FLOPs)+ 显存(权重与 KV cache)+ 网络与存储;prefill 偏算力受限、decode 偏显存带宽受限,优化方向随瓶颈不同。
📌 Key Takeaways
- •算力成本——prefill 与 decode 各约 2N 次 FLOPs/ token,N 为参数量
- •显存成本——权重 + KV cache(随上下文长度与并发线性增长)
- •瓶颈差异——prefill 计算密集、decode 访存密集(权重与 KV 反复读取)
- •优化方向——批处理/连续批处理、量化、KV 压缩(GQA/MLA)、前缀缓存、蒸馏到小模型
- •商业口径——按 token 计费时,成本与输入输出长度、并发、缓存命中率强相关
📐 Mathematical Derivations
数学机理:<strong>成本分解</strong>——(1) <strong>算力(FLOPs)</strong>——(a) <strong>prefill</strong>——处理输入 T_in 个 token,约 2N·T_in 次浮点运算(每参数每 token 乘加各一次);(b) <strong>decode</strong>——逐 token 生成,每步约 2N 次 FLOPs,共 T_out 步 → 2N·T_out;(c) <strong>合计</strong>——FLOPs ≈ 2N(T_in + T_out),<strong>与序列长度线性、与参数量线性</strong>。(2) <strong>显存</strong>——(a) <strong>权重</strong>——N 个参数 × 精度字节(FP16 为 2 字节);(b) <strong>KV cache</strong>——每层存 K、V,规模为 2 · n_layer · n_kv_head · d_head · T · batch;<strong>随上下文长度 T 与并发 batch 线性增长</strong>;(c) <strong>激活与临时缓冲</strong>——随 batch 增长。(3) <strong>瓶颈判定(roofline)</strong>——(a) <strong>prefill</strong>——矩阵乘规模大(T_in × N),<strong>算术强度高 → 算力受限</strong>;(b) <strong>decode</strong>——每步只处理 1 个 token,算术强度极低,<strong>需反复从显存读取权重与 KV → 显存带宽受限</strong>;(c) <strong>故优化手段不同</strong>——prefill 靠更好的 kernel(FlashAttention)、decode 靠增大 batch(摊薄权重读取)。(4) <strong>优化方向</strong>——(a) <strong>批处理</strong>——把多个请求合并,提高算术强度、摊薄权重读取;(b) <strong>量化</strong>——INT8/INT4 降低权重与 KV 的显存占用与带宽需求;(c) <strong>KV 压缩</strong>——GQA/MQA/MLA 减少 KV 头数或做低秩压缩;(d) <strong>前缀缓存(prefix caching)</strong>——复用系统提示词的 KV,避免重复 prefill;(e) <strong>模型蒸馏/路由</strong>——用更小的模型处理大多数请求;(f) <strong>推测解码</strong>——用小模型起草、大模型验证,减少大模型前向步数。<strong>商业口径</strong>——(a) <strong>按 token 计费</strong>——输入(prefill)通常比输出(decode)便宜,因为 prefill 可批处理、decode 逐 token;(b) <strong>缓存命中</strong>——前缀缓存与语义缓存能显著降低成本;(c) <strong>并发与利用率</strong>——GPU 利用率低则单位 token 成本高(固定成本摊不开)。<strong>与其他问题的关系</strong>——(a) 与批处理的吞吐-延迟权衡;(b) 与量化的精度-成本权衡;(c) 与模型路由、语义缓存。<strong>度量</strong>——(a) 单位 token 成本(美元/百万 token);(b) GPU 利用率(MFU);(c) 每美元吞吐;(d) 缓存命中率。
🏭 Production Trade-offs
深度剖析与工程权衡:① <strong>prefill 与 decode 的瓶颈不同</strong>——前者算力受限、后者带宽受限;面试中能据此区分优化手段是深度理解的标志。② <strong>decode 是成本主因</strong>——逐 token 生成导致权重反复读取,故批处理与量化在 decode 上收益最大。③ <strong>KV cache 随上下文线性增长</strong>——长上下文与高并发下 KV 显存可能超过权重,成为容量瓶颈。④ <strong>批处理是最高性价比手段</strong>——几乎无精度损失、显著提升吞吐。⑤ <strong>缓存是降本的隐藏杠杆</strong>——系统提示词与高频问题命中可省大量 prefill。⑥ <strong>路由与蒸馏换质量</strong>——用精度换成本,需按 SLO 决策。⑦ <strong>面试要点</strong>——被问怎么降低推理成本,应给出'<strong>先定位瓶颈(prefill 算力 vs decode 带宽 vs KV 显存)→ 批处理 → 量化 → KV 压缩 → 缓存 → 路由/蒸馏</strong>';能指出 decode 是带宽瓶颈与 KV 随上下文线性增长是深度理解的标志。
⚠️ Common Interview Pitfalls
- ✕只说减少参数量而不区分 prefill/decode 瓶颈
- ✕忽略 KV cache 的显存与带宽开销
🎯 Interviewer Follow-ups
- ?为什么 decode 阶段是显存带宽瓶颈而非算力瓶颈?
- ?KV cache 随上下文增长对成本的影响有多大?
📚
Associated Knowledge Base Guides & Mindmaps
Explore the comprehensive technical article, exam cards, and global architecture tree.