Розгортання 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 і хочете знизити операційні витрати? Замовте консультацію — ми підберемо оптимальну архітектуру.