工程的博客

MLflow:开源机器学习平台bob下载地址bob体育客户端下载

分享这篇文章

每个尝试过机器学习开发的人都知道它是复杂的。除了软件开发中的常见问题,机器学习(ML)开发还带来了许多新的挑战。在Databricks,我们与数百家使用ML的公司合作,我们反复听到同样的担忧:

  1. 有无数的工具。数以百计的开源工具涵盖了bob下载地址ML生命周期的每个阶段,从数据准备到模型训练。然而,与传统的软件开发不同(团队为每个阶段选择一个工具),在ML中,您通常希望这样做尝试所有可用的工具(例如算法),看看它是否能改善结果。因此,ML开发人员需要使用和生产几十个库。
  2. 很难追踪实验。机器学习算法有几十个可配置的参数,无论你是单独工作还是团队合作,都很难跟踪每个实验中使用了哪些参数、代码和数据来生成模型。

  3. 很难重现结果。如果没有详细的跟踪,团队通常很难让相同的代码再次工作。无论您是将培训代码传递给工程师用于生产的数据科学家,还是要返回过去的工作来调试问题,重现ML工作流的步骤都是至关重要的。

  4. 很难部署ML。由于运行模型所需的部署工具和环境过多(例如REST服务、批处理推理或移动应用程序),将模型移植到生产环境可能具有挑战性。没有标准的方法将模型从任何库移动到任何这些工具,这会在每次新的部署中产生新的风险。

由于这些挑战,很明显,ML开发必须发展很多,才能变得像传统软件开发一样健壮、可预测和广泛。为此,许多组织已经开始建立内部机器学习平台bob体育客户端下载来管理ML生命周期。例如,Facebook、谷歌和Uber已经建立了FBLearner流的敏感性,米开朗基罗管理数据准备、模型培训和部署。然而,即使是这些内部平台也是有限的:典型的ML平台只支持一bob体育客户端下载小部分内置算法,或者单个ML库,并且它们与每个公司的基础设施绑定在一起。用户不能轻易地利用新的ML库,或与更广泛的社区共享他们的工作。

在Databricks,我们相信应该有更好的方法来管理ML生命周期,所以我们很兴奋地宣布MLflow:开源机器bob下载地址学习平台bob体育客户端下载,我们今天以α

MLflow:开放式机器学习平台bob体育客户端下载

MLflow的灵感来自于现有的ML平台,但它的设计初衷就是如此bob体育客户端下载开放在两种意义上:

  1. 开放的接口:MLflow设计用于任何ML库、算法、部署工具或语言。它是围绕REST api和简单的数据格式(例如,模型可以被视为lambda函数)构建的,可以从各种工具中使用,而不仅仅是提供一小部分内置功能。这也使得将MLflow添加到您的现有的ML代码,以便您可以立即从中受益,并使用组织中其他人可以运行的任何ML库共享代码。
  2. bob下载地址开源:我们释放MLflow作为bob下载地址开源项目用户和库开发人员可以扩展。此外,MLflow的开放格式使共享工作流步骤和模型变得非常容易如果你希望开源你的代码。bob下载地址

Mlflow目前仍处于alpha阶段,但我们相信它已经提供了一个有用的框架来处理ML代码,我们很乐意听到您的反馈。在这篇文章中,我们将详细介绍MLflow并解释它的组件。

MLflow Alpha发布组件

MLflow的第一个alpha版本有三个组件:

MLflow组件

MLflow跟踪

MLflow Tracking是一个API和UI,用于在运行机器学习代码时记录参数、代码版本、指标和输出文件,以便以后将它们可视化。只需几行简单的代码,您就可以跟踪参数、度量和工件:

进口mlflow#日志参数(键值对)mlflow.log_param (“num_dimensions”8mlflow.log_param (“正规化”0.1#记录一个度量;指标可以在整个运行过程中更新mlflow.log_metric (“准确性”0.1...mlflow.log_metric (“准确性”0.45#记录工件(输出文件)mlflow.log_artifact (“roc.png”mlflow.log_artifact (“model.pkl”

您可以在任何环境(例如,独立脚本或笔记本)中使用MLflow Tracking,将结果记录到本地文件或服务器上,然后比较多次运行。通过web界面,您可以查看和比较多次运行的输出结果。团队还可以使用这些工具来比较不同用户的结果:

MLflow跟踪UI
MLflow跟踪UI

MLflow项目

MLflow项目为打包可重用的数据科学代码提供了一种标准格式。每个项目都只是一个包含代码或Git存储库的目录,并使用描述符文件指定其依赖项以及如何运行代码。MLflow项目是由一个简单的YAML文件定义的MLproject

项目名称:conda_env: conda.yamlentry_points:主要:参数:data_file:路径正则化:{类型:浮动默认的0.1命令:"python train.py -r {regularization} {data_file}"验证:参数:data_file:路径命令:"python validate.py {data_file}"

项目可以通过Conda环境指定它们的依赖项。一个项目还可以有多个调用运行的入口点,使用命名参数。方法运行项目mlflow运行命令行工具,从本地文件或从Git存储库:

mlflow运行example/project -P alpha=0.5Mlflow运行git@github.com:databricks/mlflow-example.git -P alpha=0.5

MLflow将自动为项目设置正确的环境并运行它。此外,如果在项目中使用MLflow Tracking API, MLflow将记住执行的项目版本(即Git提交)和任何参数。然后,您可以轻松地重新运行完全相同的代码。

项目格式使得在公司内部或开源社区中共享可重复的数据科学代码变得容易。bob下载地址与MLflow跟踪相结合,MLflow Projects为再现性、可扩展性和实验性提供了很好的工具。

MLflow模型

MLflow模型是一种将机器学习模型打包成多种格式(称为“口味”)的约定。MLflow提供了各种工具来帮助您部署不同类型的模型。每个MLflow模型都保存为一个目录,其中包含任意文件和MLmodel描述符文件,该文件列出了它可以用于的类型。

time_created: 2018 - 02 - 21 - t13:21:34.12口味:sklearn:sklearn_version: 0.19.1pickled_model: model.pklpython_function:loader_module: mlflow.sklearnpickled_model: model.pkl

在本例中,该模型可以与支持sklearnpython_function模型的味道。

MLflow提供了将许多公共模型类型部署到不同平台的工具。bob体育客户端下载例如,支持的任何模型python_functionflavor可以部署到基于docker的REST服务器上,部署到Azure ML和Amazon SageMaker等云平台上,bob体育客户端下载并在Apache中作为用户定义的函数火花用于批处理和流推理。如果您使用跟踪API将MLflow模型输出为工件,MLflow也会自动记住它们来自哪个项目并运行它们。

MLflow入门

要开始使用MLflow,请遵循mlflow.org或查看alpha发布代码Github.我们很高兴听到您对概念和代码的反馈!

在Databricks上托管MLflow

如果您想运行MLflow的托管版本,我们现在也在接受注册www.neidfyre.com/product/managed-mlflow.MLflow on Databricks集成了完整的Databricks统一分析平台,包括笔记本电脑,工作,bob体育亚洲版bob体育客户端下载砖δ,以及Databricks安全模型,使您能够以安全的、可用于生产的方式大规模运行现有MLflow作业。

接下来是什么?

我们刚刚开始使用MLflow,所以还有更多的东西要做。除了对项目的更新,我们还计划引入主要的新组件(例如,Monitoring)、库集成,以及对我们已经发布的组件的扩展(例如,支持更多的环境类型)。敬请期待我们的博客获取更多信息。

查看MLflow Spark+AI峰会主题演讲

免费试用Databricks

相关的帖子

看到所有数据科学与机器学习的帖子