跳到主要内容

MLflow 用于传统机器学习

传统机器学习构成了数据科学的支柱,为各行各业的关键应用提供支持。从银行业的欺诈检测到零售业的需求预测,这些经过验证的算法每天都能提供企业所依赖的可靠、可解释的结果。

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

为什么传统机器学习需要 MLflow

传统机器学习在大规模应用中的挑战

  • 🔄 广泛的实验:传统机器学习需要系统地测试算法、特征和超参数以找到最优解决方案
  • 📊 模型比较:在大规模应用中比较不同算法和配置的性能变得复杂
  • 🔧 管道管理:管理预处理、特征工程和模型训练工作流需要精心编排
  • 👥 团队协作:数据科学家需要在项目中共享实验、模型和洞察
  • 🚀 部署复杂性:从笔记本实验到生产系统的迁移会带来操作挑战
  • 📋 监管合规性:许多行业要求详细的模型文档和审计跟踪

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

传统机器学习的关键特性

🎯 智能自动日志记录

MLflow 的自动日志记录功能专为传统机器学习库设计

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

超越基本跟踪

MLflow 的自动日志记录系统为传统机器学习提供了复杂的功能

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

比较不同算法的模型性能

在构建传统机器学习解决方案时,您通常需要测试多种算法以找到针对特定问题的最佳方法。MLflow 通过将所有实验自动集中跟踪,使这种比较变得轻而易举。

重要性

  • 节省时间:无需再手动在电子表格或笔记本中跟踪结果
  • 做出更好的决策:轻松发现哪些算法在您的数据上表现最佳
  • 避免错误:绝不会丢失有前景的模型配置
  • 共享结果:团队成员可以查看所有实验并在此基础上继续工作

您将获得

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

非常适合需要系统地评估随机森林、XGBoost 和逻辑回归,或比较相同算法下不同特征工程方法的数据科学家。

🏗️ 管道管理

传统机器学习工作流通常涉及复杂的预处理和特征工程

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

生产就绪的管道管理

MLflow 为传统机器学习管道提供了企业级功能

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

🚀 灵活部署

在各种环境和用例中部署传统机器学习模型

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

超越基本模型服务

MLflow 支持传统机器学习的复杂部署模式

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

库集成

MLflow 原生支持所有主流传统机器学习库,实现与您现有工作流的无缝集成,同时增加强大的实验跟踪和模型管理功能。

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 的传统机器学习为各行各业的关键应用提供支持

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

高级主题

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 集成:集成的用户界面提供了所有模型的视觉概览,便于轻松比较和获得更深入的洞察。
  • 搜索功能:使用 MLflow 强大的搜索功能高效筛选您的实验。
  • API:提供全面的 API,允许用户以编程方式与跟踪系统交互,并将其集成到现有工作流中。

了解更多关于 MLflow Tracking 的信息 →

了解更多

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