使用 Databricks 和 MLflow 进行机器学习模型训练和部署的应用实践| 学习笔记(二)

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
简介: 快速学习使用 Databricks 和 MLflow 进行机器学习模型训练和部署的应用实践

开发者学堂课程【Databricks数据洞察公开课:使用 Databricks 和 MLflow 进行机器学习模型训练和部署的应用实践】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/1058/detail/15565


使用 Databricks 和 MLflow 进行机器学习模型训练和部署的应用实践


image.png

Anaconda 的安装包已经下载好了,下一步,要把 conda 的路径添加到系统路径中。

ecal s(/root/anaconda3/bin/conda shell.bash hook)

然后,初始化 Conda

conda init

紧接着去创建一个新的 Anaconda 的环境

conda create-n m\flow-server

然后去激活这个环境。

conda activate m\flow-server

在这个新的环境中,我们去安装 python 3.9

conda install pathon=3.9

conda install pymysql

由于,Mlflow server 需要将原数据存储到数据库中,所以,还需要 python Mysql connecter ,接着就可以使用 pip 去安装Mlflow Server

Mlflow Server安装好之后需要在 Mysql 里创建一个新的数据库用来存储 Mlflow Server 的一些原数据信息,然后需要设置一些环境变:MLFLOW_OSS_ENDPOINT_URL=

http://oss-cn-beijing.aliyuncs.com/mlflow-demo

这个环境变量是 OSS ENDPOINT URL ,它的组成是oss 以及地域和 OSS Bucket ,下方是AK AK KEY AK SECRET

image.png

此外这里需要用到 Mlflow OSS conducter ,需要下载安装包,然后再在本地区安装,已经在本地下载好了后,直接在这个路径下执行 pip install ,如下图。

image.png

之后就可以在这个机器上启动一个Mlflow Server ,  Mlflow 的 Web UI 是开在5000端口,如下图:

image.png

可以看到Mlflow Server 已经运行起来了,但是目前这里还没有实验,也没有模型, Mlflow Server 环境搭建好之后,就可以在 DDI notebook 上进行操作,首先把需要的包都给导入进来,然后需要设置三个环境变量,如下图:

image.png

和前面的 ECS Server 设置的环境变量是一致的,再去设置一下 log 的级别,如下图:

image.png

还有下图定义了一个计算均方误差,平均绝对误差和 R2 的一个函数,这是用来计算模型的相应的指标的。

 image.png

之后,将 OSS 中的训练数据加载进来,下图是红酒质量数据,对应的每一行的是红酒的酸碱度,然后还有含糖量以及酒精含量等等这些信息,最后一列呢是这个酒的质量

image.png

把这些数据加载进来,加载完成后,我们先把它转成 Pandas

Pandas data free ,然后把它分割成训练集和测试集

image.png

然后,使用 SK LUNCH 去搭建一个简单的线性回归的模型,这里的参数设置为0.60.1如下图:

image.png

然后需要去设置tracking server uri ,使用的是内网的地址: http://10.0.0.2465000/

image.png

之后去创建一个实验环境,这个实验环境的名称叫 wine quality ,还需要设置模芯的存储地址,是存储到 models 里。

image.png

环境创建好之后,就可以开启一次实验,开启一次实验与打开一个文件是类似的,使用 with 语句,然后start run 方法就可以开启一次实验。

image.png

首先去把参数给记录下来,再使用这个 log_param alpha 还有 l1_racial这两个参数记录下来,去创建一个简单的线性回归模型,之后使用train_xtrain_y去训练这个模型,再计算这个模型的性能指标,再使用 log metric 把这些性能指标给记录下来,最后还需要把训练好的模型给记录下来,在这个 Mlflow 的这个 Web UI 上,可以看到实验以及这次实验产生的模型,还有性能指标以及参数。

image.png

在这次实验的详情页面,可以看到这次实验的详细的信息,比如参数、性能指标,还可以为这次实验打上一些标签,方便快速的去检索这个这次实验。

image.png

还有这次实验相关的一些 Artifacts ,包括了模型的参数、执行环境、以及这次训练得到的模型。

参数:执行环境:模型:

image.png

