Развёртывание ML-моделей на Edge с AWS IoT Greengrass

Развёртывание ML-моделей на Edge через AWS IoT Greengrass Типичная картина: на заводе 200 PLC и камер, но модель обучена в SageMaker. Вручную обновлять бинарники на каждом устройстве — ошибки и простои. Мы настраиваем AWS IoT Greengrass v2 — runtime для запуска ML-компонентов на Edge без SSH. Мод

Направления AI-разработки

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1440
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    997
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1264
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    712
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1002

Развёртывание ML-моделей на Edge через AWS IoT Greengrass

Типичная картина: на заводе 200 PLC и камер, но модель обучена в SageMaker. Вручную обновлять бинарники на каждом устройстве — ошибки и простои. Мы настраиваем AWS IoT Greengrass v2 — runtime для запуска ML-компонентов на Edge без SSH. Модели из SageMaker уезжают в деплой на thing group «factory-line-1», а централизованное управление флотом — с zero-touch provisioning. За 5 лет мы внедрили Greengrass на 30+ промышленных объектах и гарантируем стабильность в условиях перебоев сети.

Архитектура Greengrass v2

Nucleus — Greengrass core runtime на Java. Управляет lifecycle компонентов, IPC и локальным брокером MQTT (Moquette). Компоненты — атомарные единицы деплоя: AWS managed (готовые) и custom (ваш код). Deployment — JSON-документ с набором компонентов и версий. AWS консоль или CLI отправляет его на устройство, Nucleus применяет.

Cloud (AWS): SageMaker → Model artifact in S3 IoT Greengrass Deployment → targets: thing group "factory-line-1"

Edge device: Greengrass Nucleus ├── aws.greengrass.SageMakerEdgeManager ├── aws.greengrass.DlrInferenceService (DLR runtime) └── com.company.InferenceApp (custom component)

Почему Greengrass для Edge ML?

Централизованное управление — только одно: заменил Deployment, и все 500 устройств получили новую модель. Staged rollout с canary (сначала 5%, потом 100%) и автоматический rollback при ошибке. Device Shadow хранит текущую версию модели и статус, синхронизация cloud ↔ edge работает даже при временном разрыве сети.

ML Inference компоненты

SageMaker Edge Manager компилирует модели через SageMaker Neo для конкретного железа (ARM, x86, GPU). Оптимизированные бинарники + Edge Agent (gRPC daemon) на устройстве.

# edge agent gRPC client import agent_pb2, agent_pb2_grpc channel = grpc.insecure_channel('unix:///tmp/sagemaker_edge_agent_example.sock') stub = agent_pb2_grpc.AgentStub(channel) # загрузка модели stub.LoadModel(agent_pb2.LoadModelRequest( url=f's3://bucket/model.tar.gz', name='defect-detector')) # инференс response = stub.Predict(agent_pb2.PredictRequest( name='defect-detector', tensors=[tensor])) 

DLR (Deep Learning Runtime) — альтернатива Edge Manager. TVM-compiled модели, поддержка TFLite, XGBoost, LightGBM. Легче, без gRPC оверхеда. На CPU DLR часто быстрее в 2 раза.

import dlr model = dlr.DLRModel('/greengrass/v2/work/model', 'cpu') result = model.run({'input': numpy_array}) 

Сравнение SageMaker Edge Manager и DLR

Параметр SageMaker Edge Manager DLR
Компиляция Neo под конкретное железо TVM
Протокол gRPC Прямые вызовы C++/Python
Поддержка моделей TensorFlow, PyTorch, MXNet TFLite, XGBoost, LightGBM
latency (CPU) ~15 мс ~7 мс
Размер runtime ~50 MB ~15 MB

Как организовать обновление моделей без простоев?

Классический pain point Edge ML — как обновить модель на 500 устройствах. Greengrass решает это нативно.

