SageMaker实操分享

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SageMaker实操分享相关的知识,希望对你有一定的参考价值。

SageMaker功能模块简介

技术图片

1Ground Truth

Ground Truth是一个给数据打标签的平台。可以选择纯人工打标签,如果工作量特别大,也可以选择人工和智能机器协作打标签。

技术图片

例如在Ground Truth平台上操作,框选出猫眼睛,会自动生成一个json文件如图中右上角,json描述了眼睛在图中的左上角、右下角坐标。

生成的json文件(即标签信息)可以作为对象检测训练的输入数据。

标记任务

创建一个打标签任务,主要包含待打标签图片所在路径、生成的标签信息文件json所在路径。

技术图片

输入任务名称、输出路径后,点击“创建清单文件==>输入图片路径==>创建==>use this manifest

技术图片

IAM角色下拉框==>create a new role
技术图片

这里以对象识别模型为例,任务类型选“边界框”

下一步把标签任务分配给相关工作人员:

技术图片

公有:aws庞大的人工团队,需要付费。

私有:贵公司自己的员工。

供应商:第三方专业打标签的供应商,需要付费。

选择“私有”需要先创建一个团队(后面讲)

红框“启用”代表人和机器共同劳作,系统自动将图片分发给人和机器,机器一开始并不知道怎么打标签,所以打出来的标签往往是错误的,

这时系统会自动将机器打完标签的图片又回传给人工复核,机器通过学习复核结果提升技能。

这个过程是来来回回、反反复复的直到机器掌握足够的水平。接下来机器开始自动打标签,对于一些机器不能确定的图片仍然会交由人工处理。

待识别的图片必须大于1250张才可启用机器标签,建议5000张图片以上,才选择启用。

技术图片

可以给图片添加多个标签,比如需要识别图片中的猫眼睛,猫耳朵等。

这里假如只希望识别眼睛,所以只添加一个eyes标签。
技术图片

提交后,看到任务状态为“正在进行”。这时贵公司工作人员可通过邮件提供的地址登录Ground Truth平台开始打标签工作。

任务结束后,生成一份output.manifest文件,即标签信息总文件。后续训练模型时作为输入文件(train通道)。

技术图片

类似的,选择另外一批图片,建立另外一个Ground Truth任务生成另外一个类似的manifest文件,并做为object detection模型训练时的另外一个输入文件(validation通道)

(训练模型通常需要training data和validation data)

标签任务还生成一些其他中间文件,详情参考

https://docs.aws.amazon.com/sagemaker/latest/dg/sms-data-output.html

标记随需人力

技术图片

1,邀请新工作人员 输入员工通过邮件,员工会收到邮件告知登录Ground Truth平台的URL、用户名、密码。

2,创建私人团队 创建团队后刷新一下页面,再向团队添加之前创建的工作人员。

2 笔记本
技术图片

创建一台EC2笔记本,jupyter已经搭建安装好各种语言及机器学习框架供科学家直接使用。

熟练的科学家可以在这个平台以编写代码调用sagemaker API的形式完成机器学习的整个流程,从一开始的构建自己的算法,验证算法,训练模型,调优,等等直到最后部署模型。

一个参考例子:

https://github.com/awslabs/amazon-sagemaker-examples/blob/master/ground_truth_labeling_jobs/ground_truth_object_detection_tutorial/object_detection_tutorial.ipynb

非专业人员,建议使用sagemaker图形界面来完成这些操作。

3 训练

算法

科学家在这创建自己的算法,后续通过“训练任务”生成算法模型。

训练任务

技术图片

训练任务将算法训练出一个实用的模型。

算法源:sagemaker内置了众多著名、经典成熟的算法,包括对象检测(object detection),当然也可以选择科学家自己设计的算法。

技术图片

输入模型:Pipe

资源配置:训练时建议选择P系列EC2,生产部署建议C系列。

运行时间:根据实际情况设置训练任务时长。

技术图片

超参:非专业人员建议使用默认值,科学家可自定义。

超参详情

https://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/object-detection-api-config.html

之前Ground Truth生成的manifest文件内容如下:

技术图片

source-ref栏位是图片路径

lzd-eye是自定义的标签名
技术图片

输入数据配置:

1,默认只有一个“train”通道接收training data。

按上图填好manifest路径及source-ref、lzd-eye(根据实际标签名填写)等信息

技术图片

2,添加validation通道接收validation data,除通道名称为validation外,其他信息与train通道类似。

技术图片

输出数据配置:即输出模型路径

最后创建训练任务并生成模型。

超级参数优化作业

与“训练任务”类似,科学家也可以在这里从零开始训练模型或在现有的模型基础上优化训练,这里可以更加自由地设定超参范围,让sagemaker通过并发训练任务等方式在指定范围内找到最佳超参。

4 推理

模型训练好之后,部署在AWS上,部署分为实时和批量。

实时:模型实时在线,用户随时可以调sagemaker API对图片进行实时的对象检测,并实时返回结果。

批量:模型按需启动,对用户提供的批量图片进行对象检测,并返回批量结果。
技术图片

training job==>create model

技术图片

输入model名称,其他保持默认。

技术图片

点击model名称

技术图片

这里才批量推断为例:create batch inference job

技术图片

按实际情况选择实例类型及数量。

技术图片

按实际情况填写待检测图片所在路径及检测结果输出路径。

batch job结束后在输出路径下为每个图片生成一个json文件,描述图片中检测到多少个物体,每个物体所在坐标及类别。

详情请参考:

https://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/object-detection-in-formats.html

以上是关于SageMaker实操分享的主要内容,如果未能解决你的问题,请参考以下文章

Amazon SageMaker测评分享,效果超出预期

大拿分享: Dedecms移动站静态化实操分享

Vue项目迁移小程序,实操干货分享

MySQL 到 ClickHouse 实时数据同步实操分享

MySQL 到 ClickHouse 实时数据同步实操分享

#私藏项目实操分享#