AWS Machine Learning Blog· Kiowa Jackson·· 4 小时前AI 评分40
用 SageMaker SDK v3 实现边缘端车队级计算机视觉模型全生命周期管理
Fleet-wide computer vision lifecycle at the edge with SageMaker SDK v3
AI 导读
针对产线多相机场景下每台相机需独立微调模型的问题,AWS 给出基于 SageMaker SDK v3 的双分支 SageMaker Pipeline 方案,为每台相机训练异常检测器与 ResNet18 缺陷分类器,经质量门禁后用 SageMaker Neo 编译并注册。方案以 Step Functions 与 DynamoDB 信号量控制车队训练节奏,合成数据跑完整流程约耗 0.07 美元算力。
深度导读
该方案面向视觉质检概念验证成功后的规模化难题:同一产线数十条线、每条线多台相机,因角度、反光和环境光差异,单一汇总模型效果不足,实际部署中每台相机往往需要各自的微调模型,真正的挑战变成在无人值守下训练、评估、版本化和分发数千个模型。文章是对 2023 年边缘视觉质检 MLOps 流水线系列的更新,适配当前 Amazon SageMaker Python SDK v3,并以 SageMaker Neo 取代已弃用的 SageMaker Edge Manager 做边缘优化。
训练侧是一条按相机参数化的 SageMaker Pipeline,每次执行运行 13 个步骤。三个入口步骤并行执行 Preprocess、Fetch Latest Anomaly 和 Fetch Latest Classifier,先预处理该相机图像并取回两个分支各自最近一次获批模型,再分别训练:一个学习正常产品外观、以重建误差标记异常的小型卷积自编码器,和一个微调的 ResNet18 分类器用于确认缺陷。两个分支都将模型导出为 ONNX,并针对导出产物而非内存中的 PyTorch 模型做评估,确保被门禁检查的就是最终交付的产物。
质量门禁按缺陷数据的类别不平衡特性设计。样本中约 90% 图像为良品,普通准确率因此失去意义;分类器分支同时要求 balanced accuracy 不低于 0.6 且缺陷召回率不低于 0.5,异常分支要求 AUROC 不低于 0.8,阈值作为流水线参数可按次调整。门禁通过后模型经 SageMaker Neo 针对目标边缘设备编译,才注册进 SageMaker Model Registry;失败则由 FailStep 标记执行失败,该相机继续使用上一个获批模型。
编排侧负责控制车队节奏:重训请求进入 Amazon SQS FIFO 队列,Lambda 为每个请求启动一次 Step Functions 执行,执行先通过 DynamoDB 信号量获取槽位再启动流水线,默认最多同时放行五次执行,从而把并发训练任务控制在账户标准配额内。完成事件发布到 Amazon SNS,运行故障经 EventBridge 规则进入同一主题并保留原始错误。Model Registry 保存可移植的 ONNX,S3 保存 Neo 编译后的设备优化共享库,由 DLR 运行时加载。
部署使用 AWS CDK,需 Python 3.10 至 3.12、Docker 及 CDK CLI 2.1131.0 或更高版本。SDK v3 在合成阶段即用真实 IAM 校验流水线执行角色,因此示例采用两阶段部署:先以 -c bootstrap=true 创建角色、桶和 ECR 仓库,再合成流水线;此外 v3 角色校验器模拟 ECR 拉取权限时不带资源 ARN,故执行角色需授予较宽的 ECR 权限。合成数据上跑完整流水线约花费 0.07 美元算力,完整示例已在 aws-samples GitHub 仓库开放。
来源:AWS Machine Learning Blog · aws.amazon.com