社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

Spark团队开源新作:全流程机器学习平台MLflow

AI前线 • 8 年前 • 762 次点击  

Spark团队开源新作:全流程机器学习平台MLflow

策划编辑 | Natalie
作者 | Matei Zaharia
译者 | 无明
编辑 | Vincent
AI 前线导读:在昨天开幕的 Spark+AI Summit 大会上,Spark 和 Mesos 的核心作者兼 Databrick 首席技术专家 Matei Zaharia 宣布推出开源机器学习平台 MLflow,这是一个能够覆盖机器学习全流程(从数据准备到模型训练到最终部署)的新平台,旨在为数据科学家构建、测试和部署机器学习模型的复杂过程做一些简化工作。Matei 表示,研究工作主要围绕着“如何为开发者提供类似谷歌 TFX、Facebook FBLearner Flow 等平台类似的好处,但是要以开放的方式——不仅在开源的意义上开放,而且是可以使用任何工具和算法的意义上开放"的想法展开。

Matei 为 MLflow 撰写了一篇介绍文章,AI 前线对文章进行了编译。这个全新的机器学习平台到底有何新特性?让我们来一探究竟。

更多干货内容请关注微信公众号“AI 前线”,(ID:ai-front)

每个做过机器学习开发的人都知道机器学习的复杂性,除了软件开发中常见的问题之外,机器学习还存在很多新的挑战。作为一家大数据解决方案公司,Databricks 与数百家使用机器学习的公司合作,所以能够清楚地了解他们的痛点,比如工具太过复杂、难以跟踪实验、难以重现结果、难以部署模型。由于这些挑战的存在,机器学习开发必须变得与传统软件开发一样强大、可预测和普及。为此,很多企业已经开始构建内部机器学习平台来管理机器学习生命周期。例如,Facebook、谷歌和优步分别构建了 FBLearner Flow、TFX 和 Michelangelo 来进行数据准备、模型训练和部署。但这些内部平台存在一定的局限性:典型的机器学习平台只支持一小部分内置算法或单个机器学习库,并且被绑定在公司内部的基础设施上。用户无法轻易地使用新的机器学习库,或与社区分享他们的工作成果。

Databricks 认为应该使用一种更好的方式来管理机器学习生命周期,于是他们推出了 MLflow,一个开源的机器学习平台。

MLflow:开放式机器学习平台

MLflow 的灵感来源于现有的机器学习平台,但以开放性作为主要设计目标:

  1. 开放接口:MLflow 可与任何机器学习库、算法、部署工具或编程语言一起使用。它基于 REST API 和简单的数据格式(例如,可将模型视为 lambda 函数)而构建,可以使用各种工具,而不只是提供一小部分内置功能。用户可以很容易地将 MLflow 添加到现有的机器学习代码中,并在组织中共享代码,让其他人也能运行这些代码。

  2. 开源:MLflow 是一个开源项目,用户和机器学习库开发人员可以对其进行扩展。此外,利用 MLflow 的开放格式,可以轻松地跨组织共享工作流步骤和模型。

Mlflow 目前仍处于 alpha 阶段,但它已经提供了一个可用的框架来处理机器学习代码。接下来将详细介绍 MLflow 和它的组件。

MLflow 的组件(alpha 版)

MLflow 的 alpha 版本包含了三个组件:

MLflow 的跟踪组件支持记录和查询实验数据,如评估度量指标和参数。MLflow 的项目组件提供了可重复运行的简单包装格式。最后,MLflow 的模型组件提供了用于管理和部署模型的工具。

MLflow 的跟踪组件

MLflow 的跟踪组件提供了一组 API 和用户界面,用于在运行机器学习代码时记录参数、代码版本、度量指标和输出文件,以便在后续进行可视化。通过几行简单的代码就可以跟踪参数、度量指标和文件:

用户可使用跟踪组件(通过独立脚本或 notebook)将结果记录到本地文件或服务器上,然后通过 Web UI 来查看和比较多次运行结果。团队也可以使用这些工具来比较不同用户的运行结果。

MLflow 的项目组件

MLflow 的项目组件提供了一种用于打包可重用代码的标准格式。项目可以是一个包含代码的目录或 Git 仓库,并使用一个描述符文件来描述依赖关系以及如何运行代码。MFflow 项目通过一个叫作 MLproject 的 YAML 文件进行定义。

项目可以通过 Conda 来指定依赖关系。一个项目可能包含多个带有命名参数的运行入口。用户可以使用 mlflow run 命令行工具来运行项目,项目代码可以在本地,也可以在 Git 仓库里:

MLflow 将自动为项目设置合适的环境并运行它。另外,如果在项目中使用了 MLflow Tracking API,MLflow 将记住执行过的项目版本(即 Git 的提交操作)和参数,这样就可以很轻松地重新运行完全相同的代码。

无论是在企业还是在开源社区,项目格式让共享可重用代码变得更加容易。结合 MLflow 的跟踪组件,MLflow 项目为可重现性、可扩展性和实验提供了很好的工具。

MLflow 的模型组件

MLflow 的模型组件提供了一种将机器学习模型打包成多种格式的规范,这些格式被称为“flavor”。MLflow 提供了多种工具来部署不同 flavor 的模型。每个 MLflow 模型被保存成一个目录,目录中包含了任意模型文件和一个 MLmodel 描述符文件,文件中列出了相应的 flavor。

在这个例子中,模型可以与支持 sklearn 或 python_function 的工具一起使用。

MLflow 提供了将常见模型部署到不同平台的工具。例如,任何支持 python_function 的模型都可以部署到基于 Docker 的 REST 服务器或云平台上(如 Azure ML 和 AWS SageMaker),也可以作为 Apache Spark 的用户定义函数,用于进行批量和流式推断。如果使用 Tracking API 将 MLflow 模型输出为文件,MLflow 还会自动记住它们是由哪个项目运行生成的。

MLflow 入门

要使用 MLflow,请按照 mlflow.org 上的说明进行操作,或使用 Github 上的 alpha 版代码。

在 Databricks 上托管 MLflow

如果要使用 MLflow 的托管版本,可以在 databricks.com/mlflow 注册。Databricks 上的 MLflow 与 Databricks Unified Analytics 平台集成,包括 Notebooks、Jobs,Databricks Delta 和 Databricks 安全模型,为用户提供了安全、生产就绪的方式大规模地运行现有的 MLflow 作业。

后续计划

MLflow 刚刚展露头角,因此还有很多事情要做。后续计划引入新组件(如监控)、与其他库的集成以及扩展已发布的组件(例如支持更多环境类型)。

MLflow 官网

http://www.mlflow.org

MLflow GitHub 地址

https://github.com/databricks/mlflow

英文原文

https://databricks.com/blog/2018/06/05/introducing-mlflow-an-open-source-machine-learning-platform.html




今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/NQVRWW9SYU
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/13158