数据与模型版本控制

面向生产环境的机器学习模型开发

Sinan Ozdemir

Data Scientist, Entrepreneur, and Author

主次版本控制

两类版本:主版本与次版本

  • 主版本表示数据或模型的重大变更

  • 次版本表示小幅变更

通过主/次版本可了解数据或模型的变更内容与方式

面向生产环境的机器学习模型开发

训练数据版本控制

  • 唯一的主/次标签或时间戳
  • 确保实验可复现、可追溯
  • 可轻松回退到先前数据版本
  • 观察数据随时间的变化

示例:

  1. 数据 V 1.0 为初始数据集
  2. 数据 V 1.1 增加了特征变换
  3. 数据 V 1.2 添加了特征选择方法
  4. 数据 V 2.0 引入全新的数据源
面向生产环境的机器学习模型开发

特征仓库

  • 存储与管理不同特征版本的中央库
  • 轻松跟踪特征版本
  • 支持用于不同实验
  • 提升协作与实验一致性
  • 减少重复劳动
面向生产环境的机器学习模型开发

ML 模型版本控制

  • 跟踪不同的 ML 模型版本
  • 确保实验可复现、可追溯
  • 可轻松回退到先前模型版本
  • 通常与训练数据版本对应,但不总是如此

示例:

  1. 模型 V 1.0 为初始模型(Random Forest)
  2. 模型 V 1.1 为同一模型在数据 V 1.1 上微调
  3. 模型 V 2.0 改为 XGBoost,并在 数据 V 1.2 上微调
  4. 模型 V 2.1 为该 XGBoost 在数据 V 2.0 上微调
面向生产环境的机器学习模型开发

模型仓库

  • 存储与管理不同模型版本的中央库
  • 轻松跟踪模型的不同版本
  • 回滚到先前版本
面向生产环境的机器学习模型开发

使用 MLflow 进行模型版本控制示例

import mlflow

# Start a new mlflow run
with mlflow.start_run() as run:
    # Log model version as a parameter
    mlflow.log_param("model_version", "1.0")

    # Train and save the model
    model = train_model()
    mlflow.sklearn.log_model(model, "model")
面向生产环境的机器学习模型开发

Passons à la pratique !

面向生产环境的机器学习模型开发

Preparing Video For Download...