Тысячи CV-моделей на edge: SageMaker SDK v3 вместо Edge Manager

Успешный POC на одной камере быстро упирается в масштаб: на заводе хотят тот же контроль на многих линиях и объективах, а модель на сводном датасете на отдельных ракурсах часто не тянет — под каждую камеру остаётся своя дообученная ветка. AWS обновили end-to-end MLOps для визуального контроля на edge под SageMaker Python SDK v3: deprecated Edge Manager заменили компиляцией через SageMaker Neo, инфраструктуру собирают через AWS CDK; прогон sample на синтетике в посте оценивают примерно в $0.07 compute.
Один пайплайн на камеру
Parameterized SageMaker Pipeline на камеру — 13 шагов. Параллельно идут препроцессинг кадров и подтягивание последней одобренной модели для ветки аномалий и для классификатора. Обучаются свёрточный автоэнкодер (аномалии по ошибке реконструкции) и fine-tuned ResNet18 для подтверждения дефекта. Каждая ветка экспортирует ONNX, гоняет оценку на hold-out, проходит quality gate, компилируется Neo под целевое edge-устройство и только потом регистрируется в SageMaker Model Registry — в метаданных camera ID, чтобы warm-start брал историю именно этой камеры.
Очередь на весь флот
- Запросы на переобучение — в SQS FIFO; Lambda стартует execution Step Functions на запрос.
- Семафор в DynamoDB по умолчанию держит не больше пяти одновременных pipeline execution.
- Успехи уходят в SNS; сбои дублируются через EventBridge с сохранением исходной ошибки.
На выходе — версионированные артефакты: ONNX в реестре, Neo-сборка в S3 для загрузки через DLR runtime на устройстве. Полный sample — в репозитории aws-samples на GitHub.
Гейты и нюансы SDK v3
Оценка идёт по экспортированному ONNX, а не по PyTorch в памяти — в прод уходит то, что реально прошло проверку. Ветка аномалий требует image AUROC не ниже 0,8. У классификатора примерно 90% «хороших» кадров, поэтому ConditionStep требует одновременно balanced accuracy ≥ 0,6 и defect recall ≥ 0,5; при провале FailStep блокирует регистрацию, на линии остаётся предыдущая одобренная модель для этой камеры.
Пакет sagemaker>=3.0.0,<4 тянет модульные sagemaker-train, sagemaker-serve, sagemaker-mlops; конфигурация обучения — через ModelTrainer и typed configs вместо размазанных аргументов Estimator v2. Если пайплайн живёт внутри CDK, SDK v3 на synthesis time валидирует execution role по live IAM — роль и пайплайн одним cdk deploy не поднять; в sample двухфазный проход с -c bootstrap=true.
Источник: Fleet-wide computer vision lifecycle at the edge with SageMaker SDK v3.