M8-034M8: ML Systems, Engineering & ResearchInference Serving & DeploymentHard
Mastery:
Inference Serving & Deployment: 解释自动扩缩容的设计要点。
📐 Mathematical Definition
⚡ Executive Summary
Core Concept: 按指标(QPS/延迟/GPU 利用率)扩缩;关键是冷启动(模型加载慢)、缩容的保守性、以及预测式扩缩容。
📌 Key Takeaways
- •指标:QPS/队列长度/延迟/GPU 利用率(延迟最贴近体验)
- •难点:冷启动慢(加载模型/编译/预热)→ 扩容不及时
- •缩容要保守(避免抖动);预测式扩缩容(按周期模式提前扩容)
📐 Mathematical Derivations
数学机理:<strong>自动扩缩容的设计要点</strong>——(1) <strong>扩缩容指标</strong>——(a) <strong>QPS/请求数</strong>——直观但不反映'每个请求的成本'(长 prompt 的请求更贵);(b) <strong>队列长度/排队时间</strong>——直接反映'是否过载';(c) <strong>延迟(P99)</strong>——最贴近用户体验;(d) <strong>GPU 利用率</strong>——反映资源使用(但对 LLM 的 memory-bound 场景不敏感);(e) <strong>推荐</strong>——<strong>组合指标</strong>(延迟 + 队列 + 利用率);且按'请求类型'区分(长/短 prompt 的负载不同)。(2) <strong>冷启动(cold start)问题</strong>——(a) <strong>为什么慢</strong>——(i) <strong>加载模型权重</strong>(大模型可能数十 GB,需数十秒到数分钟);(ii) <strong>编译/图优化</strong>(TensorRT 引擎构建可能数分钟);(iii) <strong>预热</strong>(JIT 编译、缓存填充、连接池);(iv) <strong>容器启动</strong>(拉镜像/初始化);(b) <strong>后果</strong>——(i) <strong>扩容不及时</strong>(流量激增时新实例来不及);(ii) 用户遇到超时;(c) <strong>优化</strong>——(i) <strong>镜像预热</strong>(预拉镜像);(ii) <strong>权重预加载/共享存储</strong>(快速读取);(iii) <strong>快照恢复</strong>(从内存快照启动);(iv) <strong>保持最小实例数</strong>(避免缩到 0);(v) <strong>预留容量</strong>(按峰值的一部分预留)。(3) <strong>缩容的保守性</strong>——(a) <strong>问题</strong>——激进的缩容会导致'抖动'(缩容后马上又需扩容);(b) <strong>做法</strong>——(i) <strong>冷却时间(cooldown)</strong>(缩容后一段时间不再扩缩);(ii) <strong>稳定窗口</strong>(指标持续低于阈值一段时间才缩);(iii) <strong>最小实例数</strong>(保底);(iv) <strong>渐进缩容</strong>(一次缩一部分)。(4) <strong>预测式扩缩容(predictive autoscaling)</strong>——(a) <strong>动机</strong>——反应式扩缩容'滞后'(等负载上来才扩,冷启动又慢);(b) <strong>做法</strong>——(i) <strong>按周期模式预测</strong>(如'每天 8 点流量上升'——提前扩容);(ii) <strong>按业务事件</strong>(如'大促'——手动/自动预扩容);(iii) <strong>用历史数据训练预测模型</strong>;(c) <strong>优点</strong>——避免'扩容不及时'。(5) <strong>其他要点</strong>——(a) <strong>多维度扩缩</strong>(按 GPU 类型/模型版本);(b) <strong>成本约束</strong>(扩容有成本——需平衡);(c) <strong>SLO 驱动</strong>(按 SLO 达标率扩缩);(d) <strong>'请求路由'</strong>(把请求路由到有能力的实例——如长 prompt 路由到特定池);(e) <strong>'批处理的优先级'</strong>(低优先级的批任务可被抢占)。<strong>与其他问题的关系</strong>——(a) 与'推理服务核心指标'(延迟驱动扩缩);(b) 与'成本与延迟优化'(扩缩容是成本控制的一部分);(c) 与'可靠性与降级'(过载时的降级)。<strong>实践建议</strong>——(a) <strong>组合指标</strong>(延迟 + 队列 + 利用率);(b) <strong>优化冷启动</strong>(预加载/快照/最小实例);(c) <strong>缩容保守</strong>(冷却 + 稳定窗口 + 保底);(d) <strong>预测式扩缩容</strong>(周期模式/事件);(e) <strong>SLO 驱动</strong>;(f) <strong>监控扩缩容的滞后</strong>。<strong>度量</strong>——(a) 扩容的响应时间(从负载上升到实例就绪);(b) SLO 达标率;(c) 资源利用率;(d) 扩缩容的抖动次数。
🏭 Production Trade-offs
深度剖析与工程权衡:① <strong>'冷启动慢导致扩容不及时'是核心难点</strong>——尤其大模型(加载权重慢);面试中能指出是深度理解的标志。② <strong>'预测式扩缩容'是解法</strong>——按周期模式提前扩容。③ <strong>'缩容要保守'</strong>——避免抖动(缩了又扩)。④ <strong>'按 QPS 扩容不够'</strong>——长 prompt 请求的成本更高;需按'请求类型'或'实际负载'。⑤ <strong>'保持最小实例数'</strong>——避免缩到 0(冷启动更慢)。⑥ <strong>面试要点</strong>——被问'自动扩缩容怎么设计',应给出'<strong>指标(延迟/队列/利用率)+ 冷启动优化(预加载/快照/最小实例)+ 缩容保守(冷却/稳定窗口)+ 预测式扩缩容 + SLO 驱动</strong>';能指出'冷启动导致扩容不及时'是深度理解的标志。
⚠️ Common Interview Pitfalls
- ✕按 QPS 扩容(长 prompt 请求被低估)
- ✕激进缩容导致抖动
🎯 Interviewer Follow-ups
- ?为什么'按 QPS 扩容'可能不够?
- ?冷启动如何优化?
📚
Associated Knowledge Base Guides & Mindmaps
Explore the comprehensive technical article, exam cards, and global architecture tree.