Это третья часть нашей серии статей, в которой мы проектируем и реализуем конвейер MLOps для визуального контроля качества на периферии. В этом посте мы сосредоточимся на том, как автоматизировать часть периферийного развертывания сквозного конвейера MLOps. Мы покажем вам, как использовать AWS IoT Greengrass управлять выводом модели на границе и автоматизировать процесс с помощью Шаговые функции AWS и другие сервисы AWS.
Обзор решения
In Часть 1 В этой серии мы представили архитектуру нашего сквозного конвейера MLOps, который автоматизирует весь процесс машинного обучения (ML), от маркировки данных до обучения модели и развертывания на периферии. В Часть 2мы показали, как автоматизировать части конвейера, связанные с маркировкой и обучением моделей.
Примером варианта использования, используемого в этой серии, является решение для визуального контроля качества, которое может обнаруживать дефекты на металлических бирках, которые можно использовать в рамках производственного процесса. На следующей диаграмме показана высокоуровневая архитектура конвейера MLOps, которую мы определили в начале этой серии статей. Если вы еще не читали, рекомендуем посмотреть Часть 1.
Автоматизация периферийного развертывания модели машинного обучения
После обучения и оценки модели машинного обучения ее необходимо развернуть в производственной системе, чтобы создать ценность для бизнеса путем прогнозирования входящих данных. Этот процесс может быстро усложниться в периферийных условиях, когда модели необходимо развертывать и запускать на устройствах, которые часто расположены далеко от облачной среды, в которой модели обучались. Ниже приведены некоторые проблемы, уникальные для машинного обучения на периферии:
- Модели машинного обучения часто требуют оптимизации из-за ограничений ресурсов на периферийных устройствах.
- Edge-устройства нельзя перераспределить или даже заменить, как сервер в облаке, поэтому вам необходим надежный процесс развертывания модели и управления устройствами.
- Связь между устройствами и облаком должна быть эффективной и безопасной, поскольку она часто проходит через ненадежные сети с низкой пропускной способностью.
Давайте посмотрим, как мы можем решить эти проблемы с помощью сервисов AWS в дополнение к экспорту модели в формат ONNX, который позволяет нам, например, применять такие оптимизации, как квантование, чтобы уменьшить размер модели для ограничивающих устройств. ONNX также обеспечивает оптимизированную среду выполнения для наиболее распространенных периферийных аппаратных платформ.
Если разобрать процесс периферийного развертывания, нам потребуются два компонента:
- Механизм развертывания для доставки модели, который включает в себя саму модель и некоторую бизнес-логику для управления моделью и взаимодействия с ней.
- Механизм рабочего процесса, который может организовать весь процесс, чтобы сделать его надежным и повторяемым.
В этом примере мы используем различные сервисы AWS для создания механизма автоматического периферийного развертывания, который объединяет все необходимые компоненты, которые мы обсуждали.
Сначала мы моделируем периферийное устройство. Чтобы упростить вам сквозной рабочий процесс, мы используем Эластичное вычислительное облако Amazon (Amazon EC2) для имитации периферийного устройства путем установки на него программного обеспечения AWS IoT Greengrass Core. Вы также можете использовать экземпляры EC2 для проверки различных компонентов в процессе контроля качества перед развертыванием на реальном периферийном производственном устройстве. AWS IoT Greengrass — это среда выполнения и облачный сервис Интернета вещей (IoT) с открытым исходным кодом, который помогает создавать, развертывать и управлять программным обеспечением периферийных устройств. AWS IoT Greengrass упрощает создание, развертывание и управление программным обеспечением периферийных устройств безопасным и масштабируемым способом. После установки программного обеспечения AWS IoT Greengrass Core на свое устройство вы можете добавлять или удалять функции и компоненты, а также управлять приложениями своих устройств IoT с помощью AWS IoT Greengrass. Он предлагает множество встроенных компонентов, которые облегчат вашу жизнь, например компоненты брокера StreamManager и MQTT, которые вы можете использовать для безопасного взаимодействия с облаком, поддерживая сквозное шифрование. Вы можете использовать эти функции для эффективной загрузки результатов вывода и изображений.
В производственной среде обычно используется промышленная камера, передающая изображения, для которых модель машинного обучения должна давать прогнозы. В нашей настройке мы имитируем этот ввод изображения, загружая набор изображений в определенный каталог на периферийном устройстве. Затем мы используем эти изображения в качестве входных данных для модели.
Мы разделили весь процесс развертывания и вывода на три последовательных этапа, чтобы развернуть обученную в облаке модель машинного обучения в периферийной среде и использовать ее для прогнозирования:
- Подготовить – Упакуйте обученную модель для развертывания на периферии.
- Развертывание – Перенос компонентов модели и вывода из облака на периферийное устройство.
- вывод – Загрузите модель и запустите код вывода для прогнозирования изображений.
На следующей диаграмме архитектуры показаны подробности этого трехэтапного процесса и то, как мы реализовали его с помощью сервисов AWS.
В следующих разделах мы обсудим детали каждого шага и покажем, как внедрить этот процесс в автоматизированный и повторяемый рабочий процесс оркестрации и CI/CD как для моделей ML, так и для соответствующего кода вывода.
Подготовить
Периферийные устройства часто имеют ограниченные вычислительные ресурсы и память по сравнению с облачной средой, где мощные процессоры и графические процессоры могут легко запускать модели машинного обучения. Различные методы оптимизации модели позволяют адаптировать модель для конкретной программной или аппаратной платформы, чтобы увеличить скорость прогнозирования без потери точности.
В этом примере мы экспортировали обученную модель в конвейере обучения в формат ONNX для обеспечения переносимости, возможной оптимизации, а также оптимизации времени выполнения границ и зарегистрировали модель в Реестр моделей Amazon SageMaker. На этом этапе мы создаем новый компонент модели Greengrass, включая последнюю зарегистрированную модель, для последующего развертывания.
Развертывание
Безопасный и надежный механизм развертывания является ключевым моментом при развертывании модели из облака на периферийное устройство. Поскольку AWS IoT Greengrass уже включает в себя надежную и безопасную систему периферийного развертывания, мы используем ее для наших целей развертывания. Прежде чем мы подробно рассмотрим процесс развертывания, давайте кратко рассмотрим, как работает развертывание AWS IoT Greengrass. В основе системы развертывания AWS IoT Greengrass лежат компоненты, которые определяют программные модули, развернутые на периферийном устройстве под управлением AWS IoT Greengrass Core. Это могут быть либо частные компоненты, которые вы создаете, либо общедоступные компоненты, предоставляемые либо AWS или шире Сообщество Гринграсс. Несколько компонентов могут быть объединены в рамках развертывания. Конфигурация развертывания определяет компоненты, включенные в развертывание, и целевые устройства развертывания. Его можно определить либо в файле конфигурации развертывания (JSON), либо через консоль AWS IoT Greengrass при создании нового развертывания.
Мы создаем следующие два компонента Greengrass, которые затем развертываются на периферийном устройстве в процессе развертывания:
- Пакетная модель (частный компонент) – Этот компонент содержит обученную модель и модель машинного обучения в формате ONNX.
- Код вывода (частный компонент) – Помимо самой модели МО, нам необходимо реализовать некоторую логику приложения для выполнения таких задач, как подготовка данных, связь с моделью для вывода и постобработка результатов вывода. В нашем примере мы разработали частный компонент на основе Python для решения следующих задач:
- Установите необходимые компоненты среды выполнения, такие как пакет Python Ultralytics YOLOv8.
- Вместо того, чтобы брать изображения из прямой трансляции с камеры, мы имитируем это, загружая подготовленные изображения из определенного каталога и подготавливая данные изображения в соответствии с входными требованиями модели.
- Сделайте вызовы вывода для загруженной модели с подготовленными данными изображения.
- Проверьте прогнозы и загрузите результаты вывода обратно в облако.
Если вы хотите более подробно изучить созданный нами код вывода, обратитесь к Репо GitHub.
вывод
Процесс вывода модели на периферийном устройстве автоматически запускается после завершения развертывания вышеупомянутых компонентов. Пользовательский компонент вывода периодически запускает модель машинного обучения с изображениями из локального каталога. Результатом вывода для каждого изображения, возвращенного из модели, является тензор со следующим содержимым:
- Оценка уверенности – Насколько уверена модель в отношении обнаружений
- Координаты объекта – Координаты царапины (x, y, ширина, высота), обнаруженные моделью на изображении.
В нашем случае компонент вывода отправляет результаты вывода в конкретную тему MQTT в AWS IoT, где их можно прочитать для дальнейшей обработки. Эти сообщения можно просмотреть с помощью тестового клиента MQTT на консоли AWS IoT для отладки. В производственных условиях вы можете автоматически уведомить другую систему, которая позаботится об удалении неисправных металлических бирок с производственной линии.
оркестровка
Как видно из предыдущих разделов, требуется несколько шагов для подготовки и развертывания модели машинного обучения, соответствующего кода вывода и необходимой среды выполнения или агента на периферийном устройстве. Step Functions — это полностью управляемый сервис, который позволяет вам организовывать эти отдельные шаги и проектировать рабочий процесс в виде конечного автомата. Бессерверная природа этого сервиса и встроенные возможности Step Functions, такие как интеграция API сервисов AWS, позволяют быстро настроить этот рабочий процесс. Встроенные возможности, такие как повторные попытки или ведение журнала, являются важными моментами для создания надежной оркестровки. Более подробную информацию об определении конечного автомата см. Репозиторий GitHub или проверьте график конечного автомата в консоли Step Functions после развертывания этого примера в своей учетной записи.
Развертывание инфраструктуры и интеграция в CI/CD
Конвейер CI/CD для интеграции и создания всех необходимых компонентов инфраструктуры построен по той же схеме, что и на рис. Часть 1 этой серии. Мы используем Комплект для разработки облачных сервисов AWS (AWS CDK) для развертывания необходимых конвейеров из Кодовый конвейер AWS.
Обучение
Существует несколько способов построения архитектуры автоматизированной, надежной и безопасной системы развертывания периферийной модели машинного обучения, которые часто сильно зависят от варианта использования и других требований. Однако вот несколько уроков, которыми мы хотели бы поделиться с вами:
- Заранее оцените, нужны ли дополнительные Требования к вычислительным ресурсам AWS IoT Greengrass подходит для вашего случая, особенно для устройств с ограниченными краями.
- Создайте механизм развертывания, который включает этап проверки развернутых артефактов перед запуском на периферийном устройстве, чтобы гарантировать, что во время передачи не произошло никакого вмешательства.
- Рекомендуется сохранять компоненты развертывания в AWS IoT Greengrass как можно более модульными и автономными, чтобы иметь возможность развертывать их независимо. Например, если у вас есть относительно небольшой модуль кода вывода, но большая модель машинного обучения с точки зрения размера, вы не всегда хотите развертывать их оба, если изменился только код вывода. Это особенно важно, если у вас ограниченная пропускная способность или дорогое подключение периферийных устройств.
Заключение
На этом завершается наша серия из трех частей, посвященная построению сквозного конвейера MLOps для визуального контроля качества на периферии. Мы рассмотрели дополнительные проблемы, возникающие при развертывании модели машинного обучения на периферии, такие как упаковка модели или сложная оркестровка развертывания. Мы реализовали конвейер полностью автоматически, чтобы мы могли запускать наши модели в производство надежным, безопасным, повторяемым и отслеживаемым способом. Не стесняйтесь использовать архитектуру и реализацию, разработанные в этой серии, в качестве отправной точки для вашего следующего проекта с поддержкой машинного обучения. Если у вас есть вопросы о том, как спроектировать и построить такую систему для вашей среды, пожалуйста, тянуться. Другие темы и варианты использования см. в нашей Машинное обучение и IoT блоги.
Об авторах
Майкл Рот — старший архитектор решений в AWS, помогающий клиентам-производителям в Германии решать их бизнес-задачи с помощью технологий AWS. Помимо работы и семьи, он увлекается спортивными автомобилями и любит итальянский кофе.
Йорг Верле — архитектор решений в AWS, работающий с производственными заказчиками в Германии. Будучи страстным поклонником автоматизации, Йорг до прихода в AWS работал разработчиком программного обеспечения, DevOps-инженером и инженером по надежности объектов. Помимо облаков, он амбициозный бегун и любит проводить время со своей семьей. Так что, если у вас есть задача DevOps или вы хотите пробежаться: сообщите ему об этом.
Йоханнес Лангер — старший архитектор решений в AWS, работающий с корпоративными клиентами в Германии. Йоханнес увлечен применением машинного обучения для решения реальных бизнес-задач. В личной жизни Йоханнес любит работать над проектами по благоустройству дома и проводить время на свежем воздухе со своей семьей.
- SEO-контент и PR-распределение. Получите усиление сегодня.
- PlatoData.Network Вертикальный генеративный ИИ. Расширьте возможности себя. Доступ здесь.
- ПлатонАйСтрим. Интеллект Web3. Расширение знаний. Доступ здесь.
- ПлатонЭСГ. Углерод, чистые технологии, Энергия, Окружающая среда, Солнечная, Управление отходами. Доступ здесь.
- ПлатонЗдоровье. Биотехнологии и клинические исследования. Доступ здесь.
- Источник: https://aws.amazon.com/blogs/machine-learning/build-an-end-to-end-mlops-pipeline-for-visual-quality-inspection-at-the-edge-part-3/
- :имеет
- :является
- :куда
- $UP
- 150
- 7
- a
- в состоянии
- О нас
- По
- Учетная запись
- точность
- фактического соединения
- Добавить
- дополнение
- дополнительный
- продвижение
- После
- против
- Агент
- Все
- позволять
- позволяет
- уже
- причислены
- всегда
- Amazon
- Amazon EC2
- Amazon Web Services
- честолюбивый
- an
- и
- Другой
- любой
- API
- Применение
- Приложения
- Применить
- Применение
- архитектура
- МЫ
- AS
- в сторону
- At
- автоматизировать
- Автоматизированный
- автоматы
- автоматически
- автоматизация
- прочь
- AWS
- AWS IoT Greengrass
- назад
- Пропускная способность
- BE
- , так как:
- становиться
- было
- до
- начало
- Кроме
- между
- Beyond
- большой
- блоги
- изоферменты печени
- шире
- брокер
- строить
- Строительство
- построенный
- встроенный
- в комплекте
- бизнес
- но
- by
- Объявления
- камера
- CAN
- возможности
- заботится
- легковые автомобили
- случаев
- случаев
- вызов
- проблемы
- менялась
- проверка
- контроль
- клиент
- облако
- код
- Кофе
- как
- Общий
- общаться
- Связь
- сравненный
- комплекс
- компонент
- компоненты
- Вычисление
- уверенный
- Конфигурация
- связь
- последовательный
- Консоли
- ограничения
- содержит
- содержание
- Основные
- основное программное обеспечение
- соответствующий
- Цена
- Создайте
- Создающий
- изготовленный на заказ
- Клиенты
- данным
- Подготовка данных
- решать
- преданный
- более глубокий
- определять
- определенный
- Определяет
- определение
- доставки
- поставка
- зависимый
- развертывание
- развернуть
- развертывание
- развертывание
- развертывания
- Проект
- подробность
- подробнее
- обнаруживать
- обнаруженный
- развитый
- Застройщик
- Развитие
- устройство
- Устройства
- различный
- обсуждать
- обсуждается
- Разделенный
- do
- Dont
- вниз
- два
- в течение
- каждый
- легче
- легко
- Edge
- эффективный
- эффективно
- усилие
- или
- вставлять
- шифрование
- впритык
- Двигатель
- инженер
- обеспечивать
- Предприятие
- Весь
- Окружающая среда
- особенно
- оценивается
- Даже
- пример
- семья
- далеко
- Фэшн
- неисправный
- Особенности
- чувствовать
- несколько
- Файл
- соответствовать
- Фокус
- после
- следующим образом
- Что касается
- форма
- формат
- Бесплатно
- от
- полностью
- Функции
- далее
- порождать
- Germany
- Go
- хорошо
- Графические процессоры
- график
- обрабатывать
- произошло
- Аппаратные средства
- Есть
- высота
- помогает
- здесь
- High
- на высшем уровне
- его
- его
- Главная
- Как
- How To
- Однако
- HTML
- HTTP
- HTTPS
- if
- изображение
- изображений
- осуществлять
- реализация
- в XNUMX году
- важную
- улучшение
- in
- включены
- включает в себя
- В том числе
- Входящий
- Увеличение
- самостоятельно
- промышленность
- Инфраструктура
- вход
- устанавливать
- Установка
- пример
- интегрировать
- Интегрируется
- интеграции.
- интеграций
- взаимодействовать
- заинтересованный
- Интернет
- Интернет вещей
- в
- КАТО
- IoT-устройство
- IT
- итальянский
- саму трезвость
- JPG
- JSON
- всего
- Сохранить
- Основные
- Знать
- маркировка
- последний
- изучение
- позволять
- ЖИЗНЬЮ
- такое как
- Ограниченный
- линия
- жить
- загрузка
- погрузка
- локальным
- расположенный
- каротаж
- логика
- посмотреть
- смотрел
- потери
- серия
- машина
- обучение с помощью машины
- сделать
- Создание
- управлять
- управляемого
- управление
- производство
- механизм
- Память
- Сообщения
- металл
- Майкл
- ML
- млн операций в секунду
- модель
- Модели
- модульный
- Модули
- Модули
- БОЛЕЕ
- самых
- с разными
- родной
- природа
- Необходимость
- потребности
- Новые
- следующий
- нет
- объект
- of
- Предложения
- .
- on
- с открытым исходным кодом
- оптимизированный
- or
- оркестровка
- Другое
- наши
- внешний
- на открытом воздухе
- общий
- пакет
- коробок
- часть
- части
- страсть
- страстный
- шаблон
- для
- личного
- трубопровод
- Платформа
- Платформы
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- пожалуйста
- Точка
- пунктов
- портативность
- возможное
- После
- мощный
- практика
- прогноз
- Predictions
- подготовка
- Подготовить
- подготовленный
- подготовка
- частная
- проблемам
- процесс
- обработка
- производит
- Производство
- Проект
- проектов
- при условии
- приводит
- что такое варган?
- целей
- положил
- Питон
- Вопросы и ответы
- Вопросы
- САЙТ
- быстро
- Читать
- реальные
- резюме
- рекомендовать
- уменьшить
- снижает
- относиться
- по
- зарегистрированный
- относительно
- надежность
- складская
- удаление
- удаление
- повторяемый
- заменить
- требовать
- обязательный
- Требования
- ресурс
- результат
- Итоги
- надежный
- Run
- бегун
- Бег
- работает
- sagemaker
- то же
- масштабируемые
- поцарапать
- разделах
- безопасный
- безопасно
- посмотреть
- видел
- отправка
- старший
- Серии
- сервер
- Serverless
- обслуживание
- Услуги
- набор
- установка
- установка
- Поделиться
- должен
- показывать
- показал
- Шоу
- сайте
- Размер
- небольшой
- So
- Software
- Решение
- Решения
- РЕШАТЬ
- некоторые
- конкретный
- скорость
- Расходы
- Спорт
- Начало
- начинается
- Область
- Шаг
- Шаги
- простой
- поток
- последующее
- такие
- поддержки
- система
- снасти
- принимает
- с
- цель
- задачи
- снижения вреда
- Технологии
- terms
- тестXNUMX
- который
- Ассоциация
- Государство
- их
- Их
- тогда
- Эти
- вещи
- этой
- те
- три
- Трехступенчатый
- Через
- время
- в
- вместе
- тема
- Темы
- прослеживаемый
- специалистов
- Обучение
- перевод
- два
- типично
- созданного
- Загрузка
- us
- использование
- прецедент
- используемый
- через
- VALIDATE
- ценностное
- проверка
- очень
- с помощью
- хотеть
- Путь..
- способы
- we
- Web
- веб-сервисы
- ЧТО Ж
- когда
- который
- все
- ширина
- в
- без
- Работа
- работавший
- рабочий
- работает
- бы
- X
- еще
- Ты
- ВАШЕ
- зефирнет