再次回到这个 DDI的这个notebook ,去修改一下 alpha r1_ratio ,再次去执行一次实验。

image.png

多修改几次:

image.png

Mlflow 的这个界面,就会看到新生成了两次实验。

image.png

并且可以将两次实验进行一个简单的对比,可以对比它们的性能指标和参数之间的关系。

image.png

Models 里可以看到,4次执行的这些模型以及它的版本。

image.png

可以把这个模型标记一下,标记为它目前处于什么阶段,它是出于那个 Staging阶段还是处于生产的阶段。

image.png

Mlflow的模型部署也非常的简单,比如这次实验它的性能不错,那要如何去部署它,先把Model OSS path copy下来。

image.png

只需要在 ECS server上去执行这样一条指令。

模型已经部署在12345端口

 image.png

可以使用personnel 调用模型得到推断的结果。

image.png

使用 Post 方法。在 Body 面传入相应的参数。调用接口就可以得到反馈结果。


image.png

从开始一次实验去训练模型到模型的部署,整个流程都可以通过  Mlflow 去搞定,而且 Mlflow UI上会显示所有的实验以及所有训练好的模型。


相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
3天前
|
机器学习/深度学习 数据采集 人工智能
构建高效机器学习模型的五大技巧
【4月更文挑战第7天】 在数据科学迅猛发展的今天,机器学习已成为解决复杂问题的重要工具。然而,构建一个既精确又高效的机器学习模型并非易事。本文将分享五种提升机器学习模型性能的有效技巧,包括数据预处理、特征工程、模型选择、超参数调优以及交叉验证。这些方法不仅能帮助初学者快速提高模型准确度,也为经验丰富的数据科学家提供了进一步提升模型性能的思路。
|
3天前
|
人工智能
一键生成视频!用 PAI-EAS 部署 AI 视频生成模型 SVD 工作流(清晰的实例)
用 PAI-EAS 部署 AI 视频生成模型 SVD 工作流(清晰的实例)
170 2
|
3天前
|
机器学习/深度学习 数据采集 监控
大模型开发:描述一个典型的机器学习项目流程。
机器学习项目涉及问题定义、数据收集、预处理、特征工程、模型选择、训练、评估、优化、部署和监控。每个阶段都是确保模型有效可靠的关键,需要细致操作。
27 0
|
3天前
|
机器学习/深度学习
大模型开发:解释正则化及其在机器学习中的作用。
正则化是防止机器学习过拟合的技术,通过限制模型参数和控制复杂度避免过拟合。它包含L1和L2正则化,前者产生稀疏解,后者适度缩小参数。选择合适的正则化方法和强度对模型性能关键,常用交叉验证评估。
|
3天前
|
机器学习/深度学习 数据采集 算法
构建高效机器学习模型的最佳实践
【4月更文挑战第3天】在数据驱动的时代,构建高效的机器学习模型已成为解决复杂问题的关键。本文将探讨一系列实用的技术策略,旨在提高模型的性能和泛化能力。我们将从数据预处理、特征工程、模型选择、超参数调优到集成学习等方面进行详细讨论,并通过实例分析展示如何在实践中应用这些策略。
20 1
|
3天前
|
机器学习/深度学习 人工智能 监控
2、【KV260开发】yolov4模型训练、量化、编译、部署
2、【KV260开发】yolov4模型训练、量化、编译、部署
5 0
|
3天前
|
机器学习/深度学习 存储 人工智能
人工智能平台PAI产品使用合集之是否可以在模型部署发布后以http接口形式提供给业务开发人员使用
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
3天前
|
机器学习/深度学习 人工智能 运维
人工智能平台PAI产品使用合集之机器学习PAI可以通过再建一个done分区或者使用instance.status来进行部署吗
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
3天前
|
机器学习/深度学习 人工智能 NoSQL
人工智能平台PAI产品使用合集之机器学习PAI EasyRec训练时,怎么去除没有意义的辅助任务的模型,用于部署
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
3天前
|
机器学习/深度学习 人工智能 算法
人工智能平台PAI产品使用合集之PAI机器学习预置处理器在部署完成后怎么进行调用
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。

相关产品

  • 人工智能平台 PAI