数据准备
-
数据上传 :将图像数据上传至 OSS(对象存储服务)存储空间,OSS 提供了高可靠性和高可用性的存储服务,方便存储和读取大量的图像数据。
-
数据标注 :可以通过 PAI 提供的智能标注模块进行图片标注,为每张图像添加对应的标签信息,以便模型能够学习到图像与标签之间的映射关系。标注结果文件通常为xxx.manifest格式,用于记录图像文件的存储路径和对应的标签信息等。
模型选择
-
使用 Model Gallery :PAI 的 Model Gallery 提供了丰富多样的预训练模型,可根据实际业务需求选择合适的模型。例如,在图像分类任务中,可选择基于 ResNet、AlexNet 等的分类模型;在图像检测任务中,可选择 Faster R-CNN、SSD 等模型。预训练模型经过大规模数据集的训练,在特征提取和表示方面具有较好的性能,能够为具体的业务场景提供一个良好的起点。
-
考虑业务场景和模型参数量 :预训练数据集和实际使用场景越接近,直接部署和微调训练效果会越好。一般来说,参数量越大的模型效果可能会更好,但相应的模型服务运行时产生的费用和微调训练所需要的数据量也可能会更多。
训练配置
-
使用 PAI-EasyVision :PAI-EasyVision 提供了简化的配置方式,通过 -Dparam_config 参数即可配置常用参数,如训练数据路径、模型类型、学习率、批量大小等,无需了解复杂的配置文件规则和逻辑。例如,使用以下命令进行训练:
-
pai command
-
-Dbuckets=oss://${bucket_name}.${oss_host}/${path}/
-
-Darn=${arn}
-
-Dcluster="{"worker":1,"server":0,"ps":0}"
-
-Dcmd=train
-
-Dentry_file=my_model.py
-
-Dentry_class=my_model.MyModel
-
-Dparam_config="{"data_dir":"oss://${bucket_name}.${oss_host}/${path}/data/","model_type":"resnet","learning_rate":0.01,"batch_size":32}"
-
-
使用图像检测训练算法组件 :对于 FCOS、YOLOX、YOLOv5、YOLOv7 等图像检测算法,可在 PAI 的 Designer 中使用图像检测训练(easycv)算法组件。通过读 OSS 数据组件读取标注结果文件 xxx.manifest,然后将训练数据和评估数据接入图像检测训练(easycv)算法组件,并根据实际情况配置具体参数,如模型选择、训练 epoch 数、学习率衰减策略等。
训练任务提交与管理
-
提交训练任务 :在完成上述配置后,提交训练任务。PAI 会根据配置的参数和资源需求,自动分配计算资源进行模型训练。
-
查看训练状态和日志 :在 PAI 控制台的任务详情页面,可查看训练任务的基本信息、实时状态、任务日志和模型评估效果等。通过实时监控训练进度和性能指标,如损失值、准确率等,可以及时了解训练情况,便于进行调整和优化。
模型优化
-
超参优化 :可以使用 PAI 提供的超参数搜索工具,如 PAI-AutoLearning,自动搜索最优的超参数组合,以提高模型的性能。PAI-AutoLearning 支持在线标注、自动模型训练、超参优化以及模型评估等功能,只需准备少量标注数据并设置训练时长,即可得到深度优化的模型。
-
分布式训练 :对于大规模的图像识别任务,可利用 PAI 的分布式训练能力,如 PAI-Deep Learning Containers(DLC)或 PAI-Training Runtime 等,加速模型的训练过程。通过在多个计算节点上并行训练,能够在较短时间内处理大量的数据,提高训练效率。
模型评估与部署
-
模型评估 :在训练完成后,使用 PAI 提供的模型评估工具对训练好的模型进行评估,生成评估报告,了解模型在测试集上的性能表现,如准确率、召回率、F1 值等指标,以便确定模型是否满足业务需求。
-
模型部署 :如果模型效果满足要求,可将模型部署到在线服务(PAI-EAS)或离线服务中,进行实际的业务应用。PAI-EAS 提供了高性能、高可用的模型在线推理服务,能够快速响应用户的请求,支持大规模的图像识别应用。