农企新闻网

Databricks 开源 MLflow 平台,处理机器学习开发四大难点

发布者:高夕
导读雷锋网 AI 研习社按:机器学习开发有着远超传统软件开发的复杂性和应战性,如今,Databricks 开源 MLflow 平台无望处理其中的四大痛点。据雷锋网 AI 研习社理解,尝试过机器学习开发的同窗们都晓得,它的复杂性远超软件开发,且随同着多种全新的应战。在 Databricks,我们与上百家用到机器学习的公司同事,重复听到如下顾忌:五花八门的工具。在机器学习生命周期的每个阶段,从数据预备到模

雷锋网 AI 研习社按 :机器学习开发有着远超传统软件开发的复杂性和应战性,如今,Databricks 开源 MLflow 平台无望处理其中的四大痛点。

据雷锋网 AI 研习社理解,尝试过机器学习开发的同窗们都晓得,它的复杂性远超软件开发,且随同着多种全新的应战。在 Databricks,我们与上百家用到机器学习的公司同事,重复听到如下顾忌:

  1. 五花八门的工具 。在机器学习生命周期的每个阶段,从数据预备到模型训练,都有成百上千的开源工具。但是,不同于传统的软件开发(每个阶段选择一种工具),在机器学习开发中,你通常想要尝试每种可用的工具(如算法),看能否能提升实验后果。这样一来,需求运用和产品化许多库。

  2. 实验难以追踪 。机器学习算法中有许多可配置参数,不论你是独立开发者还是处于团队中,都难以追踪每个实验中用于生成模型的参数、代码和数据。

  3. 实验后果难以复现 。由于缺乏精密的追踪才能,团队在运用相反代码再次实验时往往会堕入窘境。不论是数据迷信家将训练代码交给工程师用于消费,还是你计划前往到之前的研讨对成绩停止调试,重现机器学习任务流程都很重要。

  4. 机器学习难以部署 。将模型转化为产品极具应战,由于部署工具和模型运转环境(如 REST serving、批推理、挪动端使用)太多了。由于没有将模型从库转移到工具中的规范办法,招致每一次新的部署都随同全新风险。

鉴于上述应战,毫无疑问,为了使机器学习开发像传统软件开发一样,具有鲁棒性、可预测性以及普遍传达,它必需失掉大幅退化。为此,许多组织都开端打造外部机器学习平台来管理机器学习生命周期。例如,Facebook,Google 和 Uber 曾经打造 FBLearner Flow,TFX 和 Michelangelo 来管理数据预备、模型训练和部署。但是,即便是这些外部机器学习平台,也存在限制:只支持大批内置算法或许单个 ML 库,并且绑定的是自家公司的根底架构。用户不能轻松应用新的 ML 库,也很难将本人的研讨分享到更广的社群。

在 Databricks,我们置信有更好的方式来管理机器学习生命周期,基于此我们推出全新的开源机器学习平台 MLflow。目前,alpha 版本已发布。Github 链接: https://github.com/databricks/mlflow

呼吁行业者在政府部门出台相关政策标准的之前,从业者一定要规范自己的行为准则健康有序的快速发展。MLflow:全新的开源机器学习平台 

MLflow 从现有 ML 平台中失掉灵感,在设计上拥有以下两项开放理念:

  1. 开放的交互界面 :MLflow 被设计成支持一切 ML 库、算法、部署工具和言语,它围绕 REST API 和可以从多种工具中使用的复杂数据格式(如将模型看作 lambda 函数 )树立,而不是仅支持大批内建功用。这带来一个立竿见影的益处:可以随便将 MLflow 参加现有代码中,同时,在组内分享可执行的运用恣意 ML 库的代码也变得复杂。

  2. 开源 :MLflow 是一个开源项目,用户和工具库开发者能对其停止扩展。另外,假如你希望开源本人的代码,得益于 MLflow 的开放格式,在组织间共享任务流步骤和模型非常复杂。

MLflow 如今仍为 alpha 版,但是我们以为该版本在处置 ML 代码上已十分有用,我们也乐意收到大家的反应。接上去是对 MLflow 以及相关组件的详细引见。

组件 

MLflow alpha 版由以下 3 个组件构成:

Databricks 开源 MLflow 平台,解决机器学习开发四大难点

MLflow Tracking

MLflow Tracking 是一个 API,当你在运转机器学习代码计划后续可视化时,它是展现参数记载、代码版本、metric 和输入文件的 UI。只需几行复杂的代码,你就可以追踪参数,metric 和 artifact:

Databricks 开源 MLflow 平台,解决机器学习开发四大难点

你可以在任何环境(独立脚本、notebook 等)下运用 MLflow Tracking 将后果记载到本地文件或许效劳器,之后再将屡次操作停止比照。借助网页 UI,你可以检查和比照屡次输入。团队也能运用这些工具来比拟不同用户的实验后果。

Databricks 开源 MLflow 平台,解决机器学习开发四大难点

图:MLflow Tracking UI

MLflow Projects

MLflow Projects 提供打包可重用代码的规范格式。每个 project 只是一个代码目录或 Git 库,运用一个 descriptor 文件来阐明其依赖关系以及如何运转代码。MLflow Project 由一个复杂的 YAML 文件(MLproject)定义。

Databricks 开源 MLflow 平台,解决机器学习开发四大难点

project 能借助 Conda 环境来阐明其依赖关系。一个 project 能够存在多个调用顺序的 entry 点(曾经指定参数)。你可以运用 mlflow run 命令工具运转来自本地文件或 Git 库中的 project。

Databricks 开源 MLflow 平台,解决机器学习开发四大难点

MLflow 将自动为 project 设置正确的环境并运转。另外,假如你在 project 中运用 Tracking API,MLflow 将会记住执行的 project 版本和参数。你可以轻松再运转相反的代码。

project 格式使得分享可重用的代码变得愈加复杂。配合 MLflow Tracking,MLflow Project 可以为你提供在复现、扩展和实验中极端好用的工具。

MLflow Model

MLflow Model 是一种商定,它将机器学习模型打包成多种格式(称为 flavor)。MLflow 提供多种工具来协助你部署不同 flavor。每个 MLflow Model 作为一个目录保管,包括 arbitrary 文件和一个 MLmodel descriptor 文件(该文件中列出了它适用的 flavor)。

Databricks 开源 MLflow 平台,解决机器学习开发四大难点

在下面这个例子中,该模型可与支持 sklearn 和 python_function 模型 flavor 的工具一同运用。

MLflow 提供将罕见模型部署到不同平台上的工具。例如,任何支持 python_function flavor 的模型都能部署到基于 Docker 的 REST 效劳器或 Azure ML、AWS SageMaker 等云平台上。

开端运用 MLflow

依照 mlflow.org 的运用阐明,或前往 GitHub 检查曾经发布的代码。等待大家的反应。

下一步

MLflow 才刚刚起步,所以还有不少任务要做。除了 project 的更新,我们还方案引见重要的全新组件(如 Monitoring)、库集成和我们曾经发布的扩展功用(如对更多环境的支持等)。大家可关注我们的博客以获取更多信息。

via Databricks,雷锋网 (大众号:雷锋网) AI 研习社编译。