宣布MLflow 1.0发布
2019年6月6日 在工程的博客
MLflow是一个开源平bob下载地址台,帮助管bob体育客户端下载理完整的机器学习生命周期。使用MLflow,数据科学家可以在本地(笔记本电脑上)或远程(云中)跟踪和共享实验,跨框架打包和共享模型,并几乎在任何地方部署模型。
今天,我们激动地宣布MLflow 1.0的发布。自一年前推出以来,MLflow已经部署在数千个组织中,以管理他们的生产机器学习工作负载,并且已经在诸如在Databricks上管理MLflow.MLflow社区已经发展到100多名贡献者,MLflow PyPI包的下载率已经达到每月近60万次。1.0版本不仅标志着api的成熟和稳定,而且还增加了许多经常要求的特性和改进。
该版本从今天开始公开发布。使用PyPl安装MLflow 1.0,读我们的文档开始,并提供反馈GitHub.下面我们只介绍MLflow 1.0中的几个新特性。详情请参阅发布说明完整的列表。
MLflow 1.0有什么新功能
跟踪API支持X坐标
在ML训练期间跟踪指标的数据科学家和工程师通常希望在训练运行结束时跟踪汇总指标,例如,准确性,或在模型训练时产生的“流指标”,例如,每个小批的损失。这些流度量通常是针对训练数据的每个小批或epoch计算的。为了能够准确地记录这些指标,以及更好的可视化,可以使用log_metric
API现在支持步进参数。
Mlflow.log_metric(键,值,步骤=没有一个)
度量步长可以是表示度量的x坐标的任何整数。例如,如果您想记录每个纪元数据的度量,那么步长就是纪元号。
MLflow UI现在还支持根据所提供的x坐标值绘制指标。在下面的示例中,我们将展示如何使用UI来可视化两个指标。尽管它们记录在不同的时间点上(如“相对时间”视图中数据点的不对齐所示),但数据点与相同的x坐标相关。通过切换到“步骤”视图,您可以看到来自两个指标的数据点按它们的x坐标值排列。
改进的搜索功能
为了改进搜索功能,搜索过滤器API现在支持SQL WHERE子句的简化版本。此外,它还得到了增强,除了指标和参数之外,还支持通过运行属性和标记进行搜索。下面的例子显示了通过参数和标签值在所有实验中运行的搜索。
从mlflow.tracking.client进口MlflowClientAll_experiments = [exp.experiment_id .为经验值在.list_experiments MlflowClient () ())
runs = (MlflowClient().search_runs (experiment_ids = all_experiments,filter_string =”参数。模型=《盗梦空间》和tags.version = resnet”run_view_type = ViewType.ALL))
批量记录指标
在您想要记录多个指标的实验中,作为批记录它们通常比单独记录它们更方便和高效。MLflow 1.0包含一个运行/ log-batch
REST API端点,用于用一个API请求记录多个指标、参数和标记。
你可以调用这个批处理日志端点:
- Python
Mlflow.log_metrics, mlflow.log_params, mlflow.set_tags
- R
mlflow_log_batch
- Java
MlflowClient.logBatch
支持HDFS作为一个Artifact Store
除了本地文件,MLflow已经支持以下存储系统作为工件存储:Amazon S3、Azure Blob storage、谷歌Cloud storage、SFTP和NFS。在MLflow 1.0版本中,我们增加了对HDFS作为工件存储后端的支持。简单地指定hdfs: / /
URI与——backend-store-uri
:
hdfs:/ / <主机>:<端口> / <路径> < /路径> < /端口> < /主机>
Windows支持MLflow客户端
运行在Windows操作系统上的MLflow用户现在可以使用MLflow 1.0 Windows客户端跟踪实验。
为部署构建Docker映像
部署ML模型最常见的方法之一是构建docker容器。MLflow 1.0增加了一个新命令,用于构建一个docker容器,该容器的默认入口点服务于容器内端口8080处的指定MLflow pyfunc模型。例如,您可以构建一个docker容器,并使用以下命令将其服务于主机的5001端口:
Mlflow模型build-docker -m“运行:/ some-run-uuid /我的模型”- n“my-image-name”Docker run -p5001:8080“my-image-name”
ONNX模型风味
这个版本增加了一个实验版本ONNX模型的味道。要以MLflow格式记录ONNX模型,请使用mlflow.onnx.save_model ()
而且mlflow.onnx.log_model ()
方法。这些方法还添加pyfunc
为他们生成的MLflow模型添加风味,允许模型被解释为用于推理的通用Python函数mlflow.pyfunc.load_pyfunc ()
.MLflow ONNX模型的pyfunc表示使用ONNX运行时执行引擎进行计算。最后,您可以使用mlflow.onnx.load_model ()
方法加载带有本地ONNX格式的ONNX风味的MLflow模型。
其他功能及更新
请注意,这个主要版本发布包括几个突破性的更改。请查看来自社区的更改和贡献的完整列表1.0版本说明.我们欢迎更多的意见(电子邮件保护)或者在GitHub上提交问题或补丁。对于关于MLflow的实时问题,我们还运行一个松弛的通道MLflow,你可以跟随@MLflow在Twitter上。
1.0之后会是什么
1.0版本标志着MLflow组件(跟踪、模型和项目)被广泛采用的一个里程碑。在我们继续开发这些组件的同时,我们也在投资新的组件,以覆盖更多的ML生命周期。MLflow的下一个主要补充将是一个模型注册表,允许用户管理他们的ML模型的生命周期,从实验到部署和监控。看Spark AI峰会MLflow主题演讲记录为即将到来的功能演示。
不要错过我们即将到来的网络研讨会,我们将介绍1.0更新和更多内容:管理机器学习生命周期:MLflow的新特性- 6月6日星期四。
最后,加入微软于6月20日星期四在森尼维尔举办的湾区MLflow Meetup。在这里注册.
阅读更多
要在笔记本电脑或Databricks上开始使用MLflow,您可以:
- 读了快速入门指南
- 完成教程
- 试管理MLflow on Databricks
学分
我们要感谢以下贡献者对MLflow 1.0的更新、文档更改和贡献:Aaron Davidson, Alexander Shtuchkin, Anca Sarb, Andrew Chen, Andrew Crozier, Anthony, Christian Clauss, Clemens Mewald, Corey Zumar, Derron Hu, Drew McDonald, Gábor Lipták, Jim Thompson, Kevin Kuo, kublay - jing, Luke Zhu, Mani Parkhe, Matei Zaharia, Paul Ogilive, Richard Zang, Sean Owen, Siddharth Murching, Stephanie Bodoff, Sue Ann Hong, Sungjun Kim, Tomas Nykodym, Yahro, Yorick, avflor, eedeleon, freefrag, hchiuzhuo, jason-huling, kafendt, v神-dbx。