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

本文涉及的产品
交互式建模 PAI-DSW,每月250计算时 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,100CU*H 3个月
简介: 快速学习使用 Databricks 和 MLflow 进行机器学习模型训练和部署的应用实践

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

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


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

 

内容介绍:

一、    学习工作流中的一些痛点问题

二、    Mlflow 的核心功能

三、    Mlflow + DDI 环境介绍

 

这次课程中会介绍如何使用 Databricks Datainsight Mlflow 进行机器学习模型的训练和部署,首先会对机器学习工作中的痛点做一个简单的总结,然后介绍 Mlflow 的主要组件以及这些组件的功能,接着会介绍如何使用 DDIMlflow 来搭建机器学习平台,以管理机器学习的一个生命周期,最后会一个简单的案例来演示 DDI Mlflow ,实现从数据准备模型训练到模型部署和测试的整个的流程。


一、学习工作流中的一些痛点问题


首先,是很难对机器学习的时间进行追踪,本次课程的学习算法中有大量的配置参数,在做机器学习实验的时候,其实很难追踪到哪些参数,哪个版本的代码,以及哪个版本的数据会产生特定的结果,其次是进行机器实验的结果是很难复现的,因为没有标准的方式来打包环境,即使是相同的代码,相同参数以及相同的数据可能也很难复现实验结果。

因为实验结果还取决于采用的代码库,重要的是没有一个标准的方式来管理模型的生命周期,一个算法团队通常会创建大量的模型,这些模型其实是很需要一个中央平台来进行管理的,特别是模型的版本所属阶段以及注释这些元数据信息,和这个版本的模型是由什么代码、数据和参数产生的,以及这个模型的性能指标是怎样的,重要的就是没有一个统一的方式来部署这些模型。


Mlflow 的核心功能


Mlflow 就是为了解决机器学习工作流中的上述痛点问题而生的

Mlflow 可以通过简单的 API 实现实验参数追踪、环境打包、模型管理及模型部署的整个流程。


1.Mlflow Tracking

要介绍的第一个 Mlflow 的核心功能就是 Mlflow Tracking

Mlflow Tracking 去追踪机器学习的实验参数、模型的性能指标以及模型的各种文件,在做机器学习实验的时候,通常需要记录一些参数配置以及模型的性能指标,那么 Mlflow 可以帮助用户免去手动记录的操作,并且 Mlflow 不仅仅支持记录参数还能记录任意的文件,包括了模型、图片、源码等等。

image.png

从上图的代码可以看到,我们使用 Mlflowstart-run 可以开启一次实验,然后可以使用 log-param 去记录模型的参数配置,接着可以使用 log-metrics 记录下模型的性能指标,这里的性能指标指标,不但包括标量的性能指标,而且也可以去记录一些向量的性能指标,最后,可以使用 log-model 记录训练好的模型以及使用 log-artifact 去记录任何想要记录的文件,比如上图记录的就是源码。

 

2.Mlflow Project

Mlflow 会基于代码规约来打包训练代码,并且指定执行环境进行入口,以及参而且这种规范的打包方式,更加方便代码的共享以及平台的迁移。

image.png

比如在上图 Mlflow -training Project 里包含有有两个很重要的文件,一个是conda.yaml 文件,一个是 MLProject文件,在conda.yaml 这个文件中指定了project 的一个运行环境,包括了其所有的依赖的代码库以及这些代码库的一个版本。

 image.png

如上图所示,在 MLproject 里,指定了运行的环境,也就是conda的环境,然后,还指定了运行的入口,就是怎么把这个Project run起来。

mflow run\

-no-conda—experiment-namewine-quality\http://github.com/Mlflow/Mlflow-example.git\-P alpha=0.5

如以上代码所示,而在这个入口信息里,又有相应的一个运行参数,这里包含了 alpha 还有 l1-ratio 这两个参数,除此之外, Mlflow 还提供了命令行工具来方便的运行 Mlflow project

比如已经打包好了一个Project ,并且把这个 Project 已经上传到了 git 的仓库里,上传到了 Mlflow-example.git  这个仓库中,只需要执行 Mlflow run ,就可以去方便的去执行这个 Project - p 是去传入 alpha 的一个参数。


3.  Mlflow Models

它支持以统一的方式去打包,记录和部署多种算法框架的模型。

image.png

在训练完模型后,可以使用去Mlflowlog Models 把这一模型给记录下来,然后 Mlflow 自动的把这个模型给存储起来,可以存储到本地或者是存储到 OSS 上,我们在 Mlflow 的外部 UI 上就可以看到这个模型与代码版本参数和metric 之间的关系,并且还记录了这一模型的一个存储的路径。

如上图,最后,可以使用 Mlflow 提供的 API 去部署这个模型,使用 Mlflow models serve 把这个模型部署起来,之后就可以使用 REST API 去调用这个模型得到一个预测的结果。


4. Model Registry

如下图, Mlflow 不但会存储模型,而且还提供了一个 Web UI 去管理这些模型,在这个 Web UI 的界面上它展示了模型的一个版本、模型所处的阶段。

image.png

在模型的详情页,如上图,它还显示了模型的描述以及模型的标签。

模型的标签可以用来检索和标记一个模型,还有模型的schema ,模型的 schema 可以表示那个模型的一个输入和输出的一个格式,此外 Mlflow 他还建立了模型以及运行环境代码和参数之间的一个关系,也就是模型的血缘。

Mlflow 这四个个核心功能,很好的解决了机器学习工作流中的一些痛点问题。

首先是 Mlflow Tracking 很好地解决了,机器学习实验难以追踪的一个问题;Mlflow Project 解决了机器学习工作流中,没有标准的方式来打包环境,实验结果,难以复现的问题; Mlflow Models Model Registry解决的是没有标准的方式来管理模型的生命周期的问题。

 

三、 Mlflow + DDI环境介绍


使用 Mlflow DDI 搭建机器学习平台与管理机器学习的生命周期,在以下架构图中可以发现主要组件有DDI 集群、OSS ECS

image.png

DDI 集群中,用户会去做机器学习的训练,然后,用户需要启动一台 ECS来搭建 Mlflow Tracking Server 以提供一个 UI 界面,此外,还需要在 ECS 上安装 MySQL 去存储训练参数、性能和标签等元数据。

然后 OSS 是用作存储训练数据以及模型源码等等,部署的要点是首先需要去打通 DDI 集群到 ECS 的一个网络,要保证 DDI 集群和 ECS 之间能相互通信,其次,需要在 ECS 上安装 Mlflow-aliyunstore 的插件,以便于 ECS 将模型存储到 OSS 上,环境所需要的 DDI 集群, OSS Bucket 以及用作 MySQL ECS 环境都已经准备好了。

首先需要去打通 DDI 集群到 ECS 网络,然后在 DDI 的管控台数据源目录下,

选择添加,如下图所示。

image.png

然后选择 ECS 实例,并且填入名称,点击“下一步”即可打通数据源。

image.png

已经打通过了,就不重复去添加。

然后登录到作为 Mlflow Server ECS 上,首先下载 Anaconda

wget https://repo.anaconda.com/archive/Anaconda3-2021.05-Linux-x86_64.sh

image.png

下一步,去安装 Anaconda

bash ./Anaconda3-2021.05-Linux-x86_64.sh


相关实践学习
通义万相文本绘图与人像美化
本解决方案展示了如何利用自研的通义万相AIGC技术在Web服务中实现先进的图像生成。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5月前
|
机器学习/深度学习 人工智能 JSON
【解决方案】DistilQwen2.5-R1蒸馏小模型在PAI-ModelGallery的训练、评测、压缩及部署实践
阿里云的人工智能平台 PAI,作为一站式的机器学习和深度学习平台,对DistilQwen2.5-R1模型系列提供了全面的技术支持。无论是开发者还是企业客户,都可以通过 PAI-ModelGallery 轻松实现 Qwen2.5 系列模型的训练、评测、压缩和快速部署。本文详细介绍在 PAI 平台使用 DistilQwen2.5-R1 蒸馏模型的全链路最佳实践。
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
Cosmos on PAI系列一:PAI-Model Gallery云上一键部署NVIDIA Cosmos Reason-1
本篇文章介绍 Cosmos 最新世界基础模型 Cosmos Reason-1 如何在阿里云人工智能平台 PAI 上进行快速部署使用。
|
4月前
|
人工智能 JSON 算法
【解决方案】DistilQwen2.5-DS3-0324蒸馏小模型在PAI-ModelGallery的训练、评测、压缩及部署实践
DistilQwen 系列是阿里云人工智能平台 PAI 推出的蒸馏语言模型系列,包括 DistilQwen2、DistilQwen2.5、DistilQwen2.5-R1 等。本文详细介绍DistilQwen2.5-DS3-0324蒸馏小模型在PAI-ModelGallery的训练、评测、压缩及部署实践。
|
5月前
|
人工智能 运维 API
PAI-Model Gallery云上一键部署阶跃星辰新模型Step1X-Edit
4月27日,阶跃星辰正式发布并开源图像编辑大模型 Step1X-Edit,性能达到开源 SOTA。Step1X-Edit模型总参数量为19B,实现 MLLM 与 DiT 的深度融合,在编辑精度与图像保真度上实现大幅提升,具备语义精准解析、身份一致性保持、高精度区域级控制三项关键能力;支持文字替换、风格迁移等11 类高频图像编辑任务类型。在最新发布的图像编辑基准 GEdit-Bench 中,Step1X-Edit 在语义一致性、图像质量与综合得分三项指标上全面领先现有开源模型,比肩 GPT-4o 与 Gemin。PAI-ModelGallery 支持Step1X-Edit一键部署方案。
|
3月前
|
机器学习/深度学习 人工智能 自然语言处理
【新模型速递】PAI-Model Gallery云上一键部署MiniMax-M1模型
MiniMax公司6月17日推出4560亿参数大模型M1,采用混合专家架构和闪电注意力机制,支持百万级上下文处理,高效的计算特性使其特别适合需要处理长输入和广泛思考的复杂任务。阿里云PAI-ModelGallery现已接入该模型,提供一键部署、API调用等企业级解决方案,简化AI开发流程。
|
3月前
|
机器学习/深度学习 人工智能 JSON
DistilQwen-ThoughtX 蒸馏模型在 PAI-ModelGallery 的训练、评测、压缩及部署实践
通过 PAI-ModelGallery,可一站式零代码完成 DistilQwen-ThoughtX 系列模型的训练、评测、压缩和部署。
|
6月前
|
人工智能 自然语言处理 运维
【新模型速递】PAI一键云上零门槛部署DeepSeek-V3-0324、Qwen2.5-VL-32B
PAI-Model Gallery 集成国内外 AI 开源社区中优质的预训练模型,涵盖了 LLM、AIGC、CV、NLP 等各个领域,用户可以通过 PAI 以零代码方式实现从训练到部署再到推理的全过程,获得更快、更高效、更便捷的 AI 开发和应用体验。 现阿里云PAI-Model Gallery已同步接入DeepSeek-V3-0324、Qwen2.5-VL-32B-Instruct两大新模型,提供企业级部署方案。
|
5月前
|
人工智能 自然语言处理 运维
Qwen3 全尺寸模型支持通过阿里云PAI-ModelGallery 一键部署
Qwen3 是 Qwen 系列最新一代的大语言模型,提供了一系列密集(Dense)和混合专家(MOE)模型。目前,PAI 已经支持 Qwen3 全系列模型一键部署,用户可以通过 PAI-Model Gallery 快速开箱!
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
云上一键部署通义千问 QwQ-32B 模型,阿里云 PAI 最佳实践
3月6日阿里云发布并开源了全新推理模型通义千问 QwQ-32B,在一系列权威基准测试中,千问QwQ-32B模型表现异常出色,几乎完全超越了OpenAI-o1-mini,性能比肩Deepseek-R1,且部署成本大幅降低。并集成了与智能体 Agent 相关的能力,够在使用工具的同时进行批判性思考,并根据环境反馈调整推理过程。阿里云人工智能平台 PAI-Model Gallery 现已经支持一键部署 QwQ-32B,本实践带您部署体验专属 QwQ-32B模型服务。
|
7月前
|
机器学习/深度学习 数据采集 人工智能
MATLAB在机器学习模型训练与性能优化中的应用探讨
本文介绍了如何使用MATLAB进行机器学习模型的训练与优化。MATLAB作为强大的科学计算工具,提供了丰富的函数库和工具箱,简化了数据预处理、模型选择、训练及评估的过程。文章详细讲解了从数据准备到模型优化的各个步骤,并通过代码实例展示了SVM等模型的应用。此外,还探讨了超参数调优、特征选择、模型集成等优化方法,以及深度学习与传统机器学习的结合。最后,介绍了模型部署和并行计算技巧,帮助用户高效构建和优化机器学习模型。
MATLAB在机器学习模型训练与性能优化中的应用探讨

热门文章

最新文章

相关产品

  • 人工智能平台 PAI