使用Databricks+Mlflow进行机器学习模型的训练和部署【Databricks 数据洞察公开课】
简介: 介绍如何使用Databricks和MLflow搭建机器学习生命周期管理平台,实现从数据准备、模型训练、参数和性能指标追踪、以及模型部署的全流程。
作者:李锦桂 阿里云开源大数据平台开发工程师
ML工作流的痛点
机器学习工作流中存在诸多痛点:
- 首先,很难对机器学习的实验进行追踪。机器学习算法中有大量可配置参数,在做机器学习实验时,很难追踪到哪些参数、哪个版本的代码以及哪个版本的数据会产生特定的结果。
- 其次,机器学习实验的结果难以复现。没有标准的方式来打包环境,即使是相同的代码、相同的参数以及相同的数据,也很难复现实验结果。因为实验结果还取决于采用的代码库。
- 最后,没有标准的方式管理模型的生命周期。算法团队通常会创建大量模型,而这些模型需要中央平台进行管理,特别是模型的版本所处阶段和注释等元数据信息,以及版本的模型是由哪些代码、哪些数据、哪些参数产生,模型的性能指标如何。也没有统一的方式来部署这些模型。
MIflow 就是为了解决机器学习工作流中的上述痛点问题而生。它可以通过简单的 API 实现实验参数追踪、环境打包、模型管理以及模型部署整个流程。
MIflow的第一个核心功能: MIflow Tracking。
它可以追踪基于学习的实验参数、模型的性能指标以及模型的各种文件。在做机器学习时实验时,通常需要记录一些参数配置以及模型的性能指标,而 MIflow 可以帮助用户免去手动记录的操作。它不仅能记录参数,还能记录任意文件,包括模型、图片、源码等。
从上图左侧代码可以看到,使用 MIflow的 start_run可以开启一次实验;使用 log_param 可以记录模型的参数配置;使用log_metric 可以记录下模型的性能指标,包括标量的性能指标和向量的性能指标;使用 log_model 可以记录下训练好的模型;使用 log_artifact 可以记录下任何想要记录的文件,比如上图中记录下的就是源码。
MIflow的第二个核心功能:MIflow Project 。
它会基于代码规约来打包训练代码,并指定执行环境、执行入口以及参数等信息,以便复现实验结果。而且这种规范的打包方式能够更方便代码的共享以及平台的迁移。
如上图, miflow-training 项目里包含两个很重要的文件,分别是 content.yaml 和 MLproject。content.yaml 文件中指定了 project 的运行环境,包含它所有依赖的代码库以及这些代码库的版本;MLproject 里指定了运行的环境,此处为conda.yaml,指定了运行的入口,即如何将 project 运行起来,入口信息里面包含了相应的运行参数,此处为 alpha 和 l1_ratio 两个参数。
除此之外,MIflow 还提供了命令行工具,使得用户能够方便地运行 MIflow project 。比如打包好project 并将其上传到 git 仓库里了,用户只需要通过 mIflow run 指令即可执行project ,通过 -P 传入 alpha 参数。
MIflow 的第三个核心功能: MIflow Models。
它支持以统一的方式打包记录和部署多种算法框架模型。训练完模型后,可以使用 MIflow 的 log_model将模型记录下来,MIflow 会自动将模型进行存储(可存储到本地或 OSS 上),而后即可在 MIflow WebUI 上查看模型与代码版本、参数和metric 之间的关系,以及模型的存储路径。
此外,MIflow 还提供了 API 用于部署模型。使用 mIflow models serve 部署模型后,即可使用 rest API 调用模型,得到预测的结果。
MIflow 的第四个核心功能: MIflow Registry。
MIflow 不但能够存储模型,还提供了 WebUI 以管理模型。WebUI 界面上展示了模型的版本和所处的阶段,模型的详情页显示了模型的描述、标签以及schema。其中模型的标签可以用于检索和标记模型,模型的schema 用于表示模型输入和输出的格式。此外,MIflow 还建立了模型以及运行环境、代码和参数之间的关系,即模型的血缘。
MIflow 的四个核心功能很好地解决了机器学习工作流中的痛点,总结起来可以分为三个方面:
- MIflow Tracking 解决了机器学习实验难以追踪的问题。
- MIflow Project解决了机器学习工作流中没有标准的方式来打包环境导致实验结果难以复现的问题。
- MIflow Models 和Model Registry 解决了没有标准的方式来管理模型生命周期的问题。
Demo演示
接下来介绍如何使用 MIflow 和 DDI 搭建机器学习平台以管理机器学习的生命周期。
在架构图中可以看到,主要的组件有 DDI 集群、OSS和 ECS 。DDI 集群负责做一些机器学习的训练,需要启动一台 ECS 来搭建 MIflow 的tracking server 以提供 UI 界面。此外还需要在 ECS 上安装 MySQL 以存储训练参数、性能和标签等元数据。OSS 用于存储训练的数据以及模型源码等。
部署要点请观看演示视频
https://developer.aliyun.com/live/248988
原文链接:http://click.aliyun.com/m/1000346557/
本文为阿里云原创内容,未经允许不得转载。
使用Databricks+Mlflow进行机器学习模型的训练和部署【Databricks 数据洞察公开课】的更多相关文章
- Python 3 利用机器学习模型 进行手写体数字识别
0.引言 介绍了如何生成数据,提取特征,利用sklearn的几种机器学习模型建模,进行手写体数字1-9识别. 用到的四种模型: 1. LR回归模型,Logistic Regression 2. SGD ...
- Python 3 利用机器学习模型 进行手写体数字检测
0.引言 介绍了如何生成手写体数字的数据,提取特征,借助 sklearn 机器学习模型建模,进行识别手写体数字 1-9 模型的建立和测试. 用到的几种模型: 1. LR,Logistic Regres ...
- 如何对SAP Leonardo上的机器学习模型进行重新训练
Jerry之前的两篇文章介绍了如何通过Restful API的方式,消费SAP Leonardo上预先训练好的机器学习模型: 如何在Web应用里消费SAP Leonardo的机器学习API 部署在SA ...
- Python 3 利用 Dlib 19.7 和 sklearn机器学习模型 实现人脸微笑检测
0.引言 利用机器学习的方法训练微笑检测模型,给一张人脸照片,判断是否微笑: 使用的数据集中69张没笑脸,65张有笑脸,训练结果识别精度在95%附近: 效果: 图1 示例效果 工程利用pytho ...
- R语言︱机器学习模型评估方案(以随机森林算法为例)
笔者寄语:本文中大多内容来自<数据挖掘之道>,本文为读书笔记.在刚刚接触机器学习的时候,觉得在监督学习之后,做一个混淆矩阵就已经足够,但是完整的机器学习解决方案并不会如此草率.需要完整的评 ...
- R语言︱机器学习模型评价指标+(转)模型出错的四大原因及如何纠错
笔者寄语:机器学习中交叉验证的方式是主要的模型评价方法,交叉验证中用到了哪些指标呢? 交叉验证将数据分为训练数据集.测试数据集,然后通过训练数据集进行训练,通过测试数据集进行测试,验证集进行验证. 模 ...
- 使用ML.NET + ASP.NET Core + Docker + Azure Container Instances部署.NET机器学习模型
本文将使用ML.NET创建机器学习分类模型,通过ASP.NET Core Web API公开它,将其打包到Docker容器中,并通过Azure Container Instances将其部署到云中. ...
- 用PMML实现机器学习模型的跨平台上线
在机器学习用于产品的时候,我们经常会遇到跨平台的问题.比如我们用Python基于一系列的机器学习库训练了一个模型,但是有时候其他的产品和项目想把这个模型集成进去,但是这些产品很多只支持某些特定的生产环 ...
- Spark机器学习——模型选择与参数调优之交叉验证
spark 模型选择与超参调优 机器学习可以简单的归纳为 通过数据训练y = f(x) 的过程,因此定义完训练模型之后,就需要考虑如何选择最终我们认为最优的模型. 如何选择最优的模型,就是本篇的主要内 ...
- GMIS 2017 大会陈雨强演讲:机器学习模型,宽与深的大战
https://blog.csdn.net/starzhou/article/details/72819374 2017-05-27 19:15:36 GMIS 2017 10 0 5 ...
随机推荐
- day10-面向对象
面向对象 1.什么是面向对象? 1.1面向过程&&面向对象 面向过程思想: 步骤清晰简单,第一步做什么,第二步做什么-- 面对过程适合处理一些较为简单地问题 面向对象思想 物以类聚,分 ...
- 记一次由虚假唤醒产生的bug
记一次由虚假唤醒产生的bug 用int a代表产品数量最少0最多10,有两个生产者,三个消费者,用多线程和条件变量模拟生产消费过程: #include <sys/types.h> #inc ...
- 喜报|3DCAT入选“灵境杯”深圳市最佳元宇宙案例!
2022年11月10日~11日,2022全球元宇宙大会深圳站胜利召开,在本次大会上重磅发布"灵境杯"全球元宇宙创新大赛成果,公布深圳最具潜力元宇宙入选企业. 创新大赛结合" ...
- 更新|3DCAT实时云渲染 v2.1.2版本全新发布
3DCAT实时渲染云在近期发布了新的v2.1.2的版本,让我们来看下做了哪些更新. 1. 整体UI的变更 目前的UI风格更加美观,区分开了3DCAT 应用控制中心和个人信息管理中心. 3DCAT 应用 ...
- 三维模型3DTile格式轻量化压缩处理效率提高的技术方浅析
三维模型3DTile格式轻量化压缩处理效率提高的技术方浅析 随着三维模型在各个领域的广泛应用,对于其格式的轻量化压缩处理和效率提高的需求也越发迫切.本文将介绍一些技术方法,帮助实现三维模型3DTile ...
- Three.js的基础使用
1. 引言 Three.js是著名的JavaScript 3D图形库,用于浏览器中开发 3D 交互场景的 JS 引擎,可以快速的搭建三维场景 Three.js官网为:创建一个场景 – three.js ...
- js实现页面窗口录制
一.在线demo 1.在线demo地址:http://www.lb0125.com/videoRecord.html 注:目前测试发现只有在chrome浏览器里可以使用 二.直接上代码 <!DO ...
- KingbaseES 集群运维系列 -- 验证系统用户修改密码或密码过期对ssh互信的影响
案例说明: Kingbase V8主备流复制集群在通用机环境部署和运维,需要建立主机间的ssh互信,如果ssh互信被破坏,将导致集群故障.但有的生产环境为了系统安全需要,会配置密码管理策略,定期的修改 ...
- Chrome浏览器使用小技巧
前言 Notes made by IT-Pupil-Poo-Poo-Cai(IT小学生蔡坨坨). The notes are for reference only. Personal blog:www ...
- 批量导出导入IIS下所有网站方法
C:\Windows\System32\inetsrv\config\ applicationHost.config 存放的是网站列表配置信息,复制到目标服务器相同目录下(建议备份目标服务器原文件). ...