核心要点
ML 的 CI 不止跑 lint/单测,还要验证数据 schema 与分布、并对模型指标做回归测试
CD 应从模型注册表拉 artifact 自动部署,杜绝手工拷贝 checkpoint 上线
CT(持续训练)是 ML 独有:由新数据到达或漂移告警触发重训,而非代码提交
质量门禁是核心——指标不达 baseline 或公平性不过就阻断,劣质模型进不了生产
标准回答
传统 CI/CD 针对代码;ML CI/CD 扩展为:
CI(Continuous Integration):
- 代码:lint、单元测试、特征 transform 测试
- 数据:schema 验证、分布快照对比
- 模型:小数据集 smoke training、metric 回归测试(不低于 baseline)
CD(Continuous Delivery/Deployment):
- 评估通过 → 构建推理镜像 → Staging → 金丝雀 → Production
- 模型 artifact 从 Registry 拉取,非手工拷贝
CT(Continuous Training)——ML 特有:
- 新数据到达或漂移告警 → 自动触发训练 pipeline
- 新模型 beat 旧模型 → 自动进入 CD 流程
典型 GitHub Actions / GitLab CI 阶段:lint → data-test → train → evaluate → register → deploy-staging → integration-test → promote
常见误区
⚠️ 常见踩坑
CI 只跑 pylint 不验证数据/模型;无门禁自动部署最新 checkpoint;混淆 CI 与夜间 batch 训练。
追问
追问 1:ML 流水线 CI 跑全量训练是否可行?
通常不在 CI 里跑全量训练——耗时数小时到数天、占用昂贵 GPU,会拖垮反馈速度。CI 用小样本做 smoke training 验证代码能跑通、形状/损失正常;全量训练交给独立的训练流水线(CT)异步执行,再由门禁决定是否晋级。
追问 2:如何测试机器学习代码?
分层测试:单元测试覆盖数据转换、特征工程等确定性函数;用小数据集做 smoke training 验证训练循环不崩;对模型做行为/指标回归测试(关键指标不低于 baseline、不变性测试如同义改写预测应稳定);再加数据校验测试(schema、空值率、分布)。
追问 3:蓝绿部署 vs 金丝雀在 ML 中?
蓝绿:流量一键切换,回滚快;金丝雀:5%→50%→100% 逐步验证线上 metric,适合观察模型真实业务影响。常结合 shadow(新模型只记录不返回)。
延伸学习
与本题相关的知识库文章、术语、工具与行业资讯。
📚 知识库
📰 AI 资讯
🛠️ AI 工具
- BentoML
AI 模型服务化框架,8.6K+ stars。最简化的方式部署 AI 应用和模型,支持模型推理 API、任务队列、LLM 服务等,是模型从实验到生产的桥梁