MLOps на периферии с помощью Amazon SageMaker Edge Manager и AWS IoT Greengrass PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

MLOps на периферии с помощью Amazon SageMaker Edge Manager и AWS IoT Greengrass

Интернет вещей (IoT) позволил клиентам в различных отраслях, таких как производство, автомобилестроение и энергетика, отслеживать и контролировать реальную среду. Развертывая различные периферийные устройства IoT, такие как камеры, термостаты и датчики, вы можете собирать данные, отправлять их в облако и создавать модели машинного обучения (ML) для прогнозирования аномалий, сбоев и многого другого. Однако, если вариант использования требует прогнозирования в реальном времени, вам необходимо обогатить свое решение IoT возможностями ML на границе (ML@Edge). МЛ@Эдж — это концепция, которая отделяет жизненный цикл модели ML от жизненного цикла приложения и позволяет запускать сквозной конвейер ML, который включает в себя подготовку данных, построение модели, компиляцию и оптимизацию модели, развертывание модели (на множестве периферийных устройств), выполнение модели, а также мониторинг и управление моделью. Вы развертываете приложение один раз и запускаете конвейер машинного обучения столько раз, сколько вам нужно.

Как вы понимаете, реализовать все шаги, предлагаемые концепцией ML@Edge, не так уж и просто. Есть много вопросов, на которые разработчикам необходимо ответить, чтобы реализовать полное решение ML@Edge, например:

  • Как использовать модели машинного обучения на множестве (сотнях, тысячах или миллионах) пограничных устройств?
  • Как защитить свою модель во время ее развертывания и запуска на периферии?
  • Как отслеживать производительность моей модели и при необходимости переобучать ее?

В этом посте вы узнаете, как ответить на все эти вопросы и создать комплексное решение для автоматизации конвейера ML@Edge. Вы увидите, как использовать Диспетчер Amazon SageMaker Edge, Студия Amazon SageMakerкачества AWS IoT Гринграсс v2 для создания среды MLOps (ML Operations), которая автоматизирует процесс создания и развертывания моделей ML для больших парков периферийных устройств.

В следующих разделах мы представляем эталонную архитектуру, в которой подробно описаны все компоненты и рабочие процессы, необходимые для создания комплексного решения для MLOps, ориентированного на пограничные рабочие нагрузки. Затем мы углубимся в шаги, которые это решение запускает автоматически для создания и подготовки новой модели. Мы также покажем вам, как подготовить пограничные устройства к началу развертывания, запуска и мониторинга моделей машинного обучения, а также продемонстрируем, как отслеживать и поддерживать модели машинного обучения, развернутые на вашем парке устройств.

Обзор решения

Производство надежных моделей машинного обучения требует сотрудничества нескольких лиц, таких как специалисты по данным, инженеры машинного обучения, инженеры данных и заинтересованные стороны бизнеса, в полуавтоматической инфраструктуре, выполняющей определенные операции (MLOPs). Кроме того, модульность среды важна для того, чтобы дать всем этим различным персонажам гибкость и подвижность для разработки или улучшения (независимо от рабочего процесса) компонента, за который они несут ответственность. Пример такой инфраструктуры состоит из нескольких учетных записей AWS, которые обеспечивают совместную работу и производство моделей машинного обучения как в облаке, так и на периферийных устройствах. В следующей эталонной архитектуре мы показываем, как мы организовали несколько учетных записей и служб, которые составляют эту сквозную платформу MLOps для создания моделей машинного обучения и их развертывания на периферии.

