QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

在首次发布三周之后,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:112189

评论

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

焱融存储增速 No.1丨业界顶级性能领跑 AI 存储赛道

焱融科技

人工智能 IDC AI存储 焱融存储

等级保护建设方案,密评资料整理合集(Word原件)

金陵老街

等保 等级保护 密码测评 密评

如何选择工作机会和offer

老张

面试 求职 职业生涯规划

基于javaPoet的缓存key优化实践

京东科技开发者

速来体验!基于有道子曰的翻译大模型2.0正式上线

有道技术团队

人工智能

“数据飞轮” 理念焕新,助力 2025 企业数智化发展

字节跳动数据平台

Java定时任务大盘点:发工资也能“指日可待”

京东科技开发者

淘宝天猫API接口深度探索:商品详情与关键词搜索商品列表的高效应用与实战代码

代码忍者

淘宝API接口

推荐4款基于.NET开源、功能强大的CMS建站系统

不在线第一只蜗牛

开源

JimuBI 积木大屏 v1.9.3 发布,免费可视化大屏

JEECG低代码

大屏设计器 免费大屏 开源大屏

探秘淘宝商品SKU信息API接口

科普小能手

数据挖掘 数据分析 淘宝 电商 API 接口

Triton-Lang在Transformer优化加速中的实践 | 得物技术

得物技术

人工智能 算法

【YashanDB知识库】yasql执行报错

YashanDB

数据库 yashandb

AI智能体在自动化测试中的应用

测吧(北京)科技有限公司

测试

低代码,帮你解决80%重复开发工作!

秃头小帅oi

腾讯二面:Redis与MySQL双写一致性如何保证?

王中阳Go

MySQL 高可用 面试问题 redis 底层原理

CAP:Serverless + AI 让应用开发更简单

阿里巴巴云原生

阿里云 云原生 CAP

中药熬制机械加工MES系统

万界星空科技

mes 制造业工厂 机械加工mes 中药加工 中药罐机械加工

道旅科技借助云消息队列 Kafka 版加速旅游大数据创新发展

阿里巴巴云原生

kafka 阿里云 云原生

函数计算助您 7 分钟极速部署开源对话大模型

阿里巴巴云原生

阿里云 云原生

一款好的低代码开发平台应该是什么样?

伤感汤姆布利柏

【YashanDB知识库】YAS-04115 "SELECT" expected but missing

YashanDB

数据库 yashandb

清华大学AutoDroid-V2,软件测试行业将如何发展

测吧(北京)科技有限公司

测试

MortiseAI : AI 驱动的工程生产力, 面向 AGI 编程之路

MortiseAI@HugoHu

开发工具 大模型 AI智能体 大模型应用 #AI编程

一篇解决编译原理大作业,基于Flex、Bison设计编译器(含语法分析树和符号表)

EquatorCoco

Linux 算法

AIP智能体平台:打造高效的超大型文本处理解决方案

大东(AIP内容运营专员)

人工智能

京东广告生成式召回基于 NVIDIA TensorRT-LLM 的推理加速实践

京东科技开发者

【YashanDB知识库】load data一次导入多个文件的数据时报错

YashanDB

数据库 yashandb

【YashanDB知识库】lYAS-02143 invalid username/password, login denied

YashanDB

数据库 yashandb

清华大学AutoDroid-V2,软件测试行业将如何发展

测试人

软件测试

为什么货币政策紧缩但经济持续火爆?

TechubNews

经济形势 货币政策

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