SuperAPI AI 工具集

ml-ops-engineer

部署与运维

查看项目

更新于 10-15 12:36

技能介绍

MLOps Engineer 是一个面向 MLOps 工程的技能,作为资深 MLOps 工程师工作,负责将模型部署到生产、编排训练流水线、监控模型健康度、管理特征存储,并自动化 ML CI/CD。

使用前先澄清输入 在部署前需确认以下输入,若有未知或不明确,应先询问而不要假设:

  1. 服务模式与延迟 SLA:实时(FastAPI/K8s)还是批量,以及 P99 目标;这会决定整个部署架构。
  2. 当前 MLOps 成熟度:手工、流水线、CI/CD 还是完整级,用于识别最优先要补齐的差距。
  3. 模型产物与注册表/基础设施:框架、存储位置、目标平台(如 MLflow、K8s),决定服务与注册表配置。
  4. 监控阈值:漂移与准确率下降的限值及检查频率,决定告警规则与漂移检测。停止规则:只问最影响输出的 2-3 项;若用户说“先起草”,则继续并在产物顶部列出假设。

工作流程

  1. 评估 ML 成熟度:确定当前级别(手工笔记本 vs 自动化流水线 vs 完整 CI/CD),找出最优先要弥补的差距。
  2. 构建或扩展训练流水线:定义取数、验证、预处理、训练、评估阶段,使用 Kubeflow、Airflow 或同类工具,并用准确率阈值(如 > 0.85)作为部署门禁。
  3. 部署模型服务:根据延迟需求选择实时(FastAPI + K8s)或批量(Spark/Parquet),配置健康检查、自动扩缩容与资源限制。
  4. 在模型注册表登记:用 MLflow 记录参数、指标与产物,将胜出版本转入 Production 阶段,归档上一版本。
  5. 埋点监控:设置延迟(P50/P95/P99)、错误率、预测分布与特征漂移仪表盘,配置告警阈值。
  6. 端到端验证:对服务端点运行冒烟测试,确认监控仪表盘有数据,验证回滚流程可用。

MLOps 成熟度模型 Level 0 手工:Jupyter 笔记本、手工部署,模型无版本控制。 Level 1 流水线:自动化训练、模型版本化,使用 MLflow 追踪。 Level 2 CI/CD:持续训练、自动化测试,特征存储投入使用。 Level 3 完整 MLOps:漂移自动重训、A/B 测试,有 SLA 保障的监控。

主要能力

  • 实时服务示例:FastAPI 模型服务,加载 MLflow Production 模型,提供 /predict 与 /health 接口,返回预测、模型版本与延迟。
  • Kubernetes 部署:Deployment 配置副本数、镜像、端口、资源请求/限制(含 GPU)、环境变量与就绪探针;HorizontalPodAutoscaler 按 CPU 利用率在 2-10 副本间扩缩。
  • 漂移检测:用 Kolmogorov-Smirnov 检验计算漂移分数与 p 值,支持对所有特征批量检测。
  • 告警规则:延迟 P99、错误率、准确率下降、漂移分数等阈值与严重级别。
  • 特征存储(Feast):定义实体与 FeatureView,TTL、在线特征、文件源,并演示在线检索。
  • 实验追踪(MLflow):设置追踪 URI 与实验,记录参数、指标与模型,并注册模型名。
  • 扩展模式:Kubeflow 流水线、Airflow DAG、CI/CD 工作流、模型注册表操作见 REFERENCE.md。

脚本

  • model_registry.py:注册、提升、列出、比较模型版本及指标、参数、生命周期阶段。命令示例包括 register、promote、list --stage production --json、compare、--json 等。
  • drift_detector.py:基于 KS 统计量、PSI、卡方检测参考与当前数据集之间的数据/模型漂移,支持 --reference、--current、--columns、--threshold、--json。
  • pipeline_validator.py:校验 ML 流水线定义的完整性、阶段顺序、评估门禁与回滚配置,支持 --pipeline、--strict、--json。

故障排查

  • 模型延迟超过 P99 SLA:模型过大、输入预处理慢或 Pod 资源不足;可做性能分析、模型蒸馏、输入缓存或增加 CPU/内存。
  • 所有特征都被标记漂移:阈值过低或参考数据时间段不合适;可提高阈值(0.15-0.2)或重新生成参考数据集。
  • 流水线在评估门禁失败:模型准确率低于阈值;检查上游数据质量、用漂移检测比较特征分布、用新数据重训。
  • 注册表提示“already registered”:同名同版本已注册;使用新版本号或移除测试条目。
  • K8s Pod 在模型服务上崩溃重启:OOM 或健康检查超时过短;增加内存限制、延长就绪探针 initialDelaySeconds。
  • 特征存储返回过期特征:物化任务失败或超出 TTL;检查物化日志、重跑物化、缩短 TTL 或添加新鲜度告警。
  • pipeline_validator.py 报 STAGE_ORDER 错误:阶段顺序不符合 data -> transform -> train -> evaluate -> deploy;按规范顺序重排。

成功标准 所有生产模型在接收流量前已在注册表登记版本、指标与参数;漂移检测按计划(至少每周)运行,当 PSI > 0.2 或 KS > 0.15 时告警;ML 流水线在部署前通过 pipeline_validator.py --strict 零错误;服务延迟满足 SLA:P50 < 50 ms、P95 < 100 ms、P99 < 200 ms;每次提升生产版本自动归档上一生产版本;回滚在 5 分钟内完成且零停机;流水线阶段包含评估门禁,在准确率低于阈值时阻止部署。

范围与限制 范围内:模型部署(实时与批量)、ML 流水线编排、模型注册表管理、漂移检测(数据漂移、概念漂移、预测漂移)、特征存储模式、监控与告警、Kubernetes 部署配置、ML 的 CI/CD。 范围外:模型架构设计与算法选择、原始数据摄取流水线、BI 仪表盘开发、业务策略。 限制:Python 工具仅使用标准库;drift_detector.py 用近似方法计算 KS 统计量与 PSI,不支持多变量漂移检测或 Evidently/Alibi Detect 集成;model_registry.py 状态存于本地 JSON 文件,生产使用需接入 MLflow Model Registry 或类似平台;pipeline_validator.py 只验证结构与约定,不执行流水线阶段。

集成点 与数据科学家:接收带实验元数据的已训练模型,将胜出实验提升到注册表部署。 与分析师工程师:特征工程流水线可能依赖 dbt mart 模型,模式变更会触发流水线重新校验。 与工程(资深 ML 工程师):协作进行面向服务约束(延迟、内存、GPU)的模型架构优化。 与基础设施:Kubernetes 配置、自动扩缩策略与 CI/CD 工作流与平台工程共同管理。 与商业智能:模型预测可能输入 BI 仪表盘,监控指标呈现在运营仪表盘。