Розгорніть рішення MLOps, яке розміщує ваші кінцеві точки моделі в AWS Lambda PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Розгорніть рішення MLOps, яке розміщує ваші кінцеві точки моделі в AWS Lambda

У 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. Ви використовуєте цей файл для розгортання ресурсів у своєму обліковому записі. Перш ніж ми зможемо запустити сценарій оболонки, виконайте наступні кроки:

  1. Відкрийте deployment/app.py і змініть bucket_name під SageMakerPipelineSourceCodeStack, bucket_name має бути глобально унікальним (наприклад, додайте своє повне ім’я).
  2. In deployment/pipeline/assets/modelbuild/pipelines/energy_management/pipeline.py, змінити default_bucket при get_pipeline на те саме ім’я, що й у кроці 1.

Розгорніть рішення за допомогою AWS CDK

По-перше, налаштуйте ваш AWS CLI з обліковим записом і регіоном, у якому ви хочете розгорнути. Потім виконайте наступні команди, щоб перейти до каталогу розгортання, створити віртуальне середовище, активувати його, інсталювати необхідні пакети pip, указані в setup.py, і запустіть deploy.sh:

cd deployment
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
pre-commit install
chmod u+x deploy.sh
./deploy.sh

deploy.sh виконує такі дії:

  1. Створює віртуальне середовище на Python.
  2. Джерела сценарію активації віртуального середовища.
  3. Встановлює AWS CDK і вимоги, викладені в setup.py.
  4. Нагрудники навколишнє середовище.
  5. Заархівовує та копіює необхідні файли, які ви створили, наприклад ваш mllib файли у відповідні папки, де потрібні ці ресурси.
  6. Runs cdk deploy —require-approval never.
  7. Створює 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 та виконайте такі команди після введення назви та ідентифікатора проекту:

git clone https://git-codecommit.REGION.amazonaws.com/v1/repos/sagemaker-PROJECT_NAME-PROJECT_ID-modelbuild
git clone https://git-codecommit.REGION.amazonaws.com/v1/repos/sagemaker-PROJECT_NAME-PROJECT_ID-modeldeploy
git clone https://git-codecommit.REGION.amazonaws.com/v1/repos/sagemaker-PROJECT_NAME-PROJECT_ID-processing-imagebuild
git clone https://git-codecommit.REGION.amazonaws.com/v1/repos/sagemaker-PROJECT_NAME-PROJECT_ID-training-imagebuild

Після клонування репозиторіїв ви можете надіслати фіксацію до сховищ. Ці коміти запускають запуск CodePipeline для відповідних конвеєрів.

Ви також можете адаптувати рішення на своїй локальній машині та працювати на бажаному середовищі IDE.

Навігація в інтерфейсі SageMaker Pipelines і SageMaker Experiments

Конвеєр SageMaker — це серія взаємопов’язаних кроків, які визначаються за допомогою SDK для Amazon SageMaker Python. Це визначення конвеєра кодує конвеєр за допомогою спрямованого ациклічного графіка (DAG), який можна експортувати як визначення JSON. Щоб дізнатися більше про структуру таких трубопроводів, див Огляд конвеєрів SageMaker.

перейдіть до Ресурси SageMaker і виберіть ресурс Pipelines для перегляду. Під ІМ'Я, ви повинні побачити PROJECT_NAME-PROJECT_ID. В інтерфейсі користувача має бути успішний запуск, який, як очікується, триватиме трохи більше 1 години. Конвеєр має виглядати, як показано на наступному знімку екрана.

Конвеєр Amazon SageMaker

Запуск було автоматично запущено після розгортання стека 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 файл. Давайте спочатку подивимося на це:

version: 0.2

env:
  shell: bash

