写点什么

在首次发布三周之后,MLflow 迎来了 0.2 版本

  • 2018-07-16
  • 本文字数:1982 字

    阅读完需:约 7 分钟

在今年的 Spark+AI 峰会上,MLflow 团队推出了 MLflow,一个开源的用于简化机器学习生命周期的平台。从首次发布到现在的三周时间里,已经有很多数据科学家和工程师对使用 MLflow 和为 MLflow 贡献代码感兴趣。MLFlow 的 GitHub 仓库已经有 180 个分支,其中有十几个贡献者提交了问题和拉取请求。此外,上周参加由该团队举办的第一次 MLflow 聚会的人数接近 100 人。

昨天,该团队正式宣布推出 MLflow 0.2 版本,这一版本包含了由内部客户和开源用户提出的一些最被期待的功能。按照 MLflow 快速入门指南给出的提示,可以使用 pip install mlflow 来安装 MLflow 0.2。以下内容将介绍该版本的主要新功能。

内置 TensorFlow 集成

MLflow 让开发者可以基于任意机器学习库进行模型训练,只要可以将它们包装在 Python 函数中,但对于常用的库,MLflow 团队希望能够提供内置的支持。该版本增加了 mlflow.tensorflow 包,借助这个包,开发者可以轻松地将 TensorFlow 模型记录到 MLflow 跟踪服务器中。在记录模型之后,可以立即将其传给受 MLflow 支持的各种部署工具(例如本地 REST 服务器、Azure ML 服务或 Apache Spark)。

以下示例显示了用户如何记录经过训练的 TF 模型,并使用内置功能和 pyfunc 抽象进行部署。

训练环境:保存训练过的的 TF 模型

复制代码
# 将 estimator 保存成 SavedModel 格式。
estimator_path = your_regressor.export_savedmodel(model_dir,
receiver_fn)
 
