У 2019 році Amazon став співзасновником кліматична застава. Метою обіцянки є досягнення чистого нульового викиду вуглецю до 2040 року. Це на 10 років раніше, ніж передбачено Паризькою угодою. Компанії, які підписалися, зобов’язуються регулярно звітувати, виключати викиди вуглецю та достовірні компенсації. На момент написання цієї статті 377 компаній підписали кліматичну обіцянку, і ця кількість продовжує зростати.
Оскільки AWS прагне допомогти вам досягти вашої нульової чистої цілі за допомогою хмарних рішень і машинного навчання (ML), уже розроблено та впроваджено багато проектів, які зменшують викиди вуглецю. Виробництво є однією з галузей, яка може отримати значну користь від таких проектів. Завдяки оптимізованому управлінню енергією машин на виробничих підприємствах, таких як компресори чи чиллери, компанії можуть зменшити свій вуглецевий слід за допомогою ML.
Ефективний перехід від фази експериментів МЛ до виробництва є складним завданням. Автоматизація навчання та перепідготовки моделей, наявність реєстру моделей, відстеження експериментів і розгортання є одними з ключових проблем. Для компаній-виробників існує ще один рівень складності, а саме те, як ці розгорнуті моделі можуть працювати на межі.
У цій публікації ми вирішуємо ці проблеми, надаючи шаблон операцій машинного навчання (MLOps), який містить рішення для сталого управління енергією. Рішення не залежить від випадків використання, що означає, що ви можете адаптувати його для своїх випадків використання, змінивши модель і дані. Ми покажемо вам, як інтегрувати моделі Трубопроводи Amazon SageMaker, рідний інструмент оркестровки робочого процесу для побудови конвеєрів машинного навчання, який запускає завдання навчання та, за бажанням, завдання обробки за допомогою моделювання Монте-Карло. Експерименти відстежуються Експерименти Amazon SageMaker. Моделі відстежуються та реєструються в Реєстр моделей Amazon SageMaker. Нарешті, ми надаємо код для розгортання вашої остаточної моделі в AWS Lambda функції.
Lambda — це обчислювальна служба, яка дозволяє запускати код без керування серверами чи надання їм доступу. Автоматичне масштабування Lambda, виставлення рахунків за запитом і простота використання роблять її поширеним вибором для розгортання команд наукових спеціалістів. За допомогою цієї публікації дослідники даних можуть перетворити свою модель на економічно ефективну та масштабовану лямбда-функцію. Крім того, Lambda дозволяє інтегруватися з AWS IoT Greengrass, який допомагає вам створювати програмне забезпечення, яке дозволяє вашим пристроям оперативно працювати з даними, які вони генерують, як це було б у випадку рішення для сталого управління енергією.
Огляд рішення
Архітектура, яку ми розгортаємо (див. наступний малюнок), є повністю керованим підходом до машинного навчання CI/CD. Елементи розділені, щоб уникнути єдиного монолітного рішення.
Почнемо з верхнього лівого кута діаграми. The Обробка – створення зображення компонент керується CI/CD Комісія AWS репозиторій, який допомагає створювати та просувати a Docker контейнер до Реєстр контейнерів Amazon Elastic (Amazon ECR). Цей контейнер для обробки є першим кроком у нашому конвеєрі ML, але він також повторно використовується для етапів постобробки. У нашому випадку ми застосовуємо моделювання Монте-Карло як постобробку. The Тренінг – Створення іміджу репозиторій, виділений унизу ліворуч, має той самий механізм, що й сховище Обробка блок над ним. Основна відмінність полягає в тому, що він створює контейнер для навчання моделі.
Магістральний трубопровід, Будівля моделі (трубопровід), це ще один репозиторій CodeCommit, який автоматизує запуск конвеєрів SageMaker. Цей конвеєр автоматизує та об’єднує попередню обробку даних, навчання моделі, відстеження показників моделі в SageMaker Experiments, постобробку даних і каталогізацію моделі в реєстрі моделей SageMaker.
Останній компонент знаходиться внизу праворуч: Розгортання моделі. Якщо слідувати прикладам у Проекти Amazon SageMaker, ви отримуєте шаблон, який розміщує вашу модель за допомогою кінцевої точки SageMaker. Натомість наш репозиторій розгортання розміщує модель у функції Lambda. Ми демонструємо підхід до розгортання функції Lambda, яка може виконувати прогнози в реальному часі.
Передумови
Щоб успішно розгорнути наше рішення, вам потрібно:
Завантажте репозиторій GitHub
Як перший крок, клонуйте GitHub сховище на вашу локальну машину. Він містить таку структуру папок:
- розгортання – Містить код, відповідний для розгортання
- mllib — Містить код ML для попередньої обробки, навчання, обслуговування та моделювання
- Тести — Містить модульні та інтеграційні тести
Ключовим файлом для розгортання є сценарій оболонки deployment/deploy.sh
. Ви використовуєте цей файл для розгортання ресурсів у своєму обліковому записі. Перш ніж ми зможемо запустити сценарій оболонки, виконайте наступні кроки:
- Відкрийте
deployment/app.py
і змініть bucket_name підSageMakerPipelineSourceCodeStack
,bucket_name
має бути глобально унікальним (наприклад, додайте своє повне ім’я). - In
deployment/pipeline/assets/modelbuild/pipelines/energy_management/pipeline.py
, змінитиdefault_bucket
приget_pipeline
на те саме ім’я, що й у кроці 1.
Розгорніть рішення за допомогою AWS CDK
По-перше, налаштуйте ваш AWS CLI з обліковим записом і регіоном, у якому ви хочете розгорнути. Потім виконайте наступні команди, щоб перейти до каталогу розгортання, створити віртуальне середовище, активувати його, інсталювати необхідні пакети pip, указані в setup.py
, і запустіть deploy.sh
:
deploy.sh
виконує такі дії:
- Створює віртуальне середовище на Python.
- Джерела сценарію активації віртуального середовища.
- Встановлює AWS CDK і вимоги, викладені в
setup.py
. - Нагрудники навколишнє середовище.
- Заархівовує та копіює необхідні файли, які ви створили, наприклад ваш
mllib
файли у відповідні папки, де потрібні ці ресурси. - Runs
cdk deploy —require-approval never
. - Створює AWS CloudFormation стек через AWS CDK.
Початковий етап розгортання повинен займати менше 5 хвилин. Тепер ви маєте мати чотири репозиторії в CodeCommit у регіоні, який ви вказали через AWS CLI, як показано на схемі архітектури. The AWS CodePipeline трубопроводи запускаються одночасно. The modelbuild
та modeldeploy
конвеєри залежать від успішного запуску обробки та створення навчального образу. The modeldeploy
трубопроводу залежить від успішної побудови моделі. Розгортання моделі має завершитися менш ніж за 1.5 години.
Клонуйте сховища моделей у Studio
Щоб налаштувати конвеєри SageMaker, створені за допомогою розгортання AWS CDK в інтерфейсі користувача Studio, спочатку потрібно клонувати репозиторії в Studio. Запустіть системний термінал у Studio та виконайте такі команди після введення назви та ідентифікатора проекту:
Після клонування репозиторіїв ви можете надіслати фіксацію до сховищ. Ці коміти запускають запуск CodePipeline для відповідних конвеєрів.
Ви також можете адаптувати рішення на своїй локальній машині та працювати на бажаному середовищі IDE.
Навігація в інтерфейсі SageMaker Pipelines і SageMaker Experiments
Конвеєр SageMaker — це серія взаємопов’язаних кроків, які визначаються за допомогою SDK для Amazon SageMaker Python. Це визначення конвеєра кодує конвеєр за допомогою спрямованого ациклічного графіка (DAG), який можна експортувати як визначення JSON. Щоб дізнатися більше про структуру таких трубопроводів, див Огляд конвеєрів SageMaker.
перейдіть до Ресурси SageMaker і виберіть ресурс Pipelines для перегляду. Під ІМ'Я, ви повинні побачити PROJECT_NAME-PROJECT_ID
. В інтерфейсі користувача має бути успішний запуск, який, як очікується, триватиме трохи більше 1 години. Конвеєр має виглядати, як показано на наступному знімку екрана.
Запуск було автоматично запущено після розгортання стека AWS CDK. Ви можете вручну викликати запуск, вибравши Створювати виконання. Звідти ви можете вибрати власні параметри конвеєра, такі як тип екземпляра та кількість екземплярів для етапів обробки та навчання. Крім того, ви можете дати прогону назву та опис. Конвеєр легко налаштовується за допомогою параметрів конвеєра, на які можна посилатися та визначати їх у визначенні конвеєра.
Не соромтеся почати інший запуск конвеєра з вашими параметрами за бажанням. Після цього перейдіть до Ресурси SageMaker знову відкрийте панель і виберіть Експерименти та випробування. Там ви повинні знову побачити рядок із такою назвою, як PROJECT_NAME-PROJECT_ID
. Перейдіть до експерименту та виберіть єдиний запуск із випадковим ідентифікатором. Звідти виберіть навчальне завдання SageMaker, щоб дослідити показники, пов’язані з навчальним завданням.
Мета SageMaker Experiments полягає в тому, щоб максимально спростити створення експериментів, заповнення їх пробами та виконання аналітики між пробами та експериментами. Конвеєри SageMaker тісно інтегровані з SageMaker Experiments і за замовчуванням для кожного запуску створюють експеримент, випробування та пробні компоненти, якщо вони не існують.
Схвалити розгортання Lambda в реєстрі моделі
Як наступний крок перейдіть до реєстру моделі в розділі Ресурси SageMaker. Тут ви знову можете знайти рядок із такою назвою, як PROJECT_NAME-PROJECT_ID
. Перейдіть до єдиної наявної моделі та схваліть її. Це автоматично розгортає артефакт моделі в контейнері в Lambda.
Після того, як ви затвердите свою модель у реєстрі моделей, an Amazon EventBridge спрацьовує правило події. Це правило запускає конвеєр CodePipeline із закінченням *-modeldeploy
. У цьому розділі ми обговорюємо, як це рішення використовує затверджену модель і розміщує її у лямбда-функції. CodePipeline використовує наявне сховище CodeCommit, яке також закінчується на *-modeldeploy
і використовує цей код для запуску в CodeBuild. Основним записом для CodeBuild є buildspec.yml
файл. Давайте спочатку подивимося на це:
На етапі інсталяції ми гарантуємо, що бібліотеки Python оновлені, створюємо віртуальне середовище, інсталюємо AWS CDK v2.26.0 і встановлюємо aws-cdk
Бібліотека Python разом з іншими, які використовують файл вимог. Ми також завантажте обліковий запис AWS. На етапі складання запускаємо build.py
, про який ми поговоримо далі. Цей файл завантажує останній схвалений артефакт моделі SageMaker Служба простого зберігання Amazon (Amazon S3) до локального екземпляра CodeBuild. Це .tar.gz
файл розпаковано, а його вміст скопійовано до папки, яка також містить наш основний лямбда-код. Функція Lambda розгортається за допомогою AWS CDK, а код виконується з контейнера Docker від Amazon ECR. Це робиться автоматично AWS CDK.
Команда build.py
це файл Python, який переважно використовує AWS SDK для Python (Boto3) щоб перелічити доступні пакети моделей.
Функція get_approved_package
повертає Amazon S3 URI артефакту, який потім завантажується, як описано раніше.
Після успішного розгортання вашої моделі ви можете тест безпосередньо на консолі Lambda у регіоні, який ви вибрали для розгортання. Ім’я функції має містити DigitalTwinStack-DigitalTwin*
. Відкрийте функцію та перейдіть до Тест вкладка. Ви можете використовувати наступну подію для запуску тестового виклику:
Після запуску тестової події ви отримаєте відповідь, подібну до тієї, що показана на наступному знімку екрана.
Якщо ви хочете запустити більше симуляцій або випробувань, ви можете збільшити ліміт часу очікування Lambda та поекспериментувати з кодом! Або ви можете зібрати згенеровані дані та візуалізувати їх Amazon QuickSight. Нижче наведено приклад. Тепер твоя черга!
Прибирати
Щоб уникнути подальших платежів, виконайте такі дії:
- На консолі AWS CloudFormation видаліть
EnergyOptimization
стек
Це видаляє все рішення. - Видалити стек
DigitalTwinStack
, який розгорнув вашу функцію Lambda.
Висновок
У цьому дописі ми показали вам керований CI/CD конвеєр MLOps рішення для керування енергією, у якому ми зберігаємо кожен крок відокремленим. Ви можете відстежувати конвеєри та експерименти МЛ в інтерфейсі користувача Studio. Ми також продемонстрували інший підхід до розгортання: після схвалення моделі в реєстрі моделей лямбда-функція, що містить схвалену модель, створюється автоматично через CodePipeline.
Якщо ви зацікавлені в дослідженні конвеєра MLOps на AWS або рішення для сталого управління енергією, перегляньте GitHub сховище і розгорніть стек у вашому власному середовищі AWS!
Про авторів
Лоренс ван дер Маас є спеціалістом з обробки даних в AWS Professional Services. Він тісно співпрацює з клієнтами, які створюють свої рішення для машинного навчання на AWS, і захоплюється тим, як машинне навчання змінює світ, яким ми його знаємо.
Кангкан Ван є консультантом зі штучного інтелекту та ML у AWS Professional Services. Вона має великий досвід розгортання рішень AI/ML у сфері охорони здоров’я та наук про життя. Їй також подобається допомагати корпоративним клієнтам створювати масштабовані платформи штучного інтелекту/ML, щоб пришвидшити хмарну подорож їхніх спеціалістів з обробки даних.
Селена Таббара є спеціалістом з обробки даних в AWS Professional Services. Вона щодня працює зі своїми клієнтами, щоб досягти бізнес-результатів за допомогою інновацій на платформах AWS. У вільний час Селена захоплюється грою на піаніно, пішим туризмом і переглядом баскетболу.
Майкл Волнер є старшим консультантом, який спеціалізується на штучному інтелекті та ML у AWS Professional Services. Майкл прагне дати клієнтам можливість стати AWSome на їхній хмарній подорожі. Він у захваті від виробництва й із задоволенням допомагає трансформувати виробничий простір за допомогою даних.
- AI
- ai мистецтво
- AI арт генератор
- ai робот
- Амазонське машинне навчання
- Amazon SageMaker
- Автопілот Amazon SageMaker
- штучний інтелект
- сертифікація штучного інтелекту
- штучний інтелект у банківській справі
- робот зі штучним інтелектом
- роботи зі штучним інтелектом
- програмне забезпечення для штучного інтелекту
- AWS Машинне навчання
- blockchain
- блокчейн конференція AI
- coingenius
- розмовний штучний інтелект
- крипто конференція ai
- dall's
- глибоке навчання
- у вас є гугл
- навчання за допомогою машини
- виробництво
- plato
- платон ai
- Інформація про дані Платона
- Гра Платон
- PlatoData
- platogaming
- масштаб ai
- Sustainability
- синтаксис
- зефірнет