1、MLflow:一个开源的机器学习平台

【百度云搜索,搜各种资料:http://www.81ad.cn
SQLflow:基于python开发的分布式机器学习平台:https://github.com/lqkweb/sqlflow

每个尝试机器学习开发的人都知道这很复杂。除了软件开发中常见的问题之外,机器学习(ML)开发带来了多种新挑战。在Databricks,我们与数百家使用ML的公司合作,我们一再听到同样的担忧:
1.有无数的工具。

数百种开源工具涵盖了ML生命周期的每个阶段,从数据准备到模型训练。然而,与团队为每个阶段选择一个工具的传统软件开发不同,在ML中,您通常需要尝试每种可用的工具(例如算法)以查看它是否改进了结果。ML开发人员因此需要使用和生产数十种库。

2.很难跟踪实验。

机器学习算法有几十个可配置参数,无论您是单独工作还是团队工作,都很难跟踪哪些参数,代码和数据进入每个实验以生成模型。

3.很难重现结果。

如果没有详细的跟踪,团队往往难以获得相同的代码再次工作。无论您是数据科学家将您的培训代码传递给工程师以用于生产,还是回到以前的工作来调试问题,ML工作流程的复制步骤都至关重要。

4.部署ML很困难。

由于需要运行的部署工具和环境过多(例如REST服务,批处理推理或移动应用程序),因此将模型迁移到生产可能具有挑战性。没有标准的方法将模型从任何库移动到这些工具中,从而为每个新部署创建新的风险。

由于这些挑战,显然ML开发必须发展成为与传统软件开发一样强大,可预测和广泛推广的产品。为此,许多组织已经开始构建内部机器学习平台来管理ML生命周期。例如,Facebook,Google和Uber已经建立了FBLearner Flow,TFX和Michelangelo来管理数据准备,模型训练和部署。但是,即使这些内部平台也是有限的:典型的ML平台仅支持一小组内置算法或单个ML库,并且它们与每个公司的基础设施相关联。用户无法轻松利用新的ML库,或与更广泛的社区共享他们的工作。
在Databricks,我们相信应该有一个更好的方式来管理ML生命周期,所以我们很高兴地宣布MLflow:一个开源的机器学习平台。

MLflow:开放式机器学习平台

MLflow的灵感来源于现有的ML平台,但其设计目的有两个方面:
1.开放接口:

MLflow被设计用于任何ML库,算法,部署工具或语言。它基于REST API和简单的数据格式(例如,可将模型视为lambda函数)构建,可以使用各种工具,而不是仅提供一小组内置功能。这也很容易将MLflow添加到现有的ML代码中,以便您立即受益,并使用组织中其他人可以运行的任何ML库来共享代码。

2.开源:

我们将MLflow作为一个开源项目发布,供用户和库开发人员扩展。此外,如果您希望开源代码,MLflow的开放格式可以轻松地跨组织共享工作流步骤和模型。

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

MLflow Alpha发布组件

MLflow的第一个alpha版本有三个组件:
mlflow.png
MLflow跟踪支持记录和查询实验周围的数据,如评估指标和参数。MLflow项目提供了可重复运行的简单包装格式。最后,MLflow模型提供了管理和部署模型的工具。

MLflow跟踪

MLflow跟踪是一个API和用户界面,用于在运行机器学习代码时记录参数,代码版本,指标和输出文件,以便以后可视化它们。通过几行简单的代码,您可以跟踪参数,指标和工件:
import mlflow

# Log parameters (key-value pairs)
mlflow.log_parameter("num_dimensions", 8)
mlflow.log_parameter("regularization", 0.1)

# Log a metric; metrics can be updated throughout the run
mlflow.log_metric("accuracy", 0.1)
...
mlflow.log_metric("accuracy", 0.45)

# Log artifacts (output files)
mlflow.log_atrifact("roc.png")
mlflow.log_artifact("model.pkl")
您可以在任何环境(例如,独立脚本或笔记本)中使用MLflow Tracking将结果记录到本地文件或服务器,然后比较多次运行。使用Web UI,您可以查看和比较多次运行的输出。团队也可以使用这些工具来比较不同用户的结果。

MLflow项目

MLflow项目提供了打包可重用数据科学代码的标准格式。每个项目都只是一个包含代码或Git存储库的目录,并使用一个描述符文件来指定它的依赖关系以及如何运行代码。MLflow项目由一个名为MLproject的简单YAML文件定义。
name: My Project
conda_env: conda.yaml
entry_points:
main:
parameters:
data_file: path
regularization: {type: float, default: 0.1}
command: "python train.py -r {regularization} {data_file}"
validate:
parameters:
data_file: path
command: "python validate.py {data_file}"
项目可以通过Conda环境指定它们的依赖关系。一个项目也可能有多个入口点用于调用带有命名参数的运行。您可以使用mlflow run命令行工具运行项目,无论是从本地文件还是从Git存储库中运行:
mlflow run example/project -P num_dimensions=5

mlflow run git@github.com:databricks/mlflow-example.git -P num_dimensions=5
MLflow将自动为项目设置合适的环境并运行它。另外,如果你在项目中使用MLflow Tracking API,MLflow将记住执行的项目版本(即Git commit)和任何参数。然后您可以轻松地重新运行完全相同的代码。
无论是在公司还是在开源社区,项目格式都可以轻松共享可复制的数据科学代码。结合MLflow跟踪,MLflow项目为重现性,可扩展性和实验提供了很好的工具。

MLflow模型

MLflow模型是一种用多种格式打包机器学习模型的惯例,称为“风味”。MLflow提供了多种工具来帮助您部署不同风格的模型。每个MLflow模型都保存为一个包含任意文件和MLmodel描述符文件的目录,该文件列出了可以使用的口味。
time_created: 2018-02-21T13:21:34.12
flavors:
sklearn:
sklearn_version: 0.19.1
pickled_model: model.pkl
python_function:
loader_module: mlflow.sklearn
pickled_model: model.pkl
在这个例子中,模型可以与支持sklearn或python_function模型风格的工具一起使用。
MLflow提供了将多种常见模型类型部署到不同平台的工具。例如,任何支持python_function flavor的模型都可以部署到基于Docker的REST服务器,云平台(如Azure ML和AWS SageMaker)以及Apache Spark中用于批量和流式推断的用户定义函数。如果您使用Tracking API将MLflow模型输出为工件,则MLflow还会自动记住它们来自哪个Project和Run。

MLflow入门

要开始使用MLflow,请按照mlflow.org上的说明进行操作,或查看Github上的Alpha版本代码。我们很高兴听到您对这些概念和代码的反馈意见!

在Databricks上主持MLflow

如果您想运行MLflow的托管版本,我们现在也正在接受databricks.com/mlflow的注册。Databricks上的MLflow与完整的DatabricksUnified Analytics Platform集成,包括笔记本,作业,Databricks Delta和Databricks安全模型,使您能够以安全,生产就绪的方式大规模地运行现有MLflow作业。

下一步是什么?

我们刚刚开始使用MLflow,因此还有很多事情要做。除了项目更新之外,我们还计划引入主要的新组件(例如Monitoring),库集成以及我们已发布的内容(例如支持更多环境类型)的扩展。请继续关注我们的博客以获取更多信息。

原文:https://databricks.com/blog/2018/06/05/introducing-mlflow-an-open-source-machine-learning-platform.html?utm_source=tuicool&utm_medium=referral

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342