宣布MLflow 1.1发布
2019年7月23日 在公司博客上
今天,我们激动地宣布MLflow 1.1的发布。在这个版本中,我们将重点放在充实MLflow的跟踪组件和改进UI中的可视化组件上。
一些主要功能包括:
- TensorFlow和Keras的自动日志记录
- 跟踪UI中的平行坐标图
- 熊猫DataFrame基于搜索API
- Java Fluent API
- Kubernetes执行后端MLflow项目
- 搜索分页
所有特性的完整列表可以在变更日志中找到。您可以在PyPI、Maven和CRAN上找到MLflow 1.1。请查看文档并提供反馈GitHub.
MLflow 1.1有什么新功能
从TensorFlow和Keras中自动下载
MLflow 1.1提供了来自你的TensorFlow和Keras模型训练运行的度量、参数和模型的轻量级自记录-调用MLflow . TensorFlow .autolog()或
Mlflow.keras.autolog()用于您正在使用的框架。自动记录消除了手动度量和参数日志语句的需要,并提供了开箱即用的模型跟踪,而无需对训练代码进行任何修改。
下面是一个使用Keras的IMDB情感分类示例的例子:
从keras.preprocessing进口序列从keras.models进口顺序从keras.layers进口密集,嵌入,LSTM从keras.datasets进口imdb进口mlflow.kerasmlflow.keras.autolog ()#这就是你所需要的!max_features =20000maxlen =80batch_size =32(x_train, y_train), (x_test, y_test) = imdb.load_data(num_words=max_features)
...
模型。fit (x_train y_train,batch_size = batch_size,时代=15,validation_data = (x_test y_test))
然后我们可以在MLflow UI中查看自动记录的指标:
还可以查看示例用法Keras而且TensorFlow在MLflow GitHub仓库中。
平行坐标图
在n维空间中可视化关系对于机器学习的应用尤其重要。在比较MLflow运行时,您希望了解一组不同的超参数将如何影响模型评估指标(如验证损失)。为了实现这一点,我们添加了在比较不同MLflow运行时显示并行坐标图的支持。
下面是一个从TensorFlow的Iris例子中自动抽取数据的例子:
https://www.youtube.com/watch?v=pBr7jlXjqHs
在这个例子中,我们可以看到只使用2个图层就能获得一致的高精确度。对于3或4层,准确性会降低,因为我们可能会将模型过度拟合到训练数据上。
熊猫基于数据框架的搜索API
在决定哪些模型应该进行测试和部署时,比较和搜索实验中的运行是非常重要的。虽然您可以使用MLflow UI来搜索和比较运行,但随着运行次数的增加,这就变得困难起来。这就是为什么我们在MLflow Python客户端中实现了一个新的search_runs API,它在pandas数据框架中返回实验运行。这样,您可以使用pandas和其他绘图库以编程方式分析您的运行。
DataFrame包含run_id、experiment_id、status和artifact_uri。它还将包含每次运行的度量、参数和标记。例如:
进口mlflow打印(mlflow.search_runs (filter_string =”指标。foo >0.5"))
run_id | experiment_id | metrics.foo | params.param1 | ... | tags.mlflow.source.git.commit | tags.mlflow.user |
a3edc64fd9a042f2a8d4816be92555d5 | 0 | 2.84 | 39 | 2 ef523a6f5b60f971df261274fe2bc1cc809ca0f | 约翰 |
Java Fluent API
Java Fluent API提供了一个高级接口,用于创建MLflow运行并记录日志。这个API与底层MlflowClient API形成对比,后者本质上是REST API的包装器。下面的示例展示了如何简单地使用新API来创建和记录新运行。
进口org.mlflow.tracking.ActiveRun;进口org.mlflow.tracking.MlflowContext;MlflowContext mlflow =新MlflowContext ();ActiveRun run = mlflow.startRun(“运行”);run.logParam (“阿尔法”,“0.0”);run.logMetric (“MSE”,0.0);run.endRun ();
Kubernetes项目执行后端
使用MLflow 1.1,您现在可以在Kubernetes集群上运行MLflow项目。的任何MLflow项目码头工人的环境是支持的。MLflow将项目代码作为Kubernetes工作并定期监控其状态,直至完成。您可以使用一个简单的后端配置文件为您的项目选择一个目标Kubernetes集群和Docker注册表。如需更多资讯,请浏览新特性文档和GitHub上更新的示例.我们要感谢@marcusrehm感谢您贡献了这个令人兴奋的新功能!
搜索分页
为了使MLflow能够适应数千次运行的实验,我们改变了搜索API和UI,使用分页界面。
https://www.youtube.com/watch?v=5J5Q7xEsG-g
其他功能及更新
我们在上面强调了MLflow 1.1中发布的一小部分特性。我们欢迎更多的意见(电子邮件保护)或者在GitHub上提交问题或补丁。对于关于MLflow的使用问题,我们有一个MLflow标签堆栈溢出.大家可以跟着看@MLflow在推特上也是如此。
1.1之后会是什么
在1.1版本之后,我们目前正在开发的下一个主要特性是MLflow模型注册表,它将允许您管理从实验到部署和监视的模型生命周期。我们在发布会上与其他MLflow路线图更新一起宣布了这一点Spark AI峰会MLflow主题演讲去年4月。
接下来,我们也很高兴有Spark AI欧洲峰会10月15日至17日。在峰会上,我们会有专门的培训课程MLflow和模型部署.早鸟注册将于2019年8月16日结束。
最后,我们还将在8月1日举行网络研讨会生产机器学习MLflow的产品经理Clemens Mewald和高级解决方案架构师Joel Thomas。
阅读更多
要在笔记本电脑或Databricks上开始使用MLflow,您可以:
- 读了快速入门指南
- 完成教程
- 试管理MLflow on Databricks
学分
我们要感谢以下贡献者在MLflow 1.1中的更新、文档更改和贡献:Avinash Raghuthu、Aaron Davidson、Akshaya Annavajhala、Amrit Baveja、Andrew Chen、Andrew Crozier、Ankit Mathur、Henning、Javier Luraschi、Liza Shakury、Marcus Rehm、Matei Zaharia、Max Allen、Nicolas Laille、Richard Zang、Sid Murching、Siddharth Murching、Stephanie Bodoff、Sue Ann Hong、Taur1ne、Uwe L. Korn、ahutterTA、Apurva Koti、Corey Zumar、kafendt、lennon310、nathansuh、Tomas Nykodym