Розгортання ML-моделей на Edge з AWS IoT Greengrass

Ручне оновлення ML-моделей на кожному пристрої — це помилки та простої виробництва. Ми розгортаємо моделі на Edge за допомогою AWS IoT Greengrass, автоматизуючи доставку та оновлення через централізовані деплої. Наша команда реалізує проєкт під ключ — від налаштування до подальшої підтримки, забезпечуючи надійну роботу навіть за нестабільної мережі.
Часті запитання

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

Напрямки AI-розробки

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1543
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1374
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    816
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1142