公司博客上

宣布MLflow 1.1发布

分享这篇文章

今天,我们激动地宣布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进口密集,嵌入,LSTMkeras.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,您可以:

  1. 读了快速入门指南
  2. 完成教程
  3. 试管理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

免费试用Databricks
看到所有公司博客上的帖子