Это решение состоит из следующих учетных записей:

  • Аккаунт озера данных – Инженеры данных получают, хранят и подготавливают данные из нескольких источников данных, включая локальные базы данных и устройства IoT.
  • Инструментальная учетная запись – ИТ-операторы управляют конвейерами CI/CD и проверяют их на автоматическую непрерывную доставку и развертывание пакетов модели машинного обучения в предварительных и рабочих учетных записях для удаленных пограничных устройств. Запуски конвейеров CI/CD автоматизированы за счет использования Amazon EventBridge, который отслеживает события изменения состояния моделей и целей машинного обучения. Кодовый конвейер AWS.
  • Аккаунт для экспериментов и разработки – Специалисты по данным могут проводить исследования и экспериментировать с несколькими методами и алгоритмами моделирования для решения бизнес-задач на основе машинного обучения, создавая проверенные концептуальные решения. Инженеры по машинному обучению и специалисты по данным совместно работают над масштабированием проверки концепции, создавая автоматизированные рабочие процессы с использованием Конвейеры Amazon SageMaker для подготовки данных и создания, обучения и упаковки моделей машинного обучения. Развертывание конвейеров осуществляется через конвейеры CI/CD, а контроль версий моделей достигается с помощью Реестр моделей Amazon SageMaker. Специалисты по данным оценивают показатели нескольких версий модели и запрашивают продвижение лучшей модели в производство, запуская конвейер CI/CD.
  • Предварительный аккаунт – Перед внедрением модели в производственную среду модель необходимо протестировать, чтобы обеспечить надежность в среде моделирования. Таким образом, предпроизводственная среда представляет собой симулятор производственной среды, в которой конечные точки модели SageMaker развертываются и тестируются автоматически. Методы тестирования могут включать интеграционный тест, стресс-тест или специфичные для машинного обучения тесты результатов логического вывода. В этом случае производственная среда является не конечной точкой модели SageMaker, а пограничным устройством. Для имитации периферийного устройства на стадии подготовки к производству возможны два подхода: Эластичное вычислительное облако Amazon (Amazon EC2) с такими же аппаратными характеристиками или используйте лабораторный испытательный стенд, состоящий из реальных устройств. С помощью этой инфраструктуры конвейер CI/CD развертывает модель в соответствующем симуляторе и автоматически проводит несколько тестов. После успешного выполнения тестов конвейер CI/CD требует ручного утверждения (например, от заинтересованного лица IoT для продвижения модели в рабочую среду).
  • Производственный счет – В случае размещения модели в облаке AWS конвейер CI/CD развертывает конечную точку модели SageMaker в рабочей учетной записи. В этом случае производственная среда состоит из нескольких групп пограничных устройств. Поэтому конвейер CI/CD использует Edge Manager для развертывания моделей на соответствующем парке устройств.
  • Пограничные устройства – Удаленные пограничные устройства — это аппаратные устройства, которые могут запускать модели машинного обучения с помощью Edge Manager. Это позволяет приложению на этих устройствах управлять моделями, делать выводы по моделям и безопасно записывать данные в Простой сервис хранения Amazon (Amazon S3).

Проекты SageMaker помочь вам автоматизировать процесс предоставления ресурсов внутри каждой из этих учетных записей. Мы не будем углубляться в эту функцию, но чтобы узнать больше о том, как создать шаблон проекта SageMaker, который развертывает модели машинного обучения для разных учетных записей, см. Развертывание модели с несколькими учетными записями с помощью Amazon SageMaker Pipelines.

Предпродакшн-аккаунт: цифровой двойник

После процесса обучения полученную модель необходимо оценить. В предварительной учетной записи у вас есть смоделированное устройство Edge. Он представляет собой цифровой близнец пограничного устройства, на котором работает модель машинного обучения. Эта среда имеет двойное назначение: выполнять классические тесты (такие как модульные, интеграционные и дымовые) и быть игровой площадкой для команды разработчиков. Это устройство моделируется с использованием экземпляра EC2, в котором развернуты все компоненты, необходимые для управления моделью машинного обучения.