Согласно документации AWS, Greengrass v2 поддерживает staged rollout с автоматическим откатом. Workflow:

  1. SageMaker обучает новую версию модели.
  2. Артефакт загружается в S3.
  3. Обновляется версия компонента в Greengrass.
  4. Создаётся новый Deployment на thing group.
  5. Nucleus на каждом устройстве скачивает дельту, применяет, rollback при ошибке.

Staged rollout: Deployment с canary — сначала 5% устройств (thing group subset), мониторинг CloudWatch метрик, затем 100%.

Local shadow для состояния: AWS IoT Device Shadow хранит текущую версию модели, статус инференса, custom metrics. Синхронизация cloud ↔ edge даже при временном разрыве сети.

Типичные ошибки при деплое - Несовместимость версий компонентов — проверяйте version requirement в recipe. - Отсутствие прав доступа к S3 — настройте IAM роль для Greengrass. - Слишком большой артефакт модели — используйте DLR или квантизацию.

Кастомный компонент для инференса

recipe.json:

{ "RecipeFormatVersion": "2020-01-25", "ComponentName": "com.company.QualityInspection", "ComponentVersion": "1.0.0", "ComponentDependencies": { "aws.greengrass.DlrInferenceService": {"VersionRequirement": ">=1.6.0"} }, "Manifests": [{ "Platform": {"os": "linux"}, "Lifecycle": { "Install": "pip3 install -r requirements.txt", "Run": "python3 {artifacts:path}/inference.py" }, "Artifacts": [ {"URI": "s3://my-bucket/inference.py"}, {"URI": "s3://my-bucket/model.tar.gz", "Unarchive": "ZIP"} ] }] } 

Stream Manager для больших данных

greengrass.StreamManager — локальный буфер для edge → cloud передачи. Когда сеть нестабильна — данные буферируются локально (до 256 MB), после восстановления — автоматически отправляются в Kinesis/S3/IoT Analytics. Параметры настраиваются: размер буфера, частота экспорта, политика при переполнении.

Fleet Management

Thing Groups + Attributes: factory-line-1, factory-line-2 — разные модели для разных линий. Attribute: firmware_version, camera_model — для conditional deployment.

Greengrass CLI для диагностики:

greengrass-cli component list # запущенные компоненты greengrass-cli logs get --component com.company.QualityInspection greengrass-cli deployment create ... # локальный деплой для отладки 

CloudWatch метрики: стандартные ComponentRunning, ComponentBroken. Кастомные через EMF (Embedded Metrics Format) — любые метрики из edge кода напрямую в CloudWatch.

План внедрения и сроки

Этап Длительность
Аудит и проектирование 1 неделя
Настройка Nucleus и компонентов 1–2 недели
Интеграция и staged rollout 1–2 недели
Мониторинг и документация 1 неделя

Что входит в работу

  • Аудит текущей инфраструктуры и модели (совместимость с Greengrass, требования к железу).
  • Проектирование архитектуры: выбор между SageMaker Edge Manager и DLR, состав компонентов, схема деплоя.
  • Настройка Greengrass Nucleus и компонентов (aws managed + custom).
  • Интеграция с существующими системами (SCADA, MES, Kafka).
  • Staged rollout и мониторинг (CloudWatch, алерты).
  • Документация по эксплуатации и обучение команды.
  • Гарантия стабильной работы в течение 30 дней после запуска.

Поддерживаемые платформы

Linux (arm64, armv7, x86_64). Минимум: 512 MB RAM, 1 GHz CPU. Протестировано: Raspberry Pi 4, NVIDIA Jetson, BeagleBone, промышленные x86 IPC. Windows (x86_64): Greengrass v2.9+, ограниченный набор компонентов.

Сроки и стоимость

Первый Greengrass деплой с готовой моделью — от 1 недели. Кастомные компоненты, fleet management, staged rollout, интеграция с существующей SCADA/MES — 4–6 недель. Стоимость рассчитывается индивидуально после аудита. Оценим ваш проект — свяжитесь с нами. Используете Greengrass и хотите снизить операционные расходы? Закажите консультацию — мы подберём оптимальную архитектуру.