Це частина 3 нашої серії, де ми розробляємо та реалізуємо конвеєр MLOps для візуального контролю якості на межі. У цьому дописі ми зосередимося на тому, як автоматизувати частину розгортання краю наскрізного конвеєра MLOps. Ми покажемо вам, як користуватися AWS IoT Greengrass керувати висновком моделі на межі та як автоматизувати процес за допомогою Функції кроку AWS та інші служби AWS.
Огляд рішення
In Частина 1 У цій серії ми розробили архітектуру для нашого наскрізного конвеєра MLOps, який автоматизує весь процес машинного навчання (ML), від маркування даних до навчання моделі та розгортання на межі. в Частина 2, ми показали, як автоматизувати частини конвеєра для маркування та моделювання.
Зразок використання, використаний для цієї серії, — це рішення для візуальної перевірки якості, яке може виявляти дефекти на металевих тегах, які можна використовувати як частину виробничого процесу. На наступній діаграмі показано високорівневу архітектуру конвеєра MLOps, який ми визначили на початку цієї серії. Якщо ви ще не читали, радимо переглянути Частина 1.
Автоматизація периферійного розгортання моделі ML
Після навчання та оцінки моделі ML її потрібно розгорнути у виробничій системі, щоб створити бізнес-цінність шляхом прогнозування вхідних даних. Цей процес може швидко стати складним у периферійних умовах, коли моделі потрібно розгортати та запускати на пристроях, які часто розташовані далеко від хмарного середовища, у якому було навчено моделі. Нижче наведено деякі з унікальних проблем машинного навчання на краю:
- Моделі ML часто потребують оптимізації через обмеження ресурсів периферійних пристроїв
- Пристрої Edge не можна повторно розгорнути або навіть замінити, як сервер у хмарі, тому вам потрібен надійний процес розгортання моделі та керування пристроєм
- Зв’язок між пристроями та хмарою має бути ефективним і безпечним, оскільки він часто проходить через ненадійні мережі з низькою пропускною здатністю
Давайте подивимося, як ми можемо вирішити ці проблеми за допомогою сервісів AWS на додаток до експорту моделі у форматі ONNX, що дозволяє нам, наприклад, застосовувати оптимізацію, як-от квантування, щоб зменшити розмір моделі для пристроїв обмежень. ONNX також забезпечує оптимізований час роботи для найпоширеніших периферійних апаратних платформ.
Порушуючи процес розгортання краю, нам потрібні два компоненти:
- Механізм розгортання для доставки моделі, який включає саму модель і деяку бізнес-логіку для керування та взаємодії з моделлю
- Механізм робочого процесу, який може організовувати весь процес, щоб зробити його надійним і повторюваним
У цьому прикладі ми використовуємо різні служби AWS, щоб побудувати механізм автоматичного розгортання периферії, який об’єднує всі необхідні компоненти, які ми обговорювали.
По-перше, ми моделюємо крайовий пристрій. Щоб вам було легше пройти через наскрізний робочий процес, ми використовуємо Обчислювальна хмара Amazon Elastic екземпляр (Amazon EC2) для імітації периферійного пристрою шляхом встановлення програмного забезпечення AWS IoT Greengrass Core на екземпляр. Ви також можете використовувати екземпляри EC2 для перевірки різних компонентів у процесі контролю якості перед розгортанням на фактичному периферійному пристрої. AWS IoT Greengrass — це хмарна служба Інтернету речей (IoT) із відкритим вихідним кодом, яка допомагає створювати, розгортати програмне забезпечення для периферійних пристроїв і керувати ним. AWS IoT Greengrass зменшує витрати на створення, розгортання та керування програмним забезпеченням периферійних пристроїв безпечним і масштабованим способом. Після встановлення програмного забезпечення AWS IoT Greengrass Core на вашому пристрої ви можете додавати або видаляти функції та компоненти, а також керувати додатками пристрою IoT за допомогою AWS IoT Greengrass. Він пропонує багато вбудованих компонентів, які полегшують ваше життя, наприклад компоненти StreamManager і брокер MQTT, які можна використовувати для безпечного зв’язку з хмарою, підтримуючи наскрізне шифрування. Ви можете використовувати ці функції для ефективного завантаження результатів висновків і зображень.
У виробничому середовищі у вас, як правило, є промислова камера, яка передає зображення, для яких модель ML має створювати прогнози. Для наших налаштувань ми моделюємо це введення зображення, завантажуючи попередній набір зображень у певний каталог на периферійному пристрої. Потім ми використовуємо ці зображення як вихідні дані для моделі.
Ми розділили загальний процес розгортання та висновків на три послідовні кроки, щоб розгорнути хмарну модель ML у крайовому середовищі та використовувати її для прогнозів:
- Готувати – Упакуйте навчену модель для крайового розгортання.
- Розгортання – Передача компонентів моделі та висновку з хмари на периферійний пристрій.
- Висновок – Завантажте модель і запустіть код висновку для прогнозування зображення.
На наступній діаграмі архітектури показано деталі цього триетапного процесу та те, як ми реалізували його за допомогою служб AWS.
У наступних розділах ми обговорюємо деталі кожного кроку та показуємо, як інтегрувати цей процес в автоматизовану та повторювану оркестровку та робочий процес CI/CD як для моделей ML, так і для відповідного коду висновку.
Готувати
Пристрої Edge часто мають обмежений обсяг обчислювальної техніки та пам’яті порівняно з хмарним середовищем, де потужні процесори та графічні процесори можуть легко запускати моделі ML. Різні методи оптимізації моделі дозволяють адаптувати модель для конкретної програмної чи апаратної платформи, щоб збільшити швидкість прогнозування без втрати точності.
У цьому прикладі ми експортували навчену модель у навчальний конвеєр у формат ONNX для переносимості, можливої оптимізації, а також оптимізованого середовища виконання на межах, і зареєстрували модель у Реєстр моделей Amazon SageMaker. На цьому кроці ми створюємо новий компонент моделі Greengrass, включаючи останню зареєстровану модель для подальшого розгортання.
Розгортання
Безпечний і надійний механізм розгортання є ключовим при розгортанні моделі з хмари на крайньому пристрої. Оскільки AWS IoT Greengrass уже містить надійну та безпечну периферійну систему розгортання, ми використовуємо її для наших цілей розгортання. Перш ніж ми детально розглянемо наш процес розгортання, давайте коротко нагадаємо, як працюють розгортання AWS IoT Greengrass. В основі системи розгортання AWS IoT Greengrass лежать Компоненти, які визначають програмні модулі, розгорнуті на крайньому пристрої, на якому працює AWS IoT Greengrass Core. Це можуть бути приватні компоненти, які ви створюєте, або публічні компоненти, які надаються будь-яким із них AWS або ширше Громада Грінграсс. Кілька компонентів можна об’єднати разом як частину розгортання. Конфігурація розгортання визначає компоненти, включені в розгортання, і цільові пристрої розгортання. Його можна визначити у файлі конфігурації розгортання (JSON) або через консоль AWS IoT Greengrass під час створення нового розгортання.
Ми створюємо наступні два компоненти Greengrass, які потім розгортаємо на крайньому пристрої за допомогою процесу розгортання:
- Упакована модель (приватний компонент) – Цей компонент містить навчену та модель ML у форматі ONNX.
- Код висновку (приватний компонент) – Окрім самої моделі ML, нам потрібно реалізувати певну логіку додатків для вирішення таких завдань, як підготовка даних, зв’язок із моделлю для висновків і постобробка результатів висновків. У нашому прикладі ми розробили приватний компонент на основі Python для виконання таких завдань:
- Встановіть необхідні компоненти середовища виконання, наприклад пакет Ultralytics YOLOv8 Python.
- Замість того, щоб знімати зображення з камери в прямому ефірі, ми моделюємо це, завантажуючи підготовлені зображення з певного каталогу та готуючи дані зображення відповідно до вхідних вимог моделі.
- Зробіть виклики висновку щодо завантаженої моделі з підготовленими даними зображення.
- Перевірте прогнози та завантажте результати висновків назад у хмару.
Якщо ви хочете глибше поглянути на створений нами код висновку, зверніться до GitHub репо.
Висновок
Процес визначення моделі на крайньому пристрої автоматично запускається після завершення розгортання вищезгаданих компонентів. Спеціальний компонент висновку періодично запускає модель ML із зображеннями з локального каталогу. Результатом висновку для зображення, отриманого з моделі, є тензор із таким вмістом:
- Оцінки впевненості – Наскільки впевнена модель щодо виявлень
- Координати об'єкта – Координати скретч-об’єкта (x, y, ширина, висота), визначені моделлю на зображенні
У нашому випадку компонент висновку піклується про надсилання результатів висновків до певної теми MQTT на AWS IoT, де їх можна прочитати для подальшої обробки. Ці повідомлення можна переглядати через тестовий клієнт MQTT на консолі AWS IoT для налагодження. У виробничих умовах ви можете вибрати автоматичне сповіщення іншої системи, яка піклується про видалення несправних металевих міток із виробничої лінії.
Оркестрація
Як видно з попередніх розділів, для підготовки та розгортання моделі ML, відповідного коду виводу та необхідного середовища виконання або агента на периферійному пристрої потрібні кілька кроків. Step Functions — це повністю керована служба, яка дозволяє керувати цими спеціальними кроками та проектувати робочий процес у формі кінцевого автомата. Безсерверний характер цієї служби та власні можливості Step Functions, такі як інтеграція API служби AWS, дозволяють швидко налаштувати цей робочий процес. Вбудовані можливості, такі як повторні спроби або журналювання, є важливими моментами для створення надійної оркестровки. Додаткові відомості щодо самого визначення кінцевого автомата див GitHub сховище або перевірте графік кінцевого автомата на консолі Step Functions після того, як ви розгорнете цей приклад у своєму обліковому записі.
Розгортання інфраструктури та інтеграція в CI/CD
Конвеєр CI/CD для інтеграції та створення всіх необхідних компонентів інфраструктури дотримується тієї самої моделі, що зображена на Частина 1 цієї серії. Ми використовуємо Набір хмарних розробок AWS (AWS CDK) для розгортання необхідних конвеєрів AWS CodePipeline.
Навчання
Існує кілька способів побудови архітектури для автоматизованої, надійної та захищеної периферійної системи розгортання моделі ML, які часто дуже залежать від сценарію використання та інших вимог. Проте ми хочемо поділитися з вами кількома знаннями:
- Оцініть заздалегідь, якщо доп Вимоги до обчислювальних ресурсів AWS IoT Greengrass підходить для вашого корпусу, особливо з пристроями з обмеженими краями.
- Створіть механізм розгортання, який інтегрує етап перевірки розгорнутих артефактів перед запуском на периферійному пристрої, щоб переконатися, що під час передачі не було втручання.
- Це хороша практика, щоб компоненти розгортання на AWS IoT Greengrass були максимально модульними та автономними, щоб мати можливість розгортати їх незалежно. Наприклад, якщо у вас є відносно невеликий модуль коду виведення, але велика модель ML з точки зору розміру, ви не завжди хочете розгортати їх обидва, якщо змінився лише код виведення. Це особливо важливо, якщо у вас обмежена пропускна здатність або висока вартість підключення до периферійних пристроїв.
Висновок
На цьому завершується наша серія з трьох частин про створення наскрізного конвеєра MLOps для візуального контролю якості на межі. Ми розглянули додаткові труднощі, пов’язані з розгортанням моделі ML на межі, як-от упакування моделі або складна оркестровка розгортання. Ми реалізували конвеєр повністю автоматизованим способом, щоб ми могли запускати наші моделі у виробництво надійним, безпечним, повторюваним і відстежуваним способом. Не соромтеся використовувати архітектуру та реалізацію, розроблені в цій серії, як відправну точку для вашого наступного проекту з підтримкою ML. Якщо у вас є будь-які запитання, як спроектувати та створити таку систему для вашого середовища, будь ласка досягти. Для інших тем і випадків використання зверніться до нашого машинне навчання та IoT блоги.
Про авторів
Майкл Рот є старшим архітектором рішень в AWS, який підтримує клієнтів-виробників у Німеччині у вирішенні їхніх бізнес-завдань за допомогою технології AWS. Окрім роботи та сім’ї, він цікавиться спортивними автомобілями та любить італійську каву.
Йорг Верле є архітектором рішень в AWS, який працює з клієнтами-виробниками в Німеччині. Маючи пристрасть до автоматизації, Йорг працював розробником програмного забезпечення, інженером DevOps та інженером з надійності сайтів у своєму житті до AWS. Крім хмари, він амбітний бігун і насолоджується якісним часом із сім’єю. Тож якщо у вас є виклик DevOps або ви хочете побігати: повідомте йому.
Йоганнес Лангер є старшим архітектором рішень в AWS, який працює з корпоративними клієнтами в Німеччині. Йоганнес захоплюється застосуванням машинного навчання для вирішення реальних бізнес-завдань. В особистому житті Йоганнес любить працювати над проектами з благоустрою будинку та проводити час на природі з сім’єю.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- PlatoData.Network Vertical Generative Ai. Додайте собі сили. Доступ тут.
- PlatoAiStream. Web3 Intelligence. Розширення знань. Доступ тут.
- ПлатонЕСГ. вуглець, CleanTech, Енергія, Навколишнє середовище, Сонячна, Поводження з відходами. Доступ тут.
- PlatoHealth. Розвідка про біотехнології та клінічні випробування. Доступ тут.
- джерело: 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
- aside
- At
- автоматизувати
- Автоматизований
- автоматизує
- автоматично
- Автоматизація
- геть
- AWS
- AWS IoT Greengrass
- назад
- ширина смуги
- BE
- оскільки
- ставати
- було
- перед тим
- початок
- крім
- між
- За
- Великий
- блоги
- обидва
- ширше
- брокер
- будувати
- Створюємо
- побудований
- вбудований
- в комплекті
- бізнес
- але
- by
- Виклики
- кімната
- CAN
- можливості
- який
- автомобілів
- випадок
- випадків
- виклик
- проблеми
- змінилися
- перевірка
- контроль
- клієнт
- хмара
- код
- кави
- Приходити
- загальний
- спілкуватися
- Комунікація
- порівняний
- комплекс
- компонент
- Компоненти
- обчислення
- впевнений
- конфігурація
- зв'язок
- поспіль
- Консоль
- обмеження
- містить
- зміст
- Core
- базове програмне забезпечення
- Відповідний
- Коштувати
- створювати
- створення
- виготовлений на замовлення
- Клієнти
- дані
- Підготовка даних
- вирішувати
- присвячених
- глибше
- визначати
- певний
- Визначає
- визначення
- надання
- доставка
- залежний
- розгортання
- розгорнути
- розгортання
- розгортання
- розгортання
- дизайн
- деталь
- деталі
- виявляти
- виявлено
- розвиненою
- Розробник
- розробка
- пристрій
- прилади
- різний
- обговорювати
- обговорювалися
- розділений
- do
- Не знаю
- вниз
- два
- під час
- кожен
- легше
- легко
- край
- ефективний
- продуктивно
- зусилля
- або
- Вставляти
- шифрування
- кінець в кінець
- двигун
- інженер
- забезпечувати
- підприємство
- Весь
- Навколишнє середовище
- особливо
- оцінюється
- Навіть
- приклад
- сім'я
- далеко
- мода
- несправний
- риси
- почувати
- кілька
- філе
- відповідати
- Сфокусувати
- після
- слідує
- для
- форма
- формат
- Безкоштовна
- від
- повністю
- Функції
- далі
- породжувати
- Німеччина
- Go
- добре
- Графічні процесори
- графік
- обробляти
- сталося
- апаратні засоби
- Мати
- висота
- допомагає
- тут
- Високий
- на вищому рівні
- його
- його
- Головна
- Як
- How To
- Однак
- HTML
- HTTP
- HTTPS
- if
- зображення
- зображень
- здійснювати
- реалізація
- реалізовані
- важливо
- поліпшення
- in
- включені
- includes
- У тому числі
- Вхідний
- Augmenter
- самостійно
- промислові
- Інфраструктура
- вхід
- встановлювати
- установка
- екземпляр
- інтегрувати
- Інтеграція
- інтеграція
- інтеграцій
- взаємодіяти
- зацікавлений
- інтернет
- Інтернет речей
- в
- КАТО
- Пристрій IoT
- IT
- італійський
- сам
- JPG
- json
- просто
- тримати
- ключ
- Знати
- маркування
- останній
- вивчення
- дозволяти
- життя
- як
- обмеженою
- Лінія
- жити
- загрузка
- погрузка
- місцевий
- розташований
- каротаж
- логіка
- подивитися
- подивився
- програш
- серія
- машина
- навчання за допомогою машини
- зробити
- Робить
- управляти
- вдалося
- управління
- виробництво
- механізм
- пам'ять
- повідомлення
- метал
- Майкл
- ML
- MLOps
- модель
- Моделі
- модульний
- Модулі
- Модулі
- більше
- найбільш
- множинний
- рідний
- природа
- Необхідність
- потреби
- Нові
- наступний
- немає
- об'єкт
- of
- Пропозиції
- часто
- on
- з відкритим вихідним кодом
- оптимізований
- or
- оркестровка
- Інше
- наші
- з
- на відкритому повітрі
- загальний
- пакет
- упаковка
- частина
- частини
- пристрасть
- пристрасний
- Викрійки
- для
- персонал
- трубопровід
- платформа
- Платформи
- plato
- Інформація про дані Платона
- PlatoData
- будь ласка
- точка
- точок
- портативність
- це можливо
- пошта
- потужний
- практика
- прогноз
- Прогнози
- підготовка
- Готувати
- підготовлений
- підготовка
- приватний
- проблеми
- процес
- обробка
- виробляти
- Production
- проект
- проектів
- за умови
- забезпечує
- громадськість
- цілей
- put
- Python
- Питання та відповіді
- якість
- питань
- Швидко
- швидко
- Читати
- реальний
- Короткий огляд
- рекомендувати
- зменшити
- знижує
- послатися
- про
- зареєстрований
- щодо
- надійність
- надійний
- видаляти
- видалення
- повторюваний
- замінити
- вимагати
- вимагається
- Вимога
- ресурс
- результат
- результати
- міцний
- прогін
- бігун
- біг
- пробіжки
- мудрець
- то ж
- масштабовані
- подряпати
- розділам
- безпечний
- безпечно
- побачити
- бачив
- відправка
- старший
- Серія
- сервер
- Без сервера
- обслуговування
- Послуги
- комплект
- установка
- установка
- Поділитись
- Повинен
- Показувати
- показав
- Шоу
- сайт
- Розмір
- невеликий
- So
- Софтвер
- рішення
- Рішення
- ВИРІШИТИ
- деякі
- конкретний
- швидкість
- Витрати
- SPORTS
- Починаючи
- починається
- стан
- Крок
- заходи
- просто
- потік
- наступні
- такі
- Підтримуючий
- система
- снасті
- приймає
- взяття
- Мета
- завдання
- методи
- Технологія
- terms
- тест
- Що
- Команда
- Держава
- їх
- Їх
- потім
- Ці
- речі
- це
- ті
- три
- трикроковий
- через
- час
- до
- разом
- тема
- теми
- простежується
- навчений
- Навчання
- переклад
- два
- типово
- створеного
- Завантаження
- us
- використання
- використання випадку
- використовуваний
- використання
- ПЕРЕВІР
- значення
- перевірка
- дуже
- через
- хотіти
- шлях..
- способи
- we
- Web
- веб-сервіси
- ДОБРЕ
- коли
- який
- всі
- ширина
- з
- в
- без
- Work
- працював
- робочий
- робочий
- б
- X
- ще
- Ти
- вашу
- зефірнет