Задействованные службы следующие:

  • Ядро Интернета вещей AWS - Мы используем Ядро Интернета вещей AWS создавать объекты вещей AWS IoT, создавать парк устройств, регистрировать парк устройств, чтобы они могли взаимодействовать с облаком, создавать сертификаты X.509 для аутентификации пограничных устройств в AWS IoT Core, связывать псевдоним роли с AWS IoT Core, который был создан, когда созданный парком, получите конечную точку для конкретной учетной записи AWS для поставщика учетных данных, получите официальный файл Amazon Root CA и загрузите файл Amazon CA в Amazon S3.
  • Amazon Sagemaker Neo – Sagemaker Neo автоматически оптимизирует модели машинного обучения, чтобы логические выводы выполнялись быстрее без потери точности. Он поддерживает модель машинного обучения, уже созданную с помощью DarkNet, Keras, MXNet, PyTorch, TensorFlow, TensorFlow-Lite, ONNX или XGBoost и обученную в Amazon SageMaker или где-либо еще. Затем вы выбираете целевую аппаратную платформу, которой может быть экземпляр хостинга SageMaker или пограничное устройство на базе процессоров Ambarella, Apple, ARM, Intel, MediaTek, Nvidia, NXP, Qualcomm, RockChip, Texas Instruments или Xilinx.
  • Пограничный менеджер – Мы используем Edge Manager для регистрации и управления пограничными устройствами в парках Sagemaker. Группы — это наборы логически сгруппированных устройств, которые можно использовать для сбора и анализа данных. Кроме того, упаковщик Edge Manager упаковывает оптимизированную модель и создает компонент AWS IoT Greengrass V2, который можно развернуть напрямую. Вы можете использовать Edge Manager для управления моделями машинного обучения на множестве интеллектуальных камер, интеллектуальных динамиков, роботов и других парках устройств SageMaker.
  • AWS IoT Гринграсс V2AWS IoT Greengrass позволяет развертывать компоненты на моделируемых устройствах с помощью экземпляра EC2. Используя агент AWS IoT Greengrass V2 в инстансах EC2, мы можем упростить доступ, управление и развертывание агента и модели Edge Manager на устройствах. Без AWS IoT Greengrass V2 для настройки устройств и групп для использования Edge Manager требуется вручную скопировать агент из корзины выпуска S3. Благодаря интеграции AWS IoT Greengrass V2 и Edge Manager можно использовать компоненты AWS IoT Greengrass V2. Компоненты — это готовые программные модули, которые могут подключать пограничные устройства к сервисам AWS или сторонним сервисам через AWS IoT Greengrass.
  • Агент Edge Manager – Агент Edge Manager развертывается через AWS IoT Greengrass V2 в экземпляре EC2. Агент может загружать несколько моделей одновременно и делать выводы с загруженными моделями на пограничных устройствах. Количество моделей, которые может загрузить агент, определяется доступной памятью на устройстве.
  • Amazon S3 – Мы используем корзину S3 для хранения данных, полученных от агента Edge Manager.

Мы можем определить предварительную учетную запись как цифрового двойника для тестирования моделей машинного обучения перед их переносом на реальные периферийные устройства. Это дает следующие преимущества:

  • Ловкость и гибкость – Специалистам по данным и инженерам по машинному обучению необходимо быстро проверить, будут ли модель машинного обучения и связанные сценарии (скрипты предварительной обработки и логического вывода) работать на границе устройства. Однако отделы IoT и обработки данных на крупных предприятиях могут быть разными организациями. Идентично реплицируя технологический стек в облаке, специалисты по данным и инженеры по машинному обучению могут повторять и консолидировать артефакты перед развертыванием.
  • Ускоренная оценка рисков и сроки производства – Развертывание на пограничном устройстве — завершающий этап процесса. После того, как вы проверите все в изолированной и автономной среде, защитите ее, чтобы она соответствовала спецификациям, требуемым периферией, с точки зрения качества, производительности и интеграции. Это помогает избежать дальнейшего участия других людей в отделе IoT для исправления и итерации версий артефактов.
  • Улучшение взаимодействия в команде, повышение качества и производительности – Команда разработчиков может немедленно оценить влияние модели машинного обучения, проанализировав показатели периферийного оборудования и измерив уровень взаимодействия со сторонними инструментами (например, скорость ввода-вывода). Затем команда IoT отвечает только за развертывание в производственной среде и может быть уверена, что артефакты точны для производственной среды.
  • Интегрированная площадка для тестирования – Учитывая цель моделей машинного обучения, предпроизводственная среда в традиционном рабочем процессе должна быть представлена ​​граничным устройством за пределами облачной среды. Это вводит другой уровень сложности. Интеграции необходимы для сбора метрик и обратной связи. Вместо этого, используя смоделированную среду цифрового двойника, взаимодействия сокращаются, а время выхода на рынок сокращается.

Рабочий аккаунт и пограничная среда

