name: ml-pipeline-workflow description: 构建从数据准备到模型训练、验证和生产部署的端到端MLOps管道。在创建ML管道、实现MLOps实践或自动化模型训练和部署工作流时使用。
ML管道工作流程
完整的端到端MLOps管道编排,从数据准备到模型部署。
概述
这个技能提供了构建生产级ML管道的全面指导,涵盖全生命周期:数据摄取 → 准备 → 训练 → 验证 → 部署 → 监控。
何时使用此技能
- 从头开始构建新的ML管道
- 为ML系统设计工作流程编排
- 实现数据 → 模型 → 部署自动化
- 设置可复现的训练工作流
- 创建基于DAG的ML编排
- 将ML组件集成到生产系统中
此技能提供的内容
核心能力
-
管道架构
- 端到端工作流设计
- DAG编排模式(Airflow、Dagster、Kubeflow)
- 组件依赖和数据流
- 错误处理和重试策略
-
数据准备
- 数据验证和质量检查
- 特征工程管道
- 数据版本控制和血统
- 训练/验证/测试拆分策略
-
模型训练
- 训练作业编排
- 超参数管理
- 实验跟踪集成
- 分布式训练模式
-
模型验证
- 验证框架和指标
- A/B测试基础设施
- 性能回归检测
- 模型比较工作流
-
部署自动化
- 模型服务模式
- 金丝雀部署
- 蓝绿部署策略
- 回滚机制
参考文档
参见 references/ 目录获取详细指南:
- data-preparation.md - 数据清理、验证和特征工程
- model-training.md - 训练工作流和最佳实践
- model-validation.md - 验证策略和指标
- model-deployment.md - 部署模式和服务架构
资产和模板
assets/ 目录包含:
- pipeline-dag.yaml.template - 工作流程编排的DAG模板
- training-config.yaml - 训练配置模板
- validation-checklist.md - 预部署验证检查清单
使用模式
基础管道设置
# 1. 定义管道阶段
stages = [
"data_ingestion",
"data_validation",
"feature_engineering",
"model_training",
"model_validation",
"model_deployment"
]
# 2. 配置依赖
# 参见assets/pipeline-dag.yaml.template获取完整示例
生产工作流
-
数据准备阶段
- 从来源摄取原始数据
- 运行数据质量检查
- 应用特征转换
- 版本化处理后的数据集
-
训练阶段
- 加载版本化训练数据
- 执行训练作业
- 跟踪实验和指标
- 保存训练好的模型
-
验证阶段
- 运行验证测试套件
- 与基线比较
- 生成性能报告
- 批准部署
-
部署阶段
- 打包模型工件
- 部署到服务基础设施
- 配置监控
- 验证生产流量
最佳实践
管道设计
- 模块化:每个阶段应独立可测试
- 幂等性:重新运行阶段应是安全的
- 可观测性:在每个阶段记录指标
- 版本控制:跟踪数据、代码和模型版本
- 故障处理:实现重试逻辑和告警
数据管理
- 使用数据验证库(Great Expectations、TFX)
- 使用DVC或类似工具版本化数据集
- 记录特征工程转换
- 维护数据血统跟踪
模型操作
- 分离训练和服务基础设施
- 使用模型注册表(MLflow、Weights & Biases)
- 为新模型实施渐进式发布
- 监控模型性能漂移
- 保持回滚能力
部署策略
- 从影子部署开始
- 使用金丝雀发布进行验证
- 实施A/B测试基础设施
- 设置自动回滚触发器
- 监控延迟和吞吐量
集成点
编排工具
- Apache Airflow:基于DAG的工作流程编排
- Dagster:基于资产的管道编排
- Kubeflow Pipelines:Kubernetes原生ML工作流
- Prefect:现代数据流自动化
实验跟踪
- MLflow用于实验跟踪和模型注册
- Weights & Biases用于可视化和协作
- TensorBoard用于训练指标
部署平台
- AWS SageMaker用于托管ML基础设施
- Google Vertex AI用于GCP部署
- Azure ML用于Azure云
- Kubernetes + KServe用于云无关服务
渐进披露
从基础开始,逐步增加复杂性:
- 级别1:简单线性管道(数据 → 训练 → 部署)
- 级别2:添加验证和监控阶段
- 级别3:实施超参数调优
- 级别4:添加A/B测试和渐进式发布
- 级别5:多模型管道与集成策略
常见模式
批量训练管道
# 参见assets/pipeline-dag.yaml.template
stages:
- name: data_preparation
dependencies: []
- name: model_training
dependencies: [data_preparation]
- name: model_evaluation
dependencies: [model_training]
- name: model_deployment
dependencies: [model_evaluation]
实时特征管道
# 实时特征的流处理
# 与批量训练结合
# 参见references/data-preparation.md
持续训练
# 按计划自动重新训练
# 由数据漂移检测触发
# 参见references/model-training.md
故障排除
常见问题
- 管道失败:检查依赖和数据可用性
- 训练不稳定:审查超参数和数据质量
- 部署问题:验证模型工件和服务配置
- 性能下降:监控数据漂移和模型指标
调试步骤
- 检查每个阶段的管道日志
- 在边界验证输入/输出数据
- 隔离测试组件
- 审查实验跟踪指标
- 检查模型工件和元数据
后续步骤
设置管道后:
- 探索 超参数调优 技能进行优化
- 学习 实验跟踪设置 用于MLflow/W&B
- 复习 模型部署模式 用于服务策略
- 使用可观测性工具实施监控
相关技能
- experiment-tracking-setup:MLflow和Weights & Biases集成
- hyperparameter-tuning:自动超参数优化
- model-deployment-patterns:高级部署策略