传统机器学习
在动态的机器学习领域,传统技术仍然是基础,在各种行业和研究机构中扮演着关键角色。从医疗诊断中分类算法的精确性,到金融领域回归模型的预测能力,再到供应链管理中时间序列分析的预测能力,以及从社会科学中统计建模得出的见解,这些核心方法论是当今许多技术进步的基础。
MLflow 认识到传统机器学习的持久重要性。MLflow 精心设计,并深入理解数据科学家和机器学习从业者面临的挑战和复杂性,提供了一套专为这些经典技术量身定制的全面工具集。该平台不仅简化了模型开发和部署流程,还确保了可复现性、可扩展性和可追溯性。
随着我们深入探讨,我们将探索 MLflow 提供的多方面功能,展示它如何增强传统机器学习模型的有效性、可靠性和从中获得的洞察力。无论您是寻求优化工作流程的经验丰富的专家,还是渴望崭露头角的新手,MLflow 都是您机器学习之旅中宝贵的盟友。
原生库支持
MLflow 中有许多原生支持的传统机器学习库。在整个文档中,您可能会看到它们被称为“风格”(flavors),因为它们是原生支持的特定实现,用于保存、记录、加载这些库生成的模型,并将其表示为通用的 Python 函数。
使用这些实现的原生版本具有明显的优势,因为许多版本内置了自动日志记录功能,以及针对序列化和反序列化的特定自定义处理,这可以在使用这些库时极大地简化您的 MLOps 体验。
官方支持的传统机器学习库集成包括
教程和指南
探索 MLflow 跟踪与 Optuna 用于超参数调优的集成。深入了解 MLflow 的功能,理解父子运行关系,并比较不同的调优运行以优化模型性能。
深入探讨 MLflow 的自定义 Pyfunc 世界。从基本的模型定义开始,踏上一段展示 Pyfunc 多功能性和强大能力的旅程。从简单的数学曲线到复杂的机器学习集成,了解 Pyfunc 如何为各种用例提供标准化、可复现且高效的工作流程。
深入了解通过 MLflow 的自定义 PyFunc 模型实现的自定义多模型推理。学习如何通过向简单的自定义 PyFunc 实现传递额外的推理参数来简化低延迟推理。本教程可以作为许多多模型端点 (MME) 用例的起点!
MLflow 跟踪
跟踪是 MLflow 生态系统的核心,有助于系统地组织实验和运行
- 实验和运行:每个实验都封装了您研究的特定方面,每个实验可以包含多个运行。运行记录了关键数据,如指标、参数和代码状态。
- 工件:存储运行中的关键输出,可以是模型、可视化、数据集或其他元数据。此工件仓库确保了可追溯性和便捷访问。
- 指标和参数:通过允许用户记录参数和指标,MLflow 可以方便地比较不同的运行,从而促进模型优化。
- 依赖项和环境:平台自动捕获计算环境,确保实验在不同设置下可复现。
- 输入示例和模型签名:这些功能允许开发人员定义模型输入的预期格式,使验证和调试更加简单。
- UI 集成:集成的用户界面提供了所有运行的视觉概览,方便进行比较并获得更深入的洞察。
- 搜索功能:使用 MLflow 强大的搜索功能高效地筛选您的实验。
- API:提供全面的 API,允许用户以编程方式与跟踪系统交互,将其集成到现有工作流程中。
MLflow 配方
MLflow 中的配方是为特定任务量身定制的预定义模板
- 减少样板代码:这些模板有助于消除重复的设置或初始化代码,加快开发速度。
- 最佳实践:MLflow 的配方是在考虑到最佳实践的情况下精心制作的,确保用户从一开始就符合行业标准。
- 可定制性:虽然配方提供了结构化的起点,但它们设计灵活,可以根据需要进行调整和修改。
MLflow 评估
确保模型质量至关重要
- 自动生成的指标:MLflow 自动评估模型,为回归(如 RMSE、MAE)和分类(如 F1 分数、AUC-ROC)提供关键指标。
- 可视化:通过自动生成的图表更好地理解您的模型。例如,MLflow 可以为分类任务生成混淆矩阵、精确度-召回率曲线等。
- 可扩展性:虽然 MLflow 提供了丰富的开箱即用评估工具,但也设计用于容纳自定义指标和可视化。
模型注册表
此功能充当模型的目录
- 版本控制:随着模型的演进,跟踪版本变得至关重要。模型注册表处理版本控制,确保用户可以回滚到旧版本或比较不同的迭代。
- 标注:注册表中的模型可以添加描述、用例或其他相关元数据进行标注。
- 生命周期阶段:跟踪每个模型版本的阶段,无论是“暂存”、“生产”还是“存档”。这确保了部署和维护过程中的清晰度。
部署
MLflow 简化了从开发到生产的过渡
- 一致性:通过仔细记录依赖项和计算环境,MLflow 确保模型在不同的部署设置中表现一致。
- Docker 支持:使用 Docker 促进在容器化环境中部署,封装所有依赖项并确保统一的运行时环境。
- 可扩展性:MLflow 设计用于适应小型部署和大型分布式设置,确保它能根据您的需求进行扩展。