После завершения тестов и достижения стабильности артефакта можно переходить к производственному развертыванию через конвейеры. Развертывание артефакта происходит программно после утверждения артефакта оператором. Однако доступ к Консоль управления AWS предоставляется операторам в режиме только для чтения, чтобы иметь возможность отслеживать метаданные, связанные с автопарками, и, следовательно, иметь представление о версии развернутой модели машинного обучения и других показателях, связанных с жизненным циклом.

Парки пограничных устройств относятся к производственной учетной записи AWS. Эта учетная запись имеет определенные настройки безопасности и сети, чтобы обеспечить связь между облаком и пограничными устройствами. Основные сервисы AWS, развернутые в производственной учетной записи, — это Edge Manager, который отвечает за управление всеми парками устройств, сбор данных и эксплуатацию моделей машинного обучения, а также AWS IoT Core, который управляет объектами вещей IoT, сертификатами, псевдонимами ролей и конечными точками.

В то же время нам необходимо настроить пограничное устройство со службами и компонентами для управления моделями машинного обучения. Основные компоненты следующие:

  • AWS IoT Гринграсс V2
  • Агент Edge Manager
  • Сертификаты Интернета вещей AWS
  • Application.py, который отвечает за организацию процесса логического вывода (извлечение информации из пограничного источника данных и выполнение логического вывода с помощью агента Edge Manager и загруженной модели машинного обучения).
  • Подключение к Amazon S3 или учетной записи озера данных для хранения полученных данных.

Автоматизированный конвейер машинного обучения

Теперь, когда вы знаете больше об организации и компонентах эталонной архитектуры, мы можем глубже погрузиться в конвейер машинного обучения, который мы используем для создания, обучения и оценки модели машинного обучения в учетной записи разработки.

Трубопровод (построенный с использованием Конвейеры построения моделей Amazon SageMaker) представляет собой серию взаимосвязанных шагов, определяемых определением конвейера JSON. Это определение конвейера кодирует конвейер с помощью направленного ациклического графа (DAG). Эта DAG предоставляет информацию о требованиях и взаимосвязях между каждым этапом конвейера. Структура DAG конвейера определяется зависимостями данных между шагами. Эти зависимости данных создаются, когда свойства выходных данных шага передаются в качестве входных данных для другого шага.

Чтобы команды специалистов по данным могли легко автоматизировать создание новых версий моделей машинного обучения, важно внедрить этапы проверки и автоматические данные для непрерывной подачи и улучшения моделей машинного обучения, а также стратегии мониторинга моделей для обеспечения запуска конвейера. На следующей диаграмме показан пример конвейера.

MLOps на периферии с помощью Amazon SageMaker Edge Manager и AWS IoT Greengrass PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Для реализации возможностей автоматизации и MLOps важно создавать модульные компоненты для создания многократно используемых артефактов кода, которые можно использовать на разных этапах и в сценариях использования ML. Это позволяет быстро перевести реализацию из этапа экспериментов в этап производства за счет автоматизации перехода.

Шаги для определения конвейера ML для обеспечения непрерывного обучения и управления версиями моделей ML следующие:

  • предварительная обработка – Процесс очистки данных, проектирования функций и создания набора данных для обучения алгоритму машинного обучения.
  • Обучение – Процесс обучения разработанного алгоритма ML для генерации новой версии артефакта модели ML
  • Оценка – Процесс оценки сгенерированной модели ML для извлечения ключевых показателей, связанных с поведением модели, на новых данных, которые не были видны на этапе обучения.
  • Регистрация – Процесс управления версиями нового артефакта обученной модели машинного обучения путем связывания извлеченных метрик со сгенерированным артефактом.

Вы можете увидеть более подробную информацию о том, как построить конвейер SageMaker в следующем ноутбук.

Запуск конвейеров CI/CD с помощью EventBridge

Когда вы закончите построение модели, вы можете начать процесс развертывания. На последнем этапе конвейера SageMaker, определенном в предыдущем разделе, регистрируется новая версия модели в определенной группе реестра модели SageMaker. Развертывание новой версии модели машинного обучения управляется с помощью статуса реестра модели. При ручном утверждении или отклонении версии модели машинного обучения на этом шаге возникает событие, которое фиксируется EventBridge. Затем это событие может запустить новый конвейер (на этот раз CI/CD) для создания новой версии компонента AWS IoT Greengrass, который затем развертывается в предварительных и рабочих учетных записях. На следующем снимке экрана показано наше определенное правило EventBridge.

