跳转到主要内容
工程的博客

引入mlflow-apps: MLflow库的示例应用程序

通过Juntai郑

2018年8月16日 工程的博客

分享这篇文章

介绍

今年夏天,我是一个软件工程实习生在砖机器学习(ML)平台团队。bob体育客户端下载作为我的实习项目的一部分,我构建了一组MLflow应用演示MLflow社区的功能,并提供例子来学习。

在这个博客中,我将讨论这个图书馆可插入毫升应用程序,所有可运行通过MLflow。此外,我将分享我如何实现两个MLflow特性:实习期间运行MLprojects从Git目录和TensorFlow集成。

mlflow-apps:一组示例MLflow应用程序

mlflow-apps是可插拔的存储库通过MLflow毫升应用程序可运行。它帮助用户获得启动使用MLflow通过提供如何使用MLflow具体的例子。

通过一行MLflow API调用或CLI命令,用户可以运行应用程序训练TensorFlow, XGBoost和scikit-learn模型数据存储在本地或在云存储。这些应用程序日志通过常见的指标和参数MLflow的跟踪api,允许用户轻松地比较拟合模型。

目前,mlflow-apps关注模型训练,但是我们计划添加额外的功能特性工程/数据预处理。在这方面我们欢迎社区的贡献。

mlflow-apps包含三个应用程序,每个创建和火车不同模型基于你的输入数据。模型训练的应用有:

好奇如何使用应用程序?你可以看到应用程序的源代码和一个简短的教程在存储库中在这里。对于深入教程演示如何使用这些应用程序与MLflow砖内,看看这个笔记本

加强开源MLflowbob下载地址

MLflow有能力运行MLflow项目位于远程git存储库,通过CLI命令等

mlflow git运行@githubcom:例子/ example.git……

MLflow现在可以执行毫升项目描述MLproject文件位于子目录的git存储库。之前,执行一个MLflow运行从一个远程存储库要求MLproject和conda。yaml文件的根目录git存储库。一个例子git存储库结构必须看起来像下面的:

原始MLFlow Git存储库布局

这个git存储库结构会导致每个项目分享不必要的相互依赖关系(如运行sklearn_file需要conda环境中安装了所有的三种不同框架尽管只有sklearn需要)。实现的新功能,命令可能看起来像这样:

mlflow运行(电子邮件保护):例子/ example.git# sklearn_project……

随后将访问MLproject文件位于子目录中叫什么sklearn_project。前面的示例git回购上面现在可以重组等:

改善MLflow Git项目布局

现在,项目和依赖关系模块化和(如分离出来。sklearn_project只需要sklearn框架创建conda环境时)。这反过来会导致一个更干净、更容易与MLflow用户体验。

TensorFlow集成MLflow

虽然MLflow允许用户使用任何毫升库运行和部署模型,我们也希望这个项目有内置的简单易用的集成与流行的库。作为实习的一部分,我开发了一个TensorFlow集成,它允许储蓄、加载和部署TensorFlow模型。

#储蓄TensorFlow模型。saved_estimator_path = estimator.export_savedmodel (saved_estimator_path,receiver_fn) .decode (“utf - 8”)#日志TensorFlow模型就得救了。mlflow.tensorflow.log_saved_model (saved_model_dir = saved_estimator_path,signature_def_key =“预测”,artifact_path = tmp.path (“模型”))

除了日志TensorFlow模型,您可以加载回并执行推理使用MLflow api。

#加载模型作为一条巨蟒函数pyfunc = mlflow.tensorflow.load_pyfunc (mlflow.tracking._get_model_log_dir (model_name =路径,run_id = run_id))#预测或测试数据预测= pyfunc.predict (test_df)

MLflow目前内置集成TensorFlow SparkML, H2O, sklearn模型。注意更多的框架支持在不久的将来!

结论

mlflow-apps上工作的时候,我能够体验MLflow作为用户和项目开发人员。我能够更好的看到如何紧密交织在一起的社区和项目开发人员MLflow等开放源码项目。bob下载地址

作为我的第一次实习,我不可能要求一个更好的体验。我进砖渴望学习一切关于工业和新技术——我发现工程师匹配我的学习欲望。因为我是在一个环境中,完成工程师不断推动自己学习和挑战自我,鼓励我,反过来,是做同样的事情。因此,我提高了我的技能作为一个软件工程师突飞猛进。

特别shoutout生产服务和ML平台团队,其中包括马泰Zaharia亚伦戴维森,安德鲁·陈保罗•Obob体育客户端下载gilvie摩尼Parkhe,托马斯Nykodym,安苏,科里Zumar和我的导师Sid默奇。谢谢你的美妙的夏天!

阅读更多

看看其他资源学习MLflow & mlflow-apps:

免费试着砖
看到所有工程的博客的帖子