# 记录导出的 SavedModel。
# signature_def_key: 签名的名称,在加载 SavedModel 时使用
# 参考:
(https://www.tensorflow.org/serving/signature_defs).
# artifact_path: 保存构件的位置
mlflow.tensorflow.log_saved_model(saved_model_dir=estimator_path,
signature_def_key="predict",
artifact_path="model")

部署环境:加载 TF 模型并进行预测

复制代码
estimator_path = ... # 保存 TF 的位置
 
# 我们可以加载 TensorFlow estimator 并包装成一个 Python 函数。
# 可以使用本地文件或传进去一个 ID 加载上一次运行的构件。
pyfunc = mlflow.tensorflow.load_pyfunc(estimator_path)
 
# 将模型应用在 Pandas DataFrames 上进行预测。
predict_df = pyfunc.predict(df)

生产跟踪服务器

MLflow 0.2 增加了一个新的 mlflow server 命令,该命令将启动 MLflow 跟踪服务器的生产版本,用于跟踪和查询运行过的实验。与本地的 mlflow ui 命令不同,mlflow server 可以支持多个工作线程和基于 S3 的存储,如下所述。读者可以阅读 MLflow 文档以了解如何运行跟踪服务器。

基于 S3 的构件存储

MLflow 的一个关键功能是记录训练的输出,其中可能包括被称为“构件”的任意文件。不过,MLflow 的第一个版本仅支持将构件保存到共享的 POSIX 文件系统。MLflow 0.2 添加了对 S3 存储的支持,通过给 mlflow server 命令添加—artifact-root 参数即可。这样可以轻松地在多个云实例上运行 MLflow 训练作业并跟踪结果。以下示例说明如何启动使用 S3 存储的跟踪服务器。

在 EC2 实例上运行 MLflow 服务器:

复制代码
% hostname
ec2-11-222-333-444.us-west-2.compute.amazonaws.com
 
% mlflow server \
--file-store /mnt/persistent-disk/mlflow_data \
--artifact-root s3://my-mlflow-bucket/

MLflow 客户端:

复制代码
mlflow.set_tracking_uri("http://ec2-11-222-333-444.us-west-2.compute.amazonaws.com")
...
with mlflow.start_run():
mlflow.log_parameter("x", 1)
mlflow.log_metric("y", 2)
...
mlflow.log_artifact("/tmp/model")

其他改进

除了这些较大的功能之外,该版本还包含了一些错误和文档问题的修复。完整的变更列表可以在 CHANGELOG 中找到。读者可以在 mlflow-users@googlegroups.com 上提供更多反馈,或在 GitHub 上提交问题或补丁。要想实时讨论有关 MLflow 的问题,可以加入 MLflow 的 Slack 频道。

MLflow 的下一步会做什么?

MLflow 团队计划在 alpha 版本中继续更新 MLflow。例如,该团队正在进行的工作包括与更多库(如 PyTorch、Keras 和 MLlib)的集成,并进一步改进跟踪服务器的可用性。有关 MLflow 下一步工作的概述,可查看上周 MLflow 聚会的演示文稿,或直接观看聚会视频。

对于想要尝试托管版 MLflow 的 Databricks 用户,可以在 databricks.com/mlflow 上注册。

相关链接:

MLflow Github 地址: https://github.com/databricks/mlflow

MLflow 快速入门指南: https://mlflow.org/docs/latest/quickstart.html

如何运行跟踪服务器: https://www.mlflow.org/docs/latest/tracking.html#running-a-tracking

MLflow 2.0 变更日志: https://github.com/databricks/mlflow/blob/master/CHANGELOG.rst

MLflow Slack 频道: https://tinyurl.com/mlflow-slack

MLflow 首次聚会演示幻灯片: https://www.slideshare.net/databricks/introduction-fo-mlflow

2018-07-16 06:112433

评论

发布
暂无评论
发现更多内容

从单体系统到微服务

escray

学习 极客时间 朱赟的技术管理课 6月日更

相约厦门!HarmonyOS Connect伙伴峰会将于6月17日举办

科技汇

优秀的开发者每天都在做什么?

学神来啦

程序员 码农 编码 经验分享

泰山版震撼来袭!阿里巴巴2021年Java程序员面试指导小册已开源

Java架构师迁哥

一文带你,彻底了解,零拷贝Zero-Copy技术

奔着腾讯去

c++ Linux 缓存 零拷贝 Linux服务器开发

花了60天的时间肝出了这些spring,jvm,并发编程等学习笔记,春暖花开再战大厂!

Java架构师迁哥

「终!」☕️【Java技术之旅】带你进入String类的易错点和底层本质分析!

码界西柚

Java 字符串 字符串常量池 6月日更

爱奇艺M2VOC挑战赛落幕,6篇论文被ICASSP2021收录

爱奇艺技术产品团队

Apache hadoop 开源 程序员 成长

推理综艺的正确打开方式!爱奇艺玩转智能技术,“互动+内容”引爆迷综季

爱奇艺技术产品团队

综艺节目 智能 影视制作

动手实践,Linux安装php-vld全过程实录

架构精进之路

插件 6月日更 笔记分享

【布道API】API设计应该了解的HTTP方法和特性

devpoint

RESTful HTTP协议 6月日更

奇亚矿机分币系统搭建,Bzz云算力挖矿系统

重仓AI人才培养,打造产业落地升级护城河

百度大脑

人工智能

java异常分类和处理机制

加百利

Java 后端 异常 6月日更

一图读懂丨索信达灵枢如何助力金融机构提升模型管理效能

索信达控股

大数据 金融科技 监管平台 模型开发 数据管理平台

【FlinkSQL】Flink SQL Query 语法(二)

Alex🐒

flink FlinkSQL flink1.13

从理论到实战只需七天!阿里P10撰写的Spring全家桶有多全面?

Java架构追梦

Java 阿里巴巴 架构 springboot SpringCloud

Electron 开发音视频

anyRTC开发者

Java 音视频 WebRTC Electron RTC

Github全面爆火,这份阿里Java面试复盘笔记到底有何魅力?

Java 程序员 架构 面试

狂刷了29天的阿里面试参考指南(恒山版),竟成功收到了12个offer

Java 程序员 架构 面试

10大流行软件测试工具

百度开发者中心

测试工具

Python接口自动化之request请求封装

行者AI

接口 测试 自动化测试 封装

四面阿里巴巴如愿拿到offer定级P7,为此我筹备了半年

Java架构师迁哥

深入了解一些字符串函数,内存函数(c语言)

小写丶H

c 字符串函数

硬核!阿里自爆虐心万字面试手册,Github上获赞89.7K

Java架构师迁哥

拆分电商系统为微服务

Vincent

架构训练营

2021年,最新Java硬核技能微服务、虚拟机、高并发,掌握轻松拿大厂offer

Java架构师迁哥

Vue3.0 组合式 API 分析与实践

百度开发者中心

开发者

☕【JVM 技术探索】Class字节码指令操作介绍(上)

码界西柚

Java JVM Class字节码 6月日更

Hadoop Committer如何炼成?爱奇艺新晋核心贡献人给出了这份攻略!

爱奇艺技术产品团队

hadoop 开源 程序员 Apache社区

iOS 面试秘籍全套

程序员 编程之路 iOS 知识体系

在首次发布三周之后,MLflow迎来了0.2版本_语言 & 开发_Matei Zaharia_InfoQ精选文章