M8-051M8: ML Systems, Engineering & ResearchMLOps & CI/CD for AIEasy
Mastery:

MLOps & CI/CD for AI: 解释 ML 的 CI/CD 与传统软件 CI/CD 的差异。

📐 Mathematical Definition
CI/CDML=code+data+model+config;gate=tests+metrics\text{CI/CD}_{\text{ML}}=\text{code}+\text{data}+\text{model}+\text{config};\qquad \text{gate}=\text{tests}+\text{metrics}
⚡ Executive Summary
Core Concept: ML 除代码外还要版本化数据与模型、验证数据与模型(而非仅单元测试)、用离线/在线指标做门禁、并支持回滚模型版本而非仅回滚代码。

📌 Key Takeaways

  • •
    版本化对象——代码、数据快照、模型权重、特征定义、超参与环境全部需版本化并可追溯
  • •
    测试扩展——除单元/集成测试外,需数据验证(schema/分布)、模型验证(指标/切片/鲁棒性)
  • •
    门禁差异——传统 CI 用测试通过与否;ML 需用指标阈值、分群不退化、性能与成本约束
  • •
    部署差异——模型可热更新、灰度、A/B、影子;回滚需回滚模型与特征而非仅代码
  • •
    触发差异——除代码提交外,数据更新、漂移、定时都可触发流水线

📐 Mathematical Derivations

数学机理:<strong>CI/CD 的扩展维度</strong>——(1) <strong>CI(持续集成)的扩展</strong>——(a) <strong>传统 CI</strong>——代码提交 → 构建 → 单元/集成测试 → 制品;(b) <strong>ML CI 追加</strong>——(i) <strong>数据验证</strong>——schema 检查、分布检查(与基线对比)、缺失/越界、时间范围;(ii) <strong>特征验证</strong>——特征定义与实现的漂移(训练与推理一致性);(iii) <strong>模型验证</strong>——离线指标、分群指标、校准、鲁棒性、公平性、延迟与成本;(iv) <strong>训练复现</strong>——固定种子与环境的可复现训练;(c) <strong>门禁</strong>——任一验证失败则阻断(质量门)。(2) <strong>CD(持续交付/部署)的扩展</strong>——(a) <strong>制品</strong>——不只代码,还有模型权重、特征转换、提示词、配置;(b) <strong>部署模式</strong>——(i) <strong>影子(shadow)</strong>——新模型旁路运行、不影响用户、对比指标;(ii) <strong>金丝雀(canary)</strong>——小流量上线、逐步放量;(iii) <strong>A/B</strong>——分流对比业务指标;(iv) <strong>蓝绿</strong>——整体切换、快速回滚;(c) <strong>回滚</strong>——需回滚<strong>模型版本 + 特征版本 + 配置</strong>,且要考虑'特征已写入'的一致性。(3) <strong>版本化与血缘</strong>——(a) <strong>代码版本</strong>——Git;(b) <strong>数据版本</strong>——DVC/LakeFS/时间戳快照;(c) <strong>模型版本</strong>——MLflow Model Registry;(d) <strong>血缘(lineage)</strong>——从模型追溯到训练数据、代码提交、超参,用于审计与调试。(4) <strong>触发</strong>——(a) <strong>代码提交</strong>;(b) <strong>数据更新</strong>——新数据到位触发再训练(CT);(c) <strong>漂移/指标下降</strong>——监控触发;(d) <strong>定时</strong>——周期性刷新。(5) <strong>环境与依赖</strong>——(a) <strong>容器镜像</strong>——固定 OS、CUDA、库版本;(b) <strong>依赖锁定</strong>——精确版本(避免'昨天还能跑');(c) <strong>硬件描述</strong>——GPU 型号影响数值(非确定性算子)。(6) <strong>测试金字塔的 ML 版</strong>——(a) <strong>单元测试</strong>——数据转换函数、特征逻辑;(b) <strong>数据测试</strong>——schema/分布/新鲜度;(c) <strong>模型测试</strong>——指标/切片/对抗;(d) <strong>系统测试</strong>——端到端延迟/吞吐;(e) <strong>在线测试</strong>——A/B。(7) <strong>与 DevOps 的共性</strong>——自动化、可重复、快速反馈、小步快跑、可回滚;<strong>差异</strong>在于制品与验证对象扩展到数据与模型。<strong>与其他问题的关系</strong>——(a) 与质量门;(b) 与持续训练;(c) 与训练-服务一致性;(d) 与可靠性与回滚。<strong>度量</strong>——(a) 变更前置时间;(b) 部署频率;(c) 变更失败率;(d) 平均恢复时间(MTTR)。

🏭 Production Trade-offs

深度剖析与工程权衡:① <strong>ML CI 的验证对象多了数据与模型</strong>——面试中能区分'代码测试'与'数据/模型测试'是深度理解的标志。② <strong>门禁需用指标阈值而非仅布尔测试</strong>——且要看分群与切片。③ <strong>模型回滚比代码回滚复杂</strong>——涉及特征版本与已写入数据的一致性。④ <strong>血缘是审计与调试的基础</strong>——能回答'这个模型是用哪版数据训练的'。⑤ <strong>触发源更多</strong>——数据/漂移/定时都能触发流水线。⑥ <strong>环境锁定不可省</strong>——非确定性算子与依赖漂移是复现的头号敌人。⑦ <strong>面试要点</strong>——被问 ML 的 CI/CD 与软件有何不同,应给出'<strong>版本化对象扩展到数据与模型 + 验证扩展到数据/模型 + 门禁用指标阈值 + 部署含影子/金丝雀/A-B + 回滚含模型与特征 + 触发含数据与漂移</strong>';能指出模型回滚的复杂性是深度理解的标志。
⚠️ Common Interview Pitfalls
  • ✕
    只做代码测试不做数据与模型验证
  • ✕
    把模型回滚等同于代码回滚(忽略特征版本)
🎯 Interviewer Follow-ups
  • ?
    为什么 ML 的 CI 需要验证数据而不只是代码?
  • ?
    模型回滚为什么比代码回滚复杂?
📚

Associated Knowledge Base Guides & Mindmaps

Explore the comprehensive technical article, exam cards, and global architecture tree.

← PreviousM8-050: Cost & Latency Optimization: 解释端到端推理延迟的分解与 SLO 驱动的优化。📋Back to BankNext →M8-052: MLOps & CI/CD for AI: 解释模型上线的质量门(quality gate)设计。