核心要点

  • 阶段化:数据采集→特征工程→训练→评估→模型注册→部署→监控,可编排可复现

  • 可复现:数据/代码/配置版本化(DVC + Git + 实验追踪),固定随机种子

  • 线上线下一致:训练与服务共用特征定义(Feature Store),杜绝特征偏斜

  • 可回滚 + 持续监控:模型注册表管版本,监控数据/概念漂移触发重训

标准回答

目标

把「数据到上线」做成自动化、可复现、可回滚的流水线,缩短迭代周期并保证质量,而非手工 notebook 跑模型。

整体架构(DAG 编排)

数据采集/校验 → 特征工程 → 训练 → 评估 → 模型注册 → 部署 → 监控,用编排工具(Airflow/Kubeflow)串成 DAG,每步可独立重跑。

数据与特征

数据接入后做 schema/质量校验;特征工程产出存入 Feature Store,训练与在线服务共用同一份特征定义,避免训练-服务偏斜(training-serving skew)。

训练与评估

训练用版本化的数据 + 代码 + 超参,固定随机种子保证可复现;实验追踪(如 W&B)记录指标与产物。评估在留出集/离线指标达标 + 与基线对比通过后才放行。

注册与部署

通过的模型连同元数据(数据版本、指标、依赖)存入模型注册表;部署用灰度/影子流量 + A/B,保留上一版本以便一键回滚。

监控与闭环

线上监控服务指标(延迟/吞吐/错误)与模型指标(预测分布、数据漂移、概念漂移、效果衰减),触发告警与自动/人工重训,形成数据飞轮闭环。

可复现性贯穿全程:数据用 DVC、代码用 Git、配置与产物版本化,任一历史模型可精确重建。

常见误区

⚠️ 常见踩坑

只关注训练精度,忽视可复现(数据/配置没版本化,模型无法复现)与线上线下特征一致性;以及上线后无监控,模型悄悄因数据漂移而失效。

追问

追问 1如何保证流水线可复现?

三要素都要版本化:数据用 DVC 或快照锁定版本,代码用 Git 提交哈希,配置/超参与依赖环境(容器镜像)固定;训练固定随机种子。实验追踪工具记录每次运行的数据版本、代码版本、超参与产物,使任意历史模型都能按记录精确重建。

追问 2什么是训练-服务偏斜(training-serving skew),怎么避免?

指训练时和线上服务时的特征计算逻辑不一致(如离线用全量统计、在线用实时近似),导致离线指标好但线上崩。避免方法是用 Feature Store 统一特征定义,训练和服务读同一套特征/同一套转换代码,并对线上线下特征做一致性校验监控。

追问 3上线后如何监控并决定何时重训?

监控分两层:服务层(延迟、吞吐、错误率)和模型层(预测分布漂移、输入特征的数据漂移、标签到位后的真实效果衰减)。当检测到显著数据/概念漂移或核心指标跌破阈值时告警,触发定时或事件驱动的自动重训,新模型经评估与 A/B 验证后灰度替换,旧版本保留以便回滚。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。