乐趣区

关于机器学习:使用DatabricksMlflow进行机器学习模型的训练和部署Databricks-数据洞察公开课

简介:介绍如何应用 Databricks 和 MLflow 搭建机器学习生命周期治理平台,实现从数据筹备、模型训练、参数和性能指标追踪、以及模型部署的全流程。
作者:李锦桂 阿里云开源大数据平台开发工程师

ML 工作流的痛点
1.png

机器学习工作流中存在诸多痛点:

首先,很难对机器学习的试验进行追踪。机器学习算法中有大量可配置参数,在做机器学习试验时,很难追踪到哪些参数、哪个版本的代码以及哪个版本的数据会产生特定的后果。
其次,机器学习试验的后果难以复现。没有规范的形式来打包环境,即便是雷同的代码、雷同的参数以及雷同的数据,也很难复现试验后果。因为试验后果还取决于采纳的代码库。
最初,没有规范的形式治理模型的生命周期。算法团队通常会创立大量模型,而这些模型须要地方平台进行治理,特地是模型的版本所处阶段和正文等元数据信息,以及版本的模型是由哪些代码、哪些数据、哪些参数产生,模型的性能指标如何。也没有对立的形式来部署这些模型。

MIflow 就是为了解决机器学习工作流中的上述痛点问题而生。它能够通过简略的 API 实现试验参数追踪、环境打包、模型治理以及模型部署整个流程。

MIflow 的第一个外围性能:MIflow Tracking。
2.png

它能够追踪基于学习的试验参数、模型的性能指标以及模型的各种文件。在做机器学习时试验时,通常须要记录一些参数配置以及模型的性能指标,而 MIflow 能够帮忙用户免去手动记录的操作。它不仅能记录参数,还能记录任意文件,包含模型、图片、源码等。

从上图左侧代码能够看到,应用 MIflow 的 start_run 能够开启一次试验;应用 log_param 能够记录模型的参数配置;应用 log_metric 能够记录下模型的性能指标,包含标量的性能指标和向量的性能指标;应用 log_model 能够记录下训练好的模型;应用 log_artifact 能够记录下任何想要记录的文件,比方上图中记录下的就是源码。

MIflow 的第二个外围性能:MIflow Project。
3.png

它会基于代码规约来打包训练代码,并指定执行环境、执行入口以及参数等信息,以便复现试验后果。而且这种标准的打包形式可能更不便代码的共享以及平台的迁徙。

如上图,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。
4.png

它反对以对立的形式打包记录和部署多种算法框架模型。训练完模型后,能够应用 MIflow 的 log_model 将模型记录下来,MIflow 会主动将模型进行存储(可存储到本地或 OSS 上),而后即可在 MIflow WebUI 上查看模型与代码版本、参数和 metric 之间的关系,以及模型的存储门路。

此外,MIflow 还提供了 API 用于部署模型。应用 mIflow models serve 部署模型后,即可应用 rest API 调用模型,失去预测的后果。

MIflow 的第四个外围性能:MIflow Registry。
5.png

MIflow 岂但可能存储模型,还提供了 WebUI 以治理模型。WebUI 界面上展现了模型的版本和所处的阶段,模型的详情页显示了模型的形容、标签以及 schema。其中模型的标签能够用于检索和标记模型,模型的 schema 用于示意模型输出和输入的格局。此外,MIflow 还建设了模型以及运行环境、代码和参数之间的关系,即模型的血统。

MIflow 的四个外围性能很好地解决了机器学习工作流中的痛点,总结起来能够分为三个方面:

MIflow Tracking 解决了机器学习试验难以追踪的问题。
MIflow Project 解决了机器学习工作流中没有规范的形式来打包环境导致试验后果难以复现的问题。
MIflow Models 和 Model Registry 解决了没有规范的形式来治理模型生命周期的问题。

Demo 演示
接下来介绍如何应用 MIflow 和 DDI 搭建机器学习平台以治理机器学习的生命周期。

6.png

在架构图中能够看到,次要的组件有 DDI 集群、OSS 和 ECS。DDI 集群负责做一些机器学习的训练,须要启动一台 ECS 来搭建 MIflow 的 tracking server 以提供 UI 界面。此外还须要在 ECS 上装置 MySQL 以存储训练参数、性能和标签等元数据。OSS 用于存储训练的数据以及模型源码等。

部署要点请观看演示视频

https://developer.aliyun.com/…

原文链接:http://click.aliyun.com/m/100…

本文为阿里云原创内容,未经容许不得转载。

退出移动版