全文共4873字,预计学习时长13分钟
图源:unsplash
实话说,笔者花在管理和追踪机器学习实验上的时间,比花在开发机器学习模型上的时间要多得多。笔者最开始用Excel工作表标出正在试验的所有参数和指标、用不同颜色来编码、手动输入结果,等等。笔者知道自己需要一次性调整工作流程。
本文首先将介绍追踪实验的重要性,然后将概述MLFlow如何让生活变得简单,最后通过一个常见的代码示例来解释如何自己进行整合。在此之后,保证你可以像个专家一样整合机器学习流(ML flow)和优化工作流!
为什么要追踪实验
不论你是老手还是新手,都不可能一次性开发出性能最好的模型。最佳性能模型的关键是对手头业务的指标优化进行迭代。在数据科学的生命周期中,进行实验只是模型开发环节中一个必要的步骤。
当涉及到产品研发时,实验是数据科学生命周期中最关键的一步。在这类研究任务繁重的问题中,仅仅找到最佳解决方案是不够的,还需要概述如何获得最佳性能解决方案,并确保该解决方案的可复制性。
这一切都是以实验阶段为底线。我们只能建立有效高效的工作流来创建实验、追踪实验、评估结果、存储模型,最后重复这一过程。
用MLflow来摆脱困境
当笔者请教经验丰富的专家时,他们只推荐了寥寥几个工具以供尝试。笔者的基本要求是:
· 几乎不更改对现有代码。
· 开源且免费。
· 不限制平台,可以选择最适合当前问题的平台。
MLflow满足了所有这些要求,并且还要更加强大。
一个用于机器学习生命周期的开源平台。| 图源:MLflow
MLflow是一个管理机器学习生命周期的开源平台,包括实验、可重复性、部署和中央模型注册。没错,它所提供的不仅仅是实验跟踪,而是覆盖了完整的机器学习生命周期。它包含以下功能:
· MLflow 追踪——实验追踪,来记录和比较参数和结果。
· MLflow 项目——以可重用、可复制的形式打包机器学习代码,以便与其他数据科学家共享或用于生产中。
· MLFlow 模型——管理和部署模型,从各种机器学习库到各种模型服务和推理平台。
· MLFlow 模型存储——中央模型存储,协同管理MLflow模型的整个生命周期,包括模型版本控制、阶段转换和注释。
虽然MLflow具有所有这些高级功能,但本文将重点讨论MLflow追踪以及它如何帮助我们有序地追踪机器学习实验。
理解典型工作流
还有什么比通过一个著名的示例进行演练更有助于理解典型工作流的呢?这里将使用著名的安德森鸢尾花数据集,并构建一个分类算法来预测该鸢尾植物的种类。选择这个数据集没有什么特别的原因,只是因为它很容易从scikit-learn库中获得,并且可以立即尝试。
fromsklearn.datasets import load_irisfrom sklearn import metricsfrom sklearn.model_sele