MLOps на периферии с помощью Amazon SageMaker Edge Manager и AWS IoT Greengrass PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Это правило отслеживает группу пакетов моделей SageMaker, ища обновления пакетов моделей в статусе Approved or Rejected.

Затем правило EventBridge настраивается для целевого CodePipeline, который запускает рабочий процесс создания нового компонента AWS IoT Greengrass с помощью Amazon SageMaker Neo и пограничный менеджер.

Оптимизация моделей машинного обучения для целевой архитектуры

Neo позволяет оптимизировать модели машинного обучения для выполнения логических выводов на периферийных устройствах (и в облаке). Он автоматически оптимизирует модели машинного обучения для повышения производительности в зависимости от целевой архитектуры и отделяет модель от исходной платформы, позволяя запускать ее в облегченной среде выполнения.

См. Следующие ноутбук для примера того, как скомпилировать модель PyTorch Resnet18 с помощью Neo.

Создайте пакет развертывания, включив в него компонент AWS IoT Greengrass.

Edge Manager позволяет управлять, защищать, развертывать и отслеживать модели на множестве пограничных устройств. В следующих ноутбук, вы можете увидеть более подробную информацию о том, как создать минималистичный парк периферийных устройств и провести некоторые эксперименты с этой функцией.

После настройки группы и компиляции модели необходимо запустить задание упаковки Edge Manager, которое подготовит модель к развертыванию в группе. Вы можете запустить задание упаковки с помощью Boto3 SDK. Для наших параметров мы используем оптимизированную модель и метаданные модели. Добавив следующие параметры в OutputConfig, задание также подготавливает компонент AWS IoT Greengrass V2 с моделью:

  • PresetDeploymentType
  • PresetDeploymentConfig

Смотрите следующий код:

import boto3
import time

SageMaker_client = boto3.client('SageMaker')

SageMaker_client.create_edge_packaging_job(
    EdgePackagingJobName="mlops-edge-packaging-{}".format(int(time.time()*1000)),
    CompilationJobName=compilation_job_name,
    ModelName="PytorchMLOpsEdgeModel",
    ModelVersion="1.0.0",
    RoleArn=role,
    OutputConfig={
        'S3OutputLocation': 's3://{}/model/'.format(bucket_name),
        "PresetDeploymentType": "GreengrassV2Component",
        "PresetDeploymentConfig": json.dumps(
            {"ComponentName": component_name, "ComponentVersion": component_version}
        ),
    }
)

Развертывание моделей машинного обучения на периферии в любом масштабе

Теперь пришло время развернуть модель на вашем парке пограничных устройств. Во-первых, мы должны убедиться, что у нас есть необходимые Управление идентификацией и доступом AWS (Я) Разрешения для предоставления наших устройств IoT и возможности развертывания на них компонентов. Нам нужны два основных элемента, чтобы начать адаптацию устройств к нашей платформе IoT:

  • Политика IAM – Эта политика разрешает автоматическую инициализацию таких устройств, прикрепленных к пользователю или роли, выполняющей инициализацию. У него должны быть разрешения на запись IoT для создания вещи и группы IoT, а также для прикрепления необходимых политик к устройству. Для получения дополнительной информации см. Минимальная политика IAM для установщика для предоставления ресурсов.
  • Роль IAM — эта роль привязана к вещам и группам IoT, которые мы создаем. Вы можете создать эту роль во время подготовки с базовыми разрешениями, но в ней будут отсутствовать такие функции, как доступ к Amazon S3 или Служба управления ключами AWS (AWS KMS), которые могут понадобиться позже. Вы можете создать эту роль заранее и повторно использовать ее, когда мы подготовим устройство. Для получения дополнительной информации см. Авторизация основных устройств для взаимодействия с AWS.

Установка и подготовка AWS IoT Greengrass

