为了解决端侧模型开发和部署的问题,PAI提供了通用端视觉解决方案。该解决方案提供端侧模型训练和部署套件,经过模型训练、模型剪枝和模型量化,最终导出可供部署到端侧产品的模型,并将模型部署到端侧,服务于下游推荐或其他应用场景。本文为您介绍通用端视觉的解决方案。
前提条件
在开始执行操作之前,请确认您已经完成以下准备工作:
-
已开通PAI(Designer、DSW、EAS)后付费,详情请参见开通。
-
已开通并创建工作空间,且添加了DLC计算资源,详情请参见开通PAI并创建默认工作空间。
-
已创建OSS存储空间(Bucket),用于存储原始数据、标签列表文件及训练获得的模型文件。关于如何创建存储空间,详情请参见控制台创建存储空间。
使用流程
基于阿里云机器学习PAI平台,端视觉解决方案的流程如下。
-
步骤一:准备数据
将训练集、测试集、数据类别列表等数据上传到OSS存储空间,用于后续的模型训练。若数据未标注可基于iTAG进行原始数据标注,详情请参见智能标注(ITAG)。
-
步骤二:构建端侧视觉检测模型、压缩模型和导出模型
在可视化建模平台Designer上,根据上传的图像数据,构建ev-torch框架下的YOLOX_EDGE检测模型。通过Designer平台提供的模型剪枝和模型量化组件,对ev-torch框架模型进行模型压缩,并导出pt模型。
-
步骤三:部署模型服务
您可以将输出的pt模型部署到端侧,用于下游推荐或其他应用场景。
步骤一:准备数据
首先您需要根据选择的模型准备对应类型的数据。以检测模型yolovx为例,您可以准备COCO类型的数据,并将数据上传到OSS。需要上传的数据包括:训练数据、训练数据标签、验证数据、验证数据标签、数据类别列表。
您也可以基于iTAG进行原始数据标注,并将获得的训练集和测试集数据上传到OSS,用于后续的模型训练,详情请参见智能标注(ITAG)。
步骤二:构建端侧视觉检测模型、压缩模型和导出模型
-
进入PAI-Designer页面,并创建空白工作流,具体操作请参见操作步骤。
-
在工作流列表,选择已创建的空白工作流,单击进入工作流。
-
在工作流页面,分别拖入以下组件,并配置组件参数。
您可以按照以下任意一种方式,通过连线将节点组织构建为模型工作流。
-
使用图像检测训练组件获得的模型文件,分别进行模型剪枝和模型量化。
-
使用图像检测训练组件获得的模型文件,先经过模型剪枝,再进行模型量化。
区域
描述
①
配置图像检测训练的参数。图像检测训练组件的配置详情请参见配置组件参数。
②
配置模型剪枝组件参数。模型剪枝组件的配置详情请参见配置组件参数。
③
配置模型量化组件参数。模型量化组件的配置详情请参见配置组件参数。
④
配置实验的训练数据集,即配置读OSS数据-1组件的OSS数据路径为存放训练数据文件的OSS路径。
⑤
配置实验的测试数据集,即配置读OSS数据-2组件的OSS数据路径为存放测试数据文件的OSS路径。
⑥
配置实验的数据类别列表文件,即配置读OSS数据-3组件的OSS数据路径为存放数据类别列表文件的OSS路径。
⑦
配置实验的训练数据集,即配置读OSS数据-4组件的OSS数据路径为存放训练数据文件的OSS路径。
⑧
配置实验的测试数据集,即配置读OSS数据-5组件的OSS数据路径为存放测试数据文件的OSS路径。
⑨
配置实验的数据类别列表文件,即配置读OSS数据-6组件的OSS数据路径为存放数据类别列表文件的OSS路径。
⑩
配置实验的训练数据集,即配置读OSS数据-7组件的OSS数据路径为存放训练数据文件的OSS路径。
⑪
配置实验的测试数据集,即配置读OSS数据-8组件的OSS数据路径为存放测试数据文件的OSS路径。
⑫
配置实验的数据类别列表文件,即配置读OSS数据-9组件的OSS数据路径为存放数据类别列表文件的OSS路径。
表 1. 配置组件参数 页签
参数
描述
本案例使用的示例值
字段设置
训练模型类型
训练模型的类型。
图像检测训练支持以下模型类型:
-
SSD
-
FasterRCNN
-
RFCN
-
YOLOV5
-
YOLOX
-
YOLOX_EDGE
模型剪枝和模型量化支持以下模型类型:
-
YOLOX
-
YOLOX_EDGE
YOLOX_EDGE
训练所用oss目录
训练过程中模型和Log保存的OSS路径。
oss://examplebucket-cn-shanghai-internal.aliyuncs.com/test/test_model_compression_3-8/
说明
需要修改为您使用的OSS路径,且图像检测训练、模型剪枝和模型量化三个组件配置的路径不同。
训练数据oss路径
存放训练数据文件的OSS路径,如果您使用读OSS数据组件作为上游节点,则该参数无需设置。
无需填写
训练集标注结果文件路径
存放训练集标注结果文件的OSS路径。
oss://examplebucket-cn-shanghai.aliyuncs.com/data/model_compression/annotations/instances_train2017_sub.json
说明
需要修改为您使用的OSS路径。
评估数据oss路径
存放测试数据文件的OSS路径,如果您使用读OSS数据组件作为上游节点,则该参数无需设置。
无需填写
测试集标注结果文件路径
存放测试集标注结果文件的OSS路径。
oss://examplebucket-cn-shanghai.aliyuncs.com/data/model_compression/annotations/instances_train2017_sub.json
说明
需要修改为您使用的OSS路径。
类别列表文件oss路径
存放数据类别列表文件的OSS路径,如果您使用读OSS数据组件作为上游节点,则该参数无需设置。
oss://examplebucket-cn-shanghai.aliyuncs.com/data/model_compression/label.list
说明
需要修改为您使用的OSS路径。
YOLOX数据源格式
数据的处理格式,取值如下:
-
COCO格式
-
PAI标注格式
COCO格式
预训练模型oss路径
存放预训练模型的OSS路径,导入预训练模型的权重文件。非必填。
无需填写
参数设置
YOLOX端检测模型类型
仅字段设置中训练模型类型选择YOLOX_EDGE时,需要配置该参数。
YOLOX端检测的模型类别,预置不同的模型结构。
yolox-customized
剪枝算法类型
仅模型剪枝组件需要配置该参数。
剪枝算法类型,默认为AGP。
AGP
剪枝算法
仅模型剪枝组件需要配置该参数。
剪枝算法,默认为taylorfo。
taylorfo
yolox端模型depth
仅字段设置中训练模型类型选择YOLOX_EDGE时,需要配置该参数。
yolox端模型depth,浮点型。范围为[0.01,1.0]。
1.0
yolox端模型width
仅字段设置中训练模型类型选择YOLOX_EDGE时,需要配置该参数。
yolox端模型width,浮点型。范围为[0.01,1.0]。
1.0
yolox端模型parameters size
仅图像检测训练组件训练模型类型选择YOLOX_EDGE时,才需要配置该参数。
yolox端模型parameters size,限制最大模型参数,浮点型。-1表示不做限制。
-1
yolox端模型Gflops
仅图像检测训练组件训练模型类型选择YOLOX_EDGE时,才需要配置该参数。
yolox端模型Gflops,限制最大模型Gflops,浮点型。-1表示不做限制。
-1
YOLOX端检测模型激活函数类型
仅字段设置中训练模型类型选择YOLOX_EDGE时,需要配置该参数。
YOLOX端检测模型激活函数类型,取值如下:
-
relu
-
lrelu
-
silu
-
hsilu
relu
测试置信度:[0.01,1.0]
仅字段设置中训练模型类型选择YOLOX_EDGE时,需要配置该参数。
测试置信度,浮点型。范围为[0.01,1.0]。
0.01
nms阈值:[0.01,1.0]
仅字段设置中训练模型类型选择YOLOX_EDGE时,需要配置该参数。
nms阈值,浮点型。范围为[0.01,1.0]。
0.65
检测类别数目
检测类别数目。
1
图像尺度
用于yolox,图片缩放后的尺度,分别表示高和宽。
256 256
初始学习率
模型训练的初始学习率,浮点型。
0.01
训练batch_size
训练batch_size。
8
评估batch_size
评估batch_size。
8
总的训练迭代epoch轮数
总的训练迭代epoch轮数。
20
warmup epochs
采用warmup学习策略时的迭代轮数。
5
最后稳定lr的epochs
采用warmup学习策略lr稳定后继续训练的迭代轮数。
5
保存checkpoint的频率
保存模型的迭代轮数。
5
执行调优
读取训练数据线程数
读取训练数据的线程数。
4
evtorch model 开启半精度
仅图像检测训练组件需要配置该参数。
evtorch model是否开启半精度。
不选中
单机或分布式(MaxCompute/DLC)
组件运行的引擎。系统会根据您设置的训练模型类型,自动匹配。
分布式DLC
worker个数
采用分布式训练时的机器数量。
1
cpu机型选择
仅图像检测训练组件的训练模型类型选择YOLOV5、YOLOX、YOLOX_EDGE时,需要配置该参数。
选择运行的CPU规格。
32vCPU+128GB Mem-ecs.g6.8xlarge
gpu机型选择
选择运行的GPU规格。
28vCPU+112GB Mem+1xp100-ecs.gn5-c28g1.7xlarge
-
-
单击画布上方的运行。
实验运行成功后,您可以在训练所用OSS目录配置的OSS路径,下载压缩后的pt模型文件。
后续您可以使用下载的模型文件部署模型服务。
步骤三:部署模型服务
实验运行成功后,您可以在训练所用OSS目录配置的OSS路径下载prune_model.pt和quantize_model.pt的TorchScript模型文件,并将模型文件部署到CPU机器上,服务于下游推荐或其他应用场景。
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:https://www.yunxiaoer.com/164404.html