跳到主内容

传统机器学习

在动态的机器学习领域,传统技术仍然是基础,在各种行业和研究机构中扮演着关键角色。从医疗诊断中分类算法的精确性,到金融领域回归模型的预测能力,再到供应链管理中时间序列分析的预测能力,以及从社会科学中统计建模得出的见解,这些核心方法论是当今许多技术进步的基础。

MLflow 认识到传统机器学习的持久重要性。MLflow 精心设计,并深入理解数据科学家和机器学习从业者面临的挑战和复杂性,提供了一套专为这些经典技术量身定制的全面工具集。该平台不仅简化了模型开发和部署流程,还确保了可复现性、可扩展性和可追溯性。

随着我们深入探讨,我们将探索 MLflow 提供的多方面功能,展示它如何增强传统机器学习模型的有效性、可靠性和从中获得的洞察力。无论您是寻求优化工作流程的经验丰富的专家,还是渴望崭露头角的新手,MLflow 都是您机器学习之旅中宝贵的盟友。

原生库支持

MLflow 中有许多原生支持的传统机器学习库。在整个文档中,您可能会看到它们被称为“风格”(flavors),因为它们是原生支持的特定实现,用于保存、记录、加载这些库生成的模型,并将其表示为通用的 Python 函数。

使用这些实现的原生版本具有明显的优势,因为许多版本内置了自动日志记录功能,以及针对序列化和反序列化的特定自定义处理,这可以在使用这些库时极大地简化您的 MLOps 体验。

官方支持的传统机器学习库集成包括

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

教程和指南

MLflow 跟踪

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

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

MLflow 配方

MLflow 中的配方是为特定任务量身定制的预定义模板

  • 减少样板代码:这些模板有助于消除重复的设置或初始化代码,加快开发速度。
  • 最佳实践:MLflow 的配方是在考虑到最佳实践的情况下精心制作的,确保用户从一开始就符合行业标准。
  • 可定制性:虽然配方提供了结构化的起点,但它们设计灵活,可以根据需要进行调整和修改。

MLflow 评估

确保模型质量至关重要

  • 自动生成的指标:MLflow 自动评估模型,为回归(如 RMSE、MAE)和分类(如 F1 分数、AUC-ROC)提供关键指标。
  • 可视化:通过自动生成的图表更好地理解您的模型。例如,MLflow 可以为分类任务生成混淆矩阵、精确度-召回率曲线等。
  • 可扩展性:虽然 MLflow 提供了丰富的开箱即用评估工具,但也设计用于容纳自定义指标和可视化。

模型注册表

此功能充当模型的目录

  • 版本控制:随着模型的演进,跟踪版本变得至关重要。模型注册表处理版本控制,确保用户可以回滚到旧版本或比较不同的迭代。
  • 标注:注册表中的模型可以添加描述、用例或其他相关元数据进行标注。
  • 生命周期阶段:跟踪每个模型版本的阶段,无论是“暂存”、“生产”还是“存档”。这确保了部署和维护过程中的清晰度。

部署

MLflow 简化了从开发到生产的过渡

  • 一致性:通过仔细记录依赖项和计算环境,MLflow 确保模型在不同的部署设置中表现一致。
  • Docker 支持:使用 Docker 促进在容器化环境中部署,封装所有依赖项并确保统一的运行时环境。
  • 可扩展性:MLflow 设计用于适应小型部署和大型分布式设置,确保它能根据您的需求进行扩展。