После того, как у нас есть политика и роль IAM, мы готовы установить программное обеспечение AWS IoT Greengrass Core с автоматическим выделением ресурсов. Хотя можно выделить ресурсы IoT, выполнив действия вручную, существует удобная процедура автоматического предоставления этих ресурсов во время установки ядра AWS IoT Greengrass v2. Это предпочтительный вариант для быстрой интеграции новых устройств с платформой. Кроме default-jdk, необходимо установить другие пакеты, такие как curl, unzipкачества python3.

Когда мы подготавливаем наше устройство, имя вещи IoT должно точно совпадать с пограничным устройством, определенным в Edge Manager, иначе данные не будут записываться в целевую корзину S3.

Установщик может создать роль и псевдоним AWS IoT Greengrass во время установки, если они не существуют. Однако они будут созданы с минимальными разрешениями и потребуют ручного добавления дополнительных политик для взаимодействия с другими сервисами, такими как Amazon S3. Мы рекомендуем создавать эти ресурсы IAM заранее, как показано ранее, а затем повторно использовать их при подключении новых устройств к учетной записи.

Упаковка компонентов модели и логического вывода

После того, как наш код был разработан, мы можем развернуть как код (для вывода), так и наши модели машинного обучения в качестве компонентов на наших устройствах.

После обучения модели машинного обучения в SageMaker вы можете оптимизировать модель с помощью Neo, используя задание компиляции Sagemaker. Полученные в результате скомпилированные артефакты модели можно затем упаковать в компонент GreenGrass V2 с помощью упаковщика Edge Manager. Затем его можно зарегистрировать как пользовательский компонент в Мои компоненты раздел в консоли AWS IoT Greengrass. Этот компонент уже содержит необходимые команды жизненного цикла для загрузки и распаковки артефакта модели на нашем устройстве, чтобы код логического вывода мог загрузить его для отправки захваченных через него изображений.

Что касается кода вывода, мы должны создать компонент с помощью консоли или Интерфейс командной строки AWS (интерфейс командной строки AWS). Во-первых, мы упаковываем исходный код вывода и необходимые зависимости в Amazon S3. После того, как мы загрузим код, мы можем создать наш компонент, используя рецепт в .yaml или JSON, как в следующем примере:

---
RecipeFormatVersion: 2020-01-25
ComponentName: dummymodel.inference
ComponentVersion: 0.0.1
ComponentDescription: Deploys inference code to a client
ComponentPublisher: Amazon Web Services, Inc.
ComponentDependencies:
  aws.GreenGrass.TokenExchangeService:
    VersionRequirement: '>=0.0.0'
    DependencyType: HARD
  dummymodel:
    VersionRequirement: '>=0.0.0'
    DependencyType: HARD
Manifests:
  - Platform:
      os: linux
      architecture: "*"
    Lifecycle:
      install: |-
        apt-get install python3-pip
        pip3 install numpy
        pip3 install sysv_ipc
        pip3 install boto3
        pip3 install grpcio-tools
        pip3 install grpcio
        pip3 install protobuf
        pip3 install SageMaker
        tar xf {artifacts:path}/sourcedir.tar.gz
      run:
        script: |-
          sleep 5 && sudo python3 {work:path}/inference.py 
    Artifacts:
      - URI: s3://BUCKET-NAME/path/to/inference/sourcedir.tar.gz
        Permission:
          Execute: OWNER

В этом примере рецепта показано имя и описание нашего компонента, а также необходимые предварительные условия перед нашей командой запуска сценария. Рецепт распаковывает артефакт в среду рабочей папки на устройстве, и мы используем этот путь для запуска нашего кода логического вывода. Команда AWS CLI для создания такого рецепта:

aws greengrassv2 create-component-version --region $REGION 
                                          --inline-recipe fileb://path/to/recipe.yaml

Теперь вы можете увидеть этот компонент, созданный в консоли AWS IoT Greengrass.

Остерегайтесь того, что версия компонента имеет значение, и она должна быть указана в файле рецепта. Повторение одного и того же номера версии вернет ошибку.

После того, как наша модель и код логического вывода настроены как компоненты, мы готовы их развернуть.

Разверните приложение и модель с помощью AWS IoT Greengrass.

В предыдущих разделах вы узнали, как упаковать код логического вывода и модели машинного обучения. Теперь мы можем создать развертывание с несколькими компонентами, которые включают в себя как компоненты, так и конфигурации, необходимые для взаимодействия нашего кода логического вывода с моделью на пограничном устройстве.

