mcpField
M
ml-pipeline-creation

ml-pipeline-creation

github.com/seb1n数据与数据库232112 次安装11 周前更新
代码仓库

关于 ml-pipeline-creation

ml-pipeline-creation 是用于设计可复现机器学习工作流的技能,面向构建和运维模型流水线的团队。它强调明确的阶段契约、产物沿袭、评估门槛和运维流程,并优先复用现有环境。

主要功能

  1. 01依赖图与版本化流水线定义
  2. 02明确各阶段输入和输出架构
  3. 03数据、模型与环境版本管理
  4. 04评估门槛与晋级控制
  5. 05重试、回填、观测与回滚方案
  6. 06逐步验证流水线

适用场景

  1. 01基于现有编排工具设计训练流水线
  2. 02追踪模型产物与数据沿袭
  3. 03阻止未经批准或未达门槛的模型晋级
  4. 04测试重试、回填与故障处理

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/seb1n/awesome-ai-agent-skills --skill ml-pipeline-creation

安装后在 Claude Code 中输入/ml-pipeline-creation确认已加载。

详细介绍

ML 流水线创建

构建可复现的 ML 工作流,明确输入、输出、溯源和晋级标准。优先采用项目现有的编排工具和约定;不要仅为展示而引入新平台。

必需输入

  • 业务目标和可衡量的模型验收标准
  • 数据源、所有权、敏感性和预期刷新频率
  • 现有的预处理、训练、评估和服务代码
  • 目标环境以及可用的编排或 CI 系统
  • 算力、成本、延迟、可复现性和合规约束

如果缺少关键信息,请说明假设,并在选择实现方案前设计一个平台无关的流水线。

输出约定

请提供:

  1. 流水线阶段和产物的依赖关系图
  2. 有版本控制的流水线定义或实现
  3. 每个阶段输入和输出的明确模式
  4. 数据、模型和环境的版本控制规则
  5. 评估和晋级关卡及失败处理方式
  6. 可观测性、重试、回填和回滚流程
  7. 显示流水线测试方式的验证记录

工作流

  1. 检查环境。 确定代码库使用的语言、依赖管理器、现有编排系统、模型框架、产物存储和部署路径。尽可能复用已有工具。
  2. 定义约定。 记录目标、数据快照规则、目标指标、基线、验收阈值、资源预算和部署约束。区分离线评估指标与生产健康指标。
  3. 构建 DAG。 将数据摄取、验证、拆分、转换、训练、评估、注册和部署表示为幂等阶段。声明每项产物,不要依赖未声明的文件或可变全局状态。
  4. 确保可复现性。 固定依赖版本,在适当情况下为随机操作设置种子,为代码和数据建立版本,并保存带有溯源信息的不可变产物。仅使用训练数据拟合转换,防止训练集与验证集泄漏。
  5. 添加质量关卡。 训练前验证模式,将指标与基线比较,缺少或产物无效时立即失败;如果后果重大,生产晋级前必须获得明确批准。
  6. 设计运维流程。 仅针对暂时性故障定义重试,使重新运行保持幂等,明确回填范围,输出结构化日志和指标,并记录回滚至最近已知良好模型的步骤。
  7. 逐步测试。 对组件运行单元测试,使用小型确定性夹具运行端到端测试,并在暂存环境中执行或进行试运行。确认阶段失败不会悄然发布模型。

示例

对于批处理分类器,明确规定产物流转:

pipeline: customer-churn-training
inputs:
  raw_snapshot: data/raw/churn-2026-08-01.parquet
stages:
  - name: prepare-data
    inputs: [raw_snapshot]
    outputs: [train_set, validation_set, test_set, feature_schema]
  - name: train-model
    inputs: [train_set, feature_schema, training_config]
    outputs: [model, training_metrics]
  - name: evaluate-model
    inputs: [model, validation_set, test_set, baseline_metrics]
    outputs: [evaluation_report, promotion_decision]
  - name: register-model
    condition: promotion_decision == "pass"
    inputs: [model, evaluation_report]
    outputs: [registered_model_version]

要求 prepare-data 输出所有已声明的数据拆分。如果缺少 test_set,则拒绝此次运行,不要让评估阶段使用未声明的路径。

安全边界

  • 将数据集、凭据、模型产物和日志视为可能包含敏感信息。
  • 未经授权且未按要求去标识化,不得将生产数据复制到开发环境。
  • 未经明确批准,不得部署模型、替换已注册模型或修改生产基础设施。
  • 执行前展示具有破坏性的迁移或清理方案,并保留回滚途径。
  • 标明公平性、隐私、安全或法规审查要求;不要仅凭流水线执行就宣称符合要求。

验证

  • 重新运行 fixture 两次,确认各阶段契约和预期的确定性输出均保持一致。
  • 强制某个阶段失败,并验证下游阶段不会执行。
  • 验证可从已注册的模型追溯工件哈希、代码修订版本、参数、数据版本和评估结果。
  • 测试重试和回填行为,确保不会重复创建记录或覆盖不可变工件。
  • 确认部署门禁会拒绝低于阈值的模型,并接受已知良好的 fixture。

最佳实践

  • 保持组件小巧、幂等且可独立测试。
  • 将管道编排与模型业务逻辑分离。
  • 将配置存储为带版本的数据;不要将阈值埋在代码中。
  • 优先使用不可变工件和明确的血缘关系,而非可变的“最新”路径。
  • 部署后持续监控数据质量和模型行为,而不只是在训练期间监控。

边缘情况

  • 流式数据: 使用事件时间语义、检查点和可安全重放的接收端。
  • 非确定性训练: 记录随机种子和环境详情,然后在约定的容差范围内进行验证。
  • 大规模回填: 限定日期范围、估算成本,并在扩展前先测试一个分区。
  • 架构漂移: 隔离不兼容的数据,并要求经过审核的架构迁移。
  • 部分推广: 确保注册表、服务配置和监控变更以事务方式进行,或明确支持回滚。

评论

支持 Markdown