phases:
  install:
    runtime_versions:
      python: 3.8
    commands:
      - python3 -m ensurepip --upgrade
      - python3 -m pip install --upgrade pip
      - python3 -m pip install --upgrade virtualenv
      - python3 -m venv .venv
      - source .venv/bin/activate
      - npm install -g aws-cdk@2.26.0
      - pip install -r requirements.txt
      - cdk bootstrap
  build:
    commands:
      - python build.py --model-package-group-name "$SOURCE_MODEL_PACKAGE_GROUP_NAME"
      - tar -xf model.tar.gz
      - cp model.joblib lambda/digital_twin
      - rm model.tar.gz
      - rm model.joblib
      - cdk deploy --require-approval never

На етапі інсталяції ми гарантуємо, що бібліотеки 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*. Відкрийте функцію та перейдіть до Тест вкладка. Ви можете використовувати наступну подію для запуску тестового виклику:

{
  "flow": "[280, 300]",
  "pressure": "[69, 70]",
  "simulations": "10",
  "no_of_trials": "10",
  "train_error_weight": "1.0"
}

Після запуску тестової події ви отримаєте відповідь, подібну до тієї, що показана на наступному знімку екрана.

Перевірте функцію AWS Lambda

Якщо ви хочете запустити більше симуляцій або випробувань, ви можете збільшити ліміт часу очікування Lambda та поекспериментувати з кодом! Або ви можете зібрати згенеровані дані та візуалізувати їх Amazon QuickSight. Нижче наведено приклад. Тепер твоя черга!

Amazon QuickSight

Прибирати

Щоб уникнути подальших платежів, виконайте такі дії:

  • На консолі AWS CloudFormation видаліть EnergyOptimization стек
    Це видаляє все рішення.
  • Видалити стек DigitalTwinStack, який розгорнув вашу функцію Lambda.

Висновок

У цьому дописі ми показали вам керований CI/CD конвеєр MLOps рішення для керування енергією, у якому ми зберігаємо кожен крок відокремленим. Ви можете відстежувати конвеєри та експерименти МЛ в інтерфейсі користувача Studio. Ми також продемонстрували інший підхід до розгортання: після схвалення моделі в реєстрі моделей лямбда-функція, що містить схвалену модель, створюється автоматично через CodePipeline.

Якщо ви зацікавлені в дослідженні конвеєра MLOps на AWS або рішення для сталого управління енергією, перегляньте GitHub сховище і розгорніть стек у вашому власному середовищі AWS!


Про авторів

Розгорніть рішення MLOps, яке розміщує ваші кінцеві точки моделі в AWS Lambda PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Лоренс ван дер Маас є спеціалістом з обробки даних в AWS Professional Services. Він тісно співпрацює з клієнтами, які створюють свої рішення для машинного навчання на AWS, і захоплюється тим, як машинне навчання змінює світ, яким ми його знаємо.

Розгорніть рішення MLOps, яке розміщує ваші кінцеві точки моделі в AWS Lambda PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Кангкан Ван є консультантом зі штучного інтелекту та ML у AWS Professional Services. Вона має великий досвід розгортання рішень AI/ML у сфері охорони здоров’я та наук про життя. Їй також подобається допомагати корпоративним клієнтам створювати масштабовані платформи штучного інтелекту/ML, щоб пришвидшити хмарну подорож їхніх спеціалістів з обробки даних.

Розгорніть рішення MLOps, яке розміщує ваші кінцеві точки моделі в AWS Lambda PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Селена Таббара є спеціалістом з обробки даних в AWS Professional Services. Вона щодня працює зі своїми клієнтами, щоб досягти бізнес-результатів за допомогою інновацій на платформах AWS. У вільний час Селена захоплюється грою на піаніно, пішим туризмом і переглядом баскетболу.

Майкл Волнер Майкл Волнер є старшим консультантом, який спеціалізується на штучному інтелекті та ML у AWS Professional Services. Майкл прагне дати клієнтам можливість стати AWSome на їхній хмарній подорожі. Він у захваті від виробництва й із задоволенням допомагає трансформувати виробничий простір за допомогою даних.

Часова мітка:

Більше від AWS Машинне навчання