Агент Edge Manager — это компонент, который необходимо установить на каждое пограничное устройство, чтобы активировать все возможности Edge Manager. На консоли SageMaker у нас определен парк устройств, с которым связана корзина S3. Все пограничные устройства, связанные с парком, будут собирать и передавать свои данные по этому пути S3. Агент можно развернуть как компонент в AWS IoT Greengrass v2, что упрощает его установку и настройку по сравнению с развертыванием агента в автономном режиме. При развертывании агента в качестве компонента нам необходимо указать параметры его конфигурации, а именно парк устройств и путь S3.

Мы создаем конфигурацию развертывания с пользовательскими компонентами для только что созданной модели и кода. Эта настройка определяется в файле JSON, в котором перечислены имя и цель развертывания, а также компоненты развертывания. Мы можем добавлять и обновлять параметры конфигурации каждого компонента, например, в агенте Edge Manager, где мы указываем имя парка и корзину.

{
    "targetArn": "targetArn",
    "deploymentName": "dummy-deployment",
    "components": {
        "aws.GreenGrass.Nucleus": {
            "version": "2.5.3",
        },
        "aws.GreenGrass.Cli": {
            "version": "2.5.3"
        },
        "aws.GreenGrass.SageMakerEdgeManager": {
            "version": 1.1.0,
            "configurationUpdate": {
                "merge": {
                "DeviceFleetName": "FLEET-NAME",
                "BucketName": "BUCKET-NAME-URI"
                }
            }
        },
        "dummymodel.inference": {
            "version": "0.0.1"
        },
        "dummymodel": {
            "version": "0.0.1"
        }
    }
}

Стоит отметить, что мы добавили в качестве компонентов не только модель, компоненты логического вывода и агент, но также интерфейс командной строки AWS IoT Greengrass и ядро. Первый может помочь отлаживать определенные развертывания локально на устройстве. Последний добавляется в развертывание для настройки необходимого доступа к сети с самого устройства при необходимости (например, настройки прокси), а также в случае, если вы хотите выполнить OTA-обновление ядра AWS IoT Greengrass v2. Ядро не развернуто, так как оно установлено на устройстве, и будет применяться только обновление конфигурации (если обновление не установлено). Для развертывания нам просто нужно запустить следующую команду поверх предыдущей конфигурации. Не забудьте настроить целевой ARN, к которому будет применяться развертывание (вещь IoT или группа IoT). Мы также можем развернуть эти компоненты из консоли.

aws greengrassv2 create-deployment --region $REGION 
                                   --cli-input-json file://path/to/deployment.json

Мониторинг и управление моделями машинного обучения, развернутыми на периферии

Теперь, когда ваше приложение работает на периферийных устройствах, пришло время понять, как контролировать парк устройств, чтобы улучшить управление, обслуживание и прозрачность. В консоли SageMaker выберите Пограничный менеджер в области навигации, затем выберите Парки периферийных устройств. Отсюда выберите свой флот.

MLOps на периферии с помощью Amazon SageMaker Edge Manager и AWS IoT Greengrass PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

На странице сведений о парке вы можете увидеть некоторые метаданные моделей, работающих на каждом устройстве вашего парка. Отчет о флоте генерируется каждые 24 часа.

MLOps на периферии с помощью Amazon SageMaker Edge Manager и AWS IoT Greengrass PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Данные, захваченные каждым устройством через пограничный агент, отправляются в корзину S3 в формате строк json (JSONL). Процесс отправки захваченных данных управляется с точки зрения приложения. Поэтому вы можете сами решать, отправлять ли эти данные, как и как часто.

MLOps на периферии с помощью Amazon SageMaker Edge Manager и AWS IoT Greengrass PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Вы можете использовать эти данные для многих целей, таких как мониторинг дрейфа данных и качества модели, создание нового набора данных, обогащение озера данных и многое другое. Простым примером того, как использовать эти данные, является случай, когда вы обнаруживаете некоторое отклонение данных в том, как пользователи взаимодействуют с вашим приложением, и вам нужно обучить новую модель. Затем вы создаете новый набор данных с захваченными данными и копируете его обратно в учетную запись разработки. Это может автоматически запустить новый запуск вашей среды, который создаст новую модель и повторно развернет ее для всего парка, чтобы сохранить производительность развернутого решения.

Заключение

В этом посте вы узнали, как создать комплексное решение, сочетающее MLOps и ML@Edge с использованием сервисов AWS. Создание такого решения — нетривиальная задача, но мы надеемся, что эталонная архитектура, представленная в этом посте, вдохновит вас и поможет создать надежную архитектуру для ваших собственных бизнес-задач. Вы также можете использовать только те части или модули этой архитектуры, которые интегрируются с существующей средой MLOps. Создавая прототипы по одному модулю за раз и используя соответствующие сервисы AWS для решения каждой части этой задачи, вы можете научиться создавать надежную среду MLOps, а также еще больше упростить окончательную архитектуру.

В качестве следующего шага мы рекомендуем вам попробовать Sagemaker Edge Manager для управления вашим ML в жизненном цикле Edge. Дополнительные сведения о том, как работает Edge Manager, см. Развертывание моделей на периферии с помощью SageMaker Edge Manager .


Об авторах

MLOps на периферии с помощью Amazon SageMaker Edge Manager и AWS IoT Greengrass PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Бруно Пистоне является специалистом по архитектуре решений AI/ML для AWS в Милане. Он работает с клиентами любого размера, помогая им глубже понять свои технические потребности и разрабатывать решения для искусственного интеллекта и машинного обучения, которые наилучшим образом используют облако AWS и стек машинного обучения Amazon. Он специализируется на комплексном машинном обучении, индустриализации машинного обучения и MLOps. Ему нравится проводить время со своими друзьями и исследовать новые места, а также путешествовать по новым направлениям.

MLOps на периферии с помощью Amazon SageMaker Edge Manager и AWS IoT Greengrass PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Маттео Калабрезе является архитектором доставки клиентов AI/ML в команде AWS Professional Services. Он работает с крупными предприятиями EMEA над проектами AI/ML, помогая им предлагать, проектировать, доставлять, масштабировать и оптимизировать рабочие нагрузки машинного обучения. Его основной опыт — операции машинного обучения (MLOPs) и машинное обучение в Edge. Его цель — сократить время, необходимое для оценки и ускорения бизнес-результатов, предоставляя лучшие практики AWS. В свободное время любит ходить в походы и путешествовать.

MLOps на периферии с помощью Amazon SageMaker Edge Manager и AWS IoT Greengrass PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Рауль Диас Гарсия является старшим специалистом по данным в команде AWS Professional Services. Он работает с крупными корпоративными клиентами в регионе EMEA, где помогает им внедрять решения, связанные с компьютерным зрением и машинным обучением, в пространстве IoT.

MLOps на периферии с помощью Amazon SageMaker Edge Manager и AWS IoT Greengrass PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Сократис Картакис является старшим специалистом по машинному обучению, архитектором решений для Amazon Web Services. Sokratis уделяет особое внимание тому, чтобы позволить корпоративным клиентам индустриализировать свои решения машинного обучения (ML), используя сервисы AWS и формируя свою операционную модель, т. е. основу MLOps, и дорожную карту преобразования с использованием лучших практик разработки. Он более 15 лет занимался изобретением, проектированием, ведением и внедрением инновационных комплексных решений машинного обучения и Интернета вещей (IoT) на производственном уровне в таких областях, как энергетика, розничная торговля, здравоохранение, финансы/банковское дело, автоспорт и т. д. Сократис любит проводить свободное время с семьей и друзьями или кататься на мотоциклах.

MLOps на периферии с помощью Amazon SageMaker Edge Manager и AWS IoT Greengrass PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Самир Араужо является архитектором решений AI / ML в AWS. Он помогает клиентам создавать решения AI / ML, которые решают их бизнес-задачи с помощью AWS. Он работал над несколькими проектами AI / ML, связанными с компьютерным зрением, обработкой естественного языка, прогнозированием, машинным обучением на периферии и многим другим. В свободное время ему нравится играть с аппаратными средствами и проектами автоматизации, и он особенно интересуется робототехникой.

Отметка времени:

Больше от Машинное обучение AWS