模型部署与应用 | 学习笔记

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
简介: 快速学习模型部署与应用

开发者学堂课程【机器学习实战:模型部署与应用】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/530/detail/7135


模型部署与应用

内容介绍:

一、 在线部署

二、 离线部署

三、A/B 测试及灰度发布

四、 模型生命周期

 

一、在线部署

1、什么叫在线部署

最终训练完成的模型如何去部署应用,部署通常有在线部署和离线部署两种方式,在线部署通常会由 API 进行在线预测,因为在实际应用中,有时候需要对一些实时的模型进行调用来进行处理,这个时候需要进行一个在线部署。

第一个要求首先就是时间要短,数据过来之后,要马上进行一个预测,然后对预测的数据实时应用到业务流中,此类数据的特点是一直产生,但是数据量不会太大。此类数据一般通过 API 的方式来提供服务,首先生成一个标准 API,然后通过生成的 API,将待处理的数据以请求的方式发送出来。API 得到数据之后会返回一个结果,之后将返回的结果嵌入到业务流中就完成。

优势是可以简单的使用这个服务,不用关注源码和内部的服务。

针对实时数据需要调用模型的情况,可进行在线部署。通常要求响应时间要短,此类数据会持续产生,且每次要求处理的数据量不大。

在线部署通常是以 API 的方式提供服务,通过调用 API 发送待处理请求,并获得调用结果。API 的优势是用户可以简单的使用服务,而不必去了解源码或者其内部构造。

image.png

2、例子

这是使用计算机Π计算机部署得以一个例子。

训练模型完成后,要进行模型部署,在页面栏的下面有个部署按钮,可以选择在线或者离线。选择在线项目部署,之后要选择要部署的项目空间。

设置当前模型的 instance 数量,当前用户是每个提供 30 个 instance 数量。

接下来就可以进行在线部署,部署完成之后,可以查看到返回格式是 JSON/XML,最下面有个接口的样例。

image.png

同时有一个 API 的调试功能,接口名字:prediction。

可以将请求的 body 输入框中,进行测试,测试接口得到一个返回结果,测试成功之后就可以将接口释放出来提供业务使用。

image.png

 

二、离线处理:批量处理

对于数据量较大且对时效性要求不强的场景,可以采用离线部署的方式,对数据进行批量处理。批量处理通常是预先知道调用的条件,比如清楚调用的频率和时间点,定义成按时触发的任务,可以根据资源情况合理安排调度窗口。

image.png

这种批量出来一般都是定时的,从用户出发的,比如定时的,例如每天晚上两点钟会对一批数据进行预测等等,所以你需要倾出调用到频率和时间点,然后定义生成这种按时出发的任务。

例子;计算机Π的实验。

需要在部署按钮中点击实验离线调度,然后选择机器学习实验,就会出现一个节点,会嵌置到正常的任务的任务流里面去。

image.png

同时可以设置调度属性,比如依赖于哪个任务,在预测前还有可能有一些其他的任务,任务完成之后,会调度继续学习的任务。

还可以设置一些跨周期的依赖,设置其调度周期是按照天,可以设置具体的时间,因为·阿里云的终端服务提供的是完整的几个方案,继续学习也可以作为整个业务流中的一个节点,使用 dataworks 可以进行任务运维,测试等等,使用比较方便。

image.png

 

三、A/B 测试及灰度发布

接下来简单介绍一下 A/B 测试及灰度发布

A/B 测试( A/B Testing,又被称做拆分测试或水桶测试)通过两个不同版本方案进行比较,来确定一个性能更好的方案。A/B 测试提升了确定性。

灰度发布(又名金丝雀发布)是指平滑过渡的一种发布方式,针对不同版本进行A/B 测试,即让部分用户继续用 A 版本,一部分用户开始用 B 版本,如果 B 版本运行结果符合预期,则逐步扩大范围,把所有用户都迁移到 B 上来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。

image.png

假如现在所有的用户都在使用 A 方案,此时研发一个 B 方案。可以从原有的 A 方案中切除一部分用户来使用 B 方案,此时 A、B 方案并行。

image.png

此时可以比较 A、B 方案,观察哪个方案运行效果更好,假如 B 方案运行效果更好,就可以将所有用户都迁移到 B 上来。

image.png

 

四、 模型生命周期

模型上线后,需要监控模型的运行效果,进行生命周期管理︰

当预测因素发生变化或者数据、业务发生明显变化时,需要定期重复进行模型管理测性能往往会随着时间而下降。

当性能下降到某一阈值时,应进行模型更新或者更换

当模型上线之后,需要不断监控模型的运行效果,其中有几种情况,需要不断对模型进行优化。第一个是业务模式发生变化时,需要定期重复进行模型管理;第二个是性能可能会随着时间下降,当性能下降到一个阈值的时候,就要进行模型更新。

image.png

上图中主要看从右往左的箭头,从第六步模型应用返回到第一步需求分析,这实际上就是模型生命周期管理的重要一步,也就是迭代更新,要保证这个模型对当前业务,或者当前业务产生的数据,能够持续有效的带来期望的结果。

相关文章
|
4月前
|
人工智能 算法 开发工具
Mixtral 8X7B MoE模型在阿里云PAI平台的微调部署实践
Mixtral 8x7B 是Mixtral AI最新发布的大语言模型,是当前最为先进的开源大语言模型之一。阿里云人工智能平台PAI,提供了对于 Mixtral 8x7B 模型的全面支持,开发者和企业用户可以基于 PAI-快速开始轻松完成Mixtral 8x7B 模型的微调和部署。
|
7月前
|
PyTorch 测试技术 API
Pytorch模型训练与在线部署
本文以CIFAR10数据集为例,通过自定义神经元网络,完成模型的训练,并通过Flask完成模型的在线部署与调用,考略到实际生产模型高并发调用的述求,使用service_streamer提升模型在线并发能力。
554 1
|
1天前
|
机器学习/深度学习 数据可视化
模型性能评价实战
模型性能评价实战
|
机器学习/深度学习 存储 数据可视化
【PyTorch基础教程23】可视化网络和训练过程
为了更好确定复杂网络模型中,每一层的输入结构,输出结构以及参数等信息,在Keras中可以调用一个叫做model.summary()的API能够显示我们的模型参数,输入大小,输出大小,模型的整体参数等。
1355 0
【PyTorch基础教程23】可视化网络和训练过程
|
8月前
|
人工智能 物联网 Linux
使用aidlux进行模型迁移、部署、推理
使用aidlux进行模型迁移、部署、推理
|
10月前
|
Kubernetes Docker Perl
【k8s 系列】k8s 学习八,在 K8S 中部署一个应用 下
接着上一篇继续部署应用到 K8S中 之前简单部署的简单集群,三个工作节点是运行在 docker 和 kubelet 的,还有一个是控制节点
|
10月前
|
Kubernetes 负载均衡 程序员
【k8s 系列】k8s 学习七,在 K8S 中部署一个应用 上
本身在 K8S 中部署一个应用是需要写 yaml 文件的,我们这次简单部署,通过拉取网络上的镜像来部署应用,会用图解的方式来分享一下,过程中都发生了什么
173 0
|
10月前
|
机器学习/深度学习
基于分布式平台的机器学习模型训练以及上线部署方案总结
基于分布式平台的机器学习模型训练以及上线部署方案总结
447 0
|
11月前
|
机器学习/深度学习 数据采集 人工智能
LLM系列 | 02: Vicuna简介及模型部署实测
今天这篇小作文主要介绍Vicuna模型、基于官方模型13B模型部署服务及对话实测。
|
12月前
|
机器学习/深度学习 存储 机器人
Gradio机器学习模型快速部署工具【接口状态】翻译5
Gradio机器学习模型快速部署工具【接口状态】翻译5
330 0