Разверните решение MLOps, которое размещает конечные точки вашей модели в AWS Lambda PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Разверните решение MLOps, в котором конечные точки вашей модели размещаются в AWS Lambda.

В 2019 году Amazon стала соучредителем залог климата. Целью обязательства является достижение нулевого уровня выбросов углерода к 2040 году. Это на 10 лет раньше, чем указано в Парижском соглашении. Подписавшиеся компании обязуются регулярно отчитываться, устранять выбросы углерода и заслуживать доверия. На момент написания этой статьи 377 компаний подписали климатическое обязательство, и их число продолжает расти.

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

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

В этом посте мы решаем эти проблемы, предоставляя шаблон операций машинного обучения (MLOPs), в котором размещено решение для устойчивого управления энергопотреблением. Решение не зависит от вариантов использования, что означает, что вы можете адаптировать его для своих вариантов использования, изменив модель и данные. Мы покажем вам, как интегрировать модели в Конвейеры Amazon SageMaker, собственный инструмент оркестровки рабочих процессов для создания конвейеров машинного обучения, который запускает задание обучения и, при необходимости, задание обработки с помощью моделирования Монте-Карло. Эксперименты отслеживаются в Эксперименты с Amazon SageMaker. Модели отслеживаются и регистрируются в Реестр моделей Amazon SageMaker. Наконец, мы предоставляем код для развертывания вашей окончательной модели в AWS Lambda функции.

Lambda — это служба вычислений, которая позволяет запускать код без управления серверами или их подготовки. Автоматическое масштабирование Lambda, выставление счетов с оплатой за запрос и простота использования делают его популярным выбором для развертывания для групп специалистов по обработке и анализу данных. С помощью этого поста специалисты по данным могут превратить свою модель в экономичную и масштабируемую лямбда-функцию. Кроме того, Lambda позволяет интегрироваться с AWS IoT Greengrass, который поможет вам создать программное обеспечение, позволяющее вашим устройствам работать с данными, которые они генерируют, как в случае решения для устойчивого управления энергопотреблением.

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

Развертываемая нами архитектура (см. следующий рисунок) представляет собой подход к машинному обучению, полностью основанный на CI/CD. Элементы разделены, чтобы избежать монолитного решения.

Начнем с верхней левой части диаграммы. Обработка — сборка образа компонент является CI/CD-управляемым AWS CodeCommit репозиторий, который помогает создавать и продвигать Docker контейнер для Реестр Amazon Elastic Container (Амазон ЭКР). Этот контейнер обработки служит первым шагом в нашем конвейере машинного обучения, но он также повторно используется для этапов постобработки. В нашем случае мы применяем моделирование Монте-Карло в качестве постобработки. Обучение – построение имиджа репозиторий, показанный в левом нижнем углу, имеет тот же механизм, что и Обработка блок над ним. Основное отличие состоит в том, что он создает контейнер для обучения модели.

Магистральный трубопровод, Построение модели (конвейер), — это еще один репозиторий CodeCommit, который автоматизирует запуск конвейеров SageMaker. Этот конвейер автоматизирует и объединяет предварительную обработку данных, обучение модели, отслеживание показателей модели в SageMaker Experiments, постобработку данных и каталогизацию модели в реестре моделей SageMaker.

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

Предпосылки

Для успешного развертывания нашего решения вам необходимо следующее:

Загрузите репозиторий GitHub

В качестве первого шага клонируйте Репозиторий GitHub на вашу локальную машину. Он содержит следующую структуру папок:

  • развертывание – Содержит код, соответствующий развертыванию
  • мллиб — Содержит код 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 с учетной записью и регионом, в котором вы хотите выполнить развертывание. Затем выполните следующие команды, чтобы перейти в каталог развертывания, создать виртуальную среду, активировать ее, установить необходимые пакеты 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. Работает cdk deploy —require-approval never.
  7. Создает AWS CloudFormation стек через AWS CDK.

Начальный этап развертывания должен занять менее 5 минут. Теперь у вас должно быть четыре репозитория в CodeCommit в регионе, который вы указали через интерфейс командной строки AWS, как показано на диаграмме архитектуры. Кодовый конвейер AWS трубопроводы работают одновременно. modelbuild и modeldeploy конвейеры зависят от успешного запуска обработки и сборки обучающего изображения. 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 Pipelines тесно интегрированы с SageMaker Experiments, и по умолчанию для каждого запуска создаются экспериментальные, пробные и пробные компоненты, если они не существуют.

Утвердить развертывание Lambda в реестре моделей

В качестве следующего шага перейдите к реестру моделей в разделе Ресурсы SageMaker. Здесь вы снова можете найти строку с таким именем, как PROJECT_NAME-PROJECT_ID. Перейдите к единственной существующей модели и утвердите ее. Это автоматически развертывает артефакт модели в контейнере в Lambda.

После того, как вы утвердите свою модель в реестре моделей, 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. Функция Lambda развертывается с помощью AWS CDK, а код выполняется из контейнера Docker из Amazon ECR. Это делается автоматически с помощью AWS CDK.

Ассоциация build.py файл представляет собой файл Python, который в основном использует AWS SDK для Python (Boto3) чтобы получить список доступных пакетов моделей.

Функция get_approved_package возвращает URI Amazon S3 артефакта, который затем загружается, как описано ранее.

После успешного развертывания модели вы можете тестXNUMX его непосредственно на консоли 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.

Заключение

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

Если вы заинтересованы в изучении конвейера MLOps на AWS или решения для устойчивого управления энергопотреблением, ознакомьтесь с Репозиторий GitHub и разверните стек в собственной среде AWS!


Об авторах

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

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

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

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

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

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

Создавайте, делитесь, развертывайте: как бизнес-аналитики и специалисты по обработке и анализу данных сокращают время выхода на рынок с помощью машинного обучения без кода и Amazon SageMaker Canvas

Исходный узел: 1210859
Отметка времени: 10 Марта, 2022