跳到主要内容

传统机器学习的 MLflow

传统机器学习是数据科学的基石,为各行各业的关键应用提供动力。从银行业的欺诈检测到零售业的需求预测,这些成熟的算法每天都能提供企业依赖的可靠、可解释的结果。

MLflow 为传统 ML 工作流提供全面支持,让实验跟踪、模型管理和大规模部署解决方案变得轻而易举。无论您是构建集成模型、调优超参数,还是部署批量评分管道,MLflow 都能简化您从原型到生产的整个过程。

为什么传统 ML 需要 MLflow

大规模传统 ML 的挑战

  • 🔄 广泛的实验:传统 ML 需要系统地测试算法、特征和超参数,以找到最优解决方案
  • 📊 模型比较:大规模地比较不同算法和配置的性能会变得很复杂
  • 🔧 管道管理:管理预处理、特征工程和模型训练工作流需要仔细的编排
  • 👥 团队协作:数据科学家需要在项目之间共享实验、模型和见解
  • 🚀 部署复杂性:从 notebook 实验过渡到生产系统会带来操作上的挑战
  • 📋 监管合规:许多行业都需要详细的模型文档和审计跟踪

MLflow 通过为传统 ML 工作流量身定制的工具来解决这些挑战,在整个机器学习生命周期中提供结构和清晰度。

传统 ML 的关键功能

🎯 智能自动日志记录

MLflow 的自动日志记录功能专为传统 ML 库设计

  • 一行集成,支持 scikit-learn、XGBoost、LightGBM 等
  • 自动参数捕获,无需手动干预即可记录所有模型超参数
  • 内置评估指标,自动计算并存储相关的性能指标
  • 模型序列化,无缝处理管道和自定义转换器等复杂对象
高级自动日志记录功能

超越基本跟踪

MLflow 的自动日志记录系统为传统 ML 提供了强大的功能

  • 管道阶段跟踪:自动记录每个管道组件的参数和转换
  • 超参数搜索集成:原生支持 GridSearchCV、RandomizedSearchCV 和流行的优化库
  • 交叉验证结果:捕获详细的 CV 指标和按折的性能
  • 特征重要性:自动记录支持模型的特征重要性分数
  • 模型签名:推断并存储输入/输出模式,用于部署验证
  • 自定义指标:无缝集成特定领域的评估函数

跨算法比较模型性能

在构建传统 ML 解决方案时,您通常需要测试多种算法,以找到适合您特定问题的最佳方法。MLflow 在一处自动跟踪您的所有实验,使这种比较变得轻而易举。

为什么这很重要

  • 节省时间:无需再在电子表格或 notebook 中手动跟踪结果
  • 做出更好的决策:轻松找出在您的数据上表现最佳的算法
  • 避免错误:永远不要丢失有前景的模型配置的跟踪
  • 共享结果:团队成员可以看到所有实验并在此基础上进行工作

您将获得什么

  • 可视化图表,比较所有模型的准确率、精确率、召回率
  • 可排序的表格,显示参数组合及其结果
  • 快速筛选,查找符合特定性能标准模型
  • 导出功能,与利益相关者共享发现

非常适合需要系统评估 Random Forest 与 XGBoost 与 Logistic Regression,或比较同一算法下的不同特征工程方法的。数据科学家。

🏗️ 管道管理

传统 ML 工作流通常涉及复杂的预处理和特征工程

  • 端到端管道跟踪捕获每个转换步骤
  • 自定义转换器支持,适用于 sklearn 管道和自定义组件
  • 可重现的工作流保证在不同环境中获得相同的结果
  • 管道版本控制管理不断发展的特征工程过程
  • 交叉验证集成跟踪不同数据拆分上的性能
  • 数据验证确保训练和推理中的预处理一致
企业管道功能

生产级管道管理

MLflow 为传统 ML 管道提供企业级功能

  • 模式演进:优雅地处理输入数据模式的变化
  • 批量处理:支持大规模批量推理工作流
  • 模型监控:跟踪数据漂移和模型性能下降
  • A/B 测试:在生产环境中比较模型版本
  • 回滚功能:在出现问题时快速回滚到之前的模型版本

🚀 灵活部署

将传统 ML 模型部署到各种环境和用例

  • 实时推理,用于低延迟预测服务
  • 批量处理,用于大规模评分作业
  • 边缘部署,用于离线和移动应用程序
  • 容器化服务,支持 Docker 和 Kubernetes
  • 云集成,跨 AWS、Azure 和 Google Cloud 平台
  • 自定义服务逻辑,满足复杂的预处理和后处理要求
高级部署选项

超越基本模型服务

MLflow 支持传统 ML 的复杂部署模式

  • 多模型端点:通过路由逻辑从单个端点提供多个模型
  • 集成服务:部署具有自定义组合策略的模型集成
  • 预处理集成:在服务模型中包含特征工程管道
  • 监控集成:连接到可观测性平台进行生产跟踪
  • 自动扩展:通过动态资源分配处理可变负载

库集成

MLflow 为所有主要的传统 ML 库提供原生支持,从而能够与您现有的工作流无缝集成,同时增加了强大的实验跟踪和模型管理功能。

scikit learn
XGBoost Logo
Spark Logo
LightGBM Logo
CatBoost Logo
Statsmodels Logo
Prophet Logo

开始使用

快速设置指南

1. 安装 MLflow

pip install mlflow

对于特定集成,请安装相应的包

# For scikit-learn
pip install scikit-learn

# For XGBoost
pip install xgboost

2. 启用自动日志记录

import mlflow

# For scikit-learn
mlflow.sklearn.autolog()

# For XGBoost
mlflow.xgboost.autolog()

# For all supported frameworks
mlflow.autolog()

3. 正常训练您的模型

from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split

# Your existing training code works unchanged!
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

with mlflow.start_run():
model = RandomForestClassifier(n_estimators=100)
model.fit(X_train, y_train)

4. 查看结果

打开 MLflow UI 查看您跟踪的实验

mlflow ui

实际应用

MLflow 赋能的传统 ML 为各行业的关键应用提供动力

  • 💳 金融服务:信用评分、欺诈检测和风险评估模型,具有全面的审计跟踪
  • 🏥 医疗保健:临床决策支持系统,具有可解释的模型和合规性
  • 🛒 零售与电子商务:需求预测、推荐引擎和客户细分分析
  • 🏭 制造业:预测性维护、质量控制和供应链优化
  • 📞 电信:客户流失预测、网络优化和服务质量监控
  • 🚗 交通运输:路线优化、需求预测和车队管理系统
  • 🏢 保险:承保模型、理赔处理和精算分析
  • 🎯 营销:客户生命周期价值、营销活动优化和购物篮分析

高级主题

MLflow 与流行的超参数优化框架无缝集成

import mlflow
import optuna
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import cross_val_score


def objective(trial):
with mlflow.start_run(nested=True):
# Define hyperparameter search space
n_estimators = trial.suggest_int("n_estimators", 10, 100)
max_depth = trial.suggest_int("max_depth", 1, 10)

# Train and evaluate model
model = RandomForestClassifier(
n_estimators=n_estimators, max_depth=max_depth, random_state=42
)

scores = cross_val_score(model, X_train, y_train, cv=5)
return scores.mean()


# Run optimization study
with mlflow.start_run():
study = optuna.create_study(direction="maximize")
study.optimize(objective, n_trials=50)

# Log best results
mlflow.log_params(study.best_params)
mlflow.log_metric("best_accuracy", study.best_value)

教程和指南

MLflow 组件

跟踪是 MLflow 生态系统的核心,有助于系统地组织实验和模型

  • 实验和模型:每个实验封装您研究的特定方面,每个实验可以包含多个模型。模型记录关键数据,如指标、参数和代码状态。
  • 工件:存储来自实验的关键输出,无论是模型、可视化、数据集还是其他元数据。这个工件库确保了可追溯性和易于访问。
  • 指标和参数:通过允许用户记录参数和指标,MLflow 使比较不同模型变得简单,从而促进模型优化。
  • 依赖项和环境:平台自动捕获计算环境,确保实验在不同设置下都可重现。
  • 输入示例和模型签名:这些功能允许开发人员定义模型输入的预期格式,从而简化验证和调试。
  • UI 集成:集成的 UI 提供了所有模型的可视化概览,便于比较和深入了解。
  • 搜索功能:使用 MLflow 强大的搜索功能有效地筛选您的实验。
  • API:提供全面的 API,允许用户以编程方式与跟踪系统交互,将其集成到现有工作流中。

了解更多关于 MLflow 跟踪 →

了解更多

深入了解 MLflow 在传统机器学习方面的功能