M8-036M8: ML Systems, Engineering & ResearchInference Serving & DeploymentHard
Mastery:
Inference Serving & Deployment: 解释多模型服务(multi-model serving)与模型编排。
📐 Mathematical Definition
⚡ Executive Summary
Core Concept: 多模型共享资源(动态加载/卸载、MPS、多租户);编排把多个模型串成流水线(预处理→模型→后处理)。
📌 Key Takeaways
- •多模型共享 GPU:动态加载/卸载、多租户隔离、资源配额
- •编排(ensemble):预处理 → 模型 → 后处理 的流水线
- •技术:MPS/MIG(GPU 共享)、CUDA stream(并发)、模型缓存与换入换出
📐 Mathematical Derivations
数学机理:<strong>多模型服务与编排</strong>——(1) <strong>多模型共享(multi-model serving)</strong>——(a) <strong>动机</strong>——(i) <strong>模型数量多</strong>(每个用户/场景一个模型——如'千人千模');(ii) <strong>每个模型的使用频率低</strong>(如'长尾模型')→ 独占 GPU 浪费;(iii) <strong>成本</strong>——共享可提高利用率;(b) <strong>技术</strong>——(i) <strong>动态加载/卸载</strong>(按需把模型加载到 GPU、不用时卸载——'换入换出');(ii) <strong>GPU 共享</strong>——(1) <strong>MPS(Multi-Process Service)</strong>(多进程共享同一 GPU 的 SM);(2) <strong>MIG(Multi-Instance GPU)</strong>(把 GPU 切成多个独立实例——<strong>硬件隔离</strong>);(3) <strong>时间片轮转</strong>(简单但延迟抖动);(iii) <strong>多租户隔离</strong>(资源配额、故障隔离、安全);(iv) <strong>模型缓存</strong>(LRU 换出冷模型);(c) <strong>挑战</strong>——(i) <strong>延迟抖动</strong>(换入换出时延迟高);(ii) <strong>显存管理</strong>(多个模型共存);(iii) <strong>公平性</strong>(某租户占满资源);(iv) <strong>冷启动</strong>(首次加载慢)。(2) <strong>模型编排(ensemble / pipeline)</strong>——(a) <strong>动机</strong>——真实应用常需<strong>多个模型串联</strong>:'预处理模型(分词/图像解码)→ 主模型 → 后处理模型(NMS/解码/格式化)';(b) <strong>实现</strong>——(i) <strong>Triton Ensemble</strong>(声明式定义流水线——DAG);(ii) <strong>Python pipeline</strong>(简单但性能差);(iii) <strong>服务网格</strong>(各模型独立服务、通过 RPC 串联——灵活但有网络开销);(c) <strong>关键</strong>——(i) <strong>数据传递</strong>(中间结果的序列化/共享内存——避免拷贝开销);(ii) <strong>批处理</strong>(各阶段独立批处理 vs 端到端批处理);(iii) <strong>错误处理</strong>(某阶段失败的处理);(iv) <strong>资源分配</strong>(各阶段的 GPU 分配)。(3) <strong>级联(cascade)</strong>——(a) <strong>动机</strong>——用<strong>小模型快速筛选</strong>、只把'难的样本'交给大模型;(b) <strong>例子</strong>——(i) 推荐:粗排(小模型)→ 精排(大模型);(ii) 内容审核:分类器 → VLM;(iii) LLM:小模型回答简单问题、大模型回答难题;(c) <strong>收益</strong>——成本大幅降低(大部分请求走小模型);(d) <strong>关键</strong>——'路由'的判断(置信度/难度分类器)。(4) <strong>其他</strong>——(a) <strong>模型路由(model routing)</strong>(见 M7 的成本优化题);(b) <strong>A/B 分流</strong>(不同流量走不同模型版本);(c) <strong>影子模型</strong>(并行跑但不返回)。<strong>与其他问题的关系</strong>——(a) 与'推理引擎'(Triton 支持多模型与 ensemble);(b) 与'成本与延迟优化'(共享与级联降成本);(c) 与'可靠性与降级'(多模型的降级)。<strong>实践建议</strong>——(a) <strong>多模型共享用 MPS/MIG + 动态加载</strong>(提高利用率);(b) <strong>编排用 Triton Ensemble 或服务网格</strong>(注意数据传递开销);(c) <strong>级联(小模型+大模型)降成本</strong>;(d) <strong>多租户隔离</strong>(配额 + 故障隔离);(e) <strong>监控各模型的延迟与利用率</strong>;(f) <strong>注意'换入换出'的延迟抖动</strong>。<strong>度量</strong>——(a) GPU 利用率;(b) 各模型的延迟;(c) 编排的端到端延迟与开销;(d) 级联的成本节省;(e) 租户隔离的有效性。
🏭 Production Trade-offs
深度剖析与工程权衡:① <strong>'多模型共享提高利用率'</strong>——长尾模型独占 GPU 浪费;面试中能指出是深度理解的标志。② <strong>'MIG 是硬件隔离'</strong>——比 MPS 更彻底(适合多租户)。③ <strong>'级联降成本'</strong>——大部分请求走小模型。④ <strong>'编排的数据传递开销'</strong>——中间结果序列化/拷贝可能成为瓶颈(用共享内存)。⑤ <strong>'换入换出的延迟抖动'</strong>——共享的代价。⑥ <strong>面试要点</strong>——被问'多模型怎么服务',应给出'<strong>共享(MPS/MIG/动态加载/多租户)+ 编排(Ensemble/服务网格 + 数据传递)+ 级联(小模型+大模型)+ 换入换出的抖动</strong>';能指出'级联降成本'与'MIG 硬件隔离'是深度理解的标志。
⚠️ Common Interview Pitfalls
- ✕每个长尾模型独占 GPU(浪费)
- ✕编排时忽略中间结果的拷贝开销
🎯 Interviewer Follow-ups
- ?为什么要'多模型共享'?
- ?编排的'数据传递'如何设计?
📚
Associated Knowledge Base Guides & Mindmaps
Explore the comprehensive technical article, exam cards, and global architecture tree.