С появлением высокоскоростных мобильных сетей 5G предприятиям легче, чем когда-либо, позиционироваться, имея возможность использовать конвергенцию телекоммуникационных сетей и облака. На сегодняшний день машинное обучение (ML) на периферии является одним из наиболее известных вариантов использования, что позволяет предприятиям развертывать модели ML ближе к своим конечным клиентам, чтобы уменьшить задержку и повысить скорость отклика своих приложений. В качестве примера, умные решения для площадок могут использовать компьютерное зрение почти в реальном времени для анализа толпы в сетях 5G, при этом минимизируя инвестиции в локальное аппаратное сетевое оборудование. С помощью обработки естественного языка (NLP), систем рекомендаций в реальном времени и обнаружения мошенничества розничные продавцы могут обеспечить более удобный опыт работы на ходу. Даже наземная и воздушная робототехника может использовать машинное обучение, чтобы разблокировать более безопасные и автономные операции.
Чтобы уменьшить барьер для входа ML на периферии, мы хотели продемонстрировать пример развертывания предварительно обученной модели из Создатель мудреца Амазонки в AWS Длина волны, всего менее 100 строк кода. В этом посте мы покажем, как развернуть модель SageMaker в AWS Wavelength, чтобы уменьшить задержку вывода модели для сетевых приложений 5G.
Обзор решения
В быстрорастущей глобальной инфраструктуре AWS AWS Wavelength переносит мощь облачных вычислений и хранилищ на границы сетей 5G, открывая более производительные возможности для мобильных устройств. С помощью AWS Wavelength вы можете расширить свое виртуальное частное облако (VPC) до зон длины волны, соответствующих границе сети оператора связи в 29 городов по всему миру. На следующей диаграмме показан пример этой архитектуры.
Вы можете подписаться на Зоны длин волн в данном Регионе через Консоль управления AWS или Интерфейс командной строки AWS (интерфейс командной строки AWS). Чтобы узнать больше о развертывании геораспределенных приложений на AWS Wavelength, см. Развертывание геораспределенных кластеров Amazon EKS на AWS Wavelength.
Основываясь на основных принципах, рассмотренных в этом посте, мы рассматриваем периферийное машинное обучение как образец рабочей нагрузки для развертывания в AWS Wavelength. В качестве примера рабочей нагрузки мы развертываем предварительно обученную модель из Amazon SageMaker JumpStart.
SageMaker — это полностью управляемый сервис машинного обучения, который позволяет разработчикам легко развертывать модели машинного обучения в своих средах AWS. Хотя AWS предлагает несколько вариантов обучения моделей — от Торговая площадка AWS модели и встроенные алгоритмы SageMaker — существует ряд методов развертывания моделей машинного обучения с открытым исходным кодом.
JumpStart предоставляет доступ к сотням встроенных алгоритмов с предварительно обученными моделями, которые можно легко развернуть на конечных точках SageMaker. JumpStart поддерживает множество популярных вариантов использования, от профилактического обслуживания и компьютерного зрения до автономного вождения и обнаружения мошенничества, с развертыванием в один клик на консоли.
Поскольку SageMaker изначально не поддерживается в Wavelength Zones, мы покажем, как извлечь артефакты модели из региона и повторно развернуть на периферии. Для этого вы используете Амазон Эластик Кубернетес Сервис (Amazon EKS) и группы узлов в зонах длины волны с последующим созданием манифеста развертывания с образом контейнера, сгенерированным JumpStart. Следующая диаграмма иллюстрирует эту архитектуру.
Предпосылки
Чтобы сделать это как можно проще, убедитесь, что в вашей учетной записи AWS включены зоны длины волны. Обратите внимание, что эта интеграция доступна только в us-east-1
и us-west-2
, и вы будете использовать us-east-1
на время демонстрации.
Чтобы подписаться на AWS Wavelength, выполните следующие действия:
- На консоли Amazon VPC выберите Зоны под Настройки , а затем выбрать Восток США (Verizon) / us-east-1-wl1.
- Выберите Управление.
- Выберите Включено.
- Выберите Обновить зоны.
Создайте инфраструктуру AWS Wavelength
Прежде чем мы преобразуем локальную конечную точку вывода модели SageMaker в развертывание Kubernetes, вы можете создать кластер EKS в зоне длины волны. Для этого разверните кластер Amazon EKS с группой узлов AWS Wavelength. Чтобы узнать больше, вы можете посетить это руководство в блоге AWS Containers or Репозиторий Verizon 5GEdgeTutorials для одного такого примера.
Далее, используя Облако AWS9 среду или интерактивную среду разработки (IDE) по выбору, загрузите необходимые пакеты SageMaker и Docker Compose, ключевая зависимость JumpStart.
Создание артефактов модели с помощью JumpStart
Во-первых, убедитесь, что у вас есть Управление идентификацией и доступом AWS (IAM) исполнительная роль для SageMaker. Чтобы узнать больше, посетите Роли SageMaker.
- . этот пример, создайте файл с именем train_model.py, который использует SageMaker Software Development Kit (SDK) для извлечения предварительно созданной модели (замените с именем ресурса Amazon (ARN) вашей роли исполнения SageMaker). В этом файле вы развертываете модель локально, используя
instance_type
атрибут вmodel.deploy()
функция, которая запускает контейнер Docker в вашей среде IDE, используя все необходимые артефакты модели, которые вы определили:
- Далее установите
infer_model_id
на идентификатор модели SageMaker, которую вы хотите использовать.
Полный список см. Встроенные алгоритмы с предварительно обученной таблицей моделей. В нашем примере мы используем модель представления двунаправленного кодировщика от преобразователей (BERT), обычно используемую для обработки естественного языка.
- Запустите
train_model.py
сценарий для извлечения артефактов модели JumpStart и развертывания предварительно обученной модели на локальном компьютере:
Если этот шаг завершится успешно, ваши выходные данные могут выглядеть следующим образом:
В выходных данных вы увидите три артефакта по порядку: базовое изображение для вывода TensorFlow, сценарий вывода, который обслуживает модель, и артефакты, содержащие обученную модель. Хотя вы можете создать собственный образ Docker с этими артефактами, другой подход заключается в том, чтобы позволить локальному режиму SageMaker создать образ Docker для вас. На последующих шагах мы извлекаем образ контейнера, работающий локально, и развертываем его на Реестр Amazon Elastic Container (Amazon ECR), а также отправить артефакт модели отдельно в Простой сервис хранения Amazon (Amazon S3).
Преобразование артефактов локального режима в удаленное развертывание Kubernetes
Теперь, когда вы убедились, что SageMaker работает локально, давайте извлечем манифест развертывания из работающего контейнера. Выполните следующие шаги:
Определите расположение манифеста развертывания SageMaker в локальном режиме: для этого выполните поиск в корневом каталоге любых файлов с именами docker-compose.yaml
.
docker_manifest=$( find /tmp/tmp* -name "docker-compose.yaml" -printf '%T+ %pn' | sort | tail -n 1 | cut -d' ' -f2-)
echo $docker_manifest
Определите расположение артефактов модели локального режима SageMaker. Затем найдите базовый том, подключенный к локальному контейнеру логических выводов SageMaker, который будет использоваться в каждом рабочем узле EKS после загрузки артефакта в Amazon s3.
model_local_volume = $(grep -A1 -w "volumes:" $docker_manifest | tail -n 1 | tr -d ' ' | awk -F: '{print $1}' | cut -c 2-) # Returns something like: /tmp/tmpcr4bu_a7</p>
Создайте локальную копию запущенного контейнера логического вывода SageMaker. Затем мы найдем текущий запущенный образ контейнера, на котором запущена наша модель логического вывода машинного обучения, и создадим локальную копию контейнера. Это гарантирует, что у нас будет собственная копия образа контейнера, которую можно извлечь из Amazon ECR.
# Find container ID of running SageMaker Local container
mkdir sagemaker-container
container_id=$(docker ps --format "{{.ID}} {{.Image}}" | grep "tensorflow" | awk '{print $1}')
# Retrieve the files of the container locally
docker cp $my_container_id:/ sagemaker-container/
Прежде чем действовать на model_local_volume
, который мы отправим в Amazon S3, отправим копию работающего образа Docker, теперь в sagemaker-container
в Amazon Elastic Container Registry. Обязательно замените region
, aws_account_id
, docker_image_id
и my-repository:tag
или следуйте Руководство пользователя Amazon ECR. Кроме того, обязательно запишите окончательный URL-адрес изображения ECR (aws_account_id.dkr.ecr.region.amazonaws.com/my-repository:tag
), который мы будем использовать в развертывании EKS.
Теперь, когда у нас есть образ ECR, соответствующий конечной точке вывода, создайте новую корзину Amazon S3 и скопируйте локальные артефакты SageMaker (model_local_volume
) в это ведро. Параллельно создайте Identity Access Management (IAM), который предоставит инстансам Amazon EC2 доступ для чтения объектов в корзине. Обязательно замените с уникальным глобальным именем для вашей корзины Amazon S3.
Затем, чтобы убедиться, что каждый экземпляр EC2 извлекает копию артефакта модели при запуске, отредактируйте пользовательские данные для рабочих узлов EKS. В сценарии пользовательских данных убедитесь, что каждый узел извлекает артефакты модели с помощью S3 API при запуске. Обязательно замените с уникальным глобальным именем для вашей корзины Amazon S3. Учитывая, что пользовательские данные узла также будут включать сценарий начальной загрузки EKS, полные пользовательские данные могут выглядеть примерно так.
Теперь вы можете проверить существующий манифест докера и перевести его в удобные для Kubernetes файлы манифеста, используя Составить, известный инструмент преобразования. Примечание. Если вы получили сообщение об ошибке совместимости версий, измените version
атрибут в строке 27 файла docker-compose.yml для “2”
.
После запуска Kompose вы увидите четыре новых файла: Deployment
объект, Service
объект, PersistentVolumeClaim
объект и NetworkPolicy
объект. Теперь у вас есть все необходимое, чтобы начать знакомство с Kubernetes на периферии!
Развертывание артефактов модели SageMaker
Убедитесь, что в IDE AWS Cloud9 загружены kubectl и aws-iam-authenticator. Если нет, следуйте инструкциям по установке:
Теперь выполните следующие шаги:
Изменить service/algo-1-ow3nv
объект для переключения типа службы с ClusterIP
в NodePort
. В нашем примере мы выбрали порт 30,007 XNUMX в качестве нашего NodePort
:
Затем вы должны разрешить NodePort в группе безопасности для вашего узла. Для этого получите идентификатор группы безопасности и добавьте порт NodePort в белый список:
Далее измените algo-1-ow3nv-deployment.yaml
манифест для монтирования /tmp/model hostPath
каталог в контейнер. Заменять с изображением ECR, которое вы создали ранее:
С файлами манифеста, которые вы создали из Kompose, используйте kubectl для применения конфигураций к вашему кластеру:
Подключиться к периферийной модели 5G
Чтобы подключиться к вашей модели, выполните следующие действия:
В консоли Amazon EC2 получите IP-адрес оператора рабочего узла EKS или используйте интерфейс командной строки AWS для прямого запроса IP-адреса оператора:
Теперь, когда IP-адрес оператора извлечен, вы можете подключиться к модели напрямую с помощью NodePort. Создайте файл с именем invoke.py
чтобы вызвать модель BERT напрямую, предоставив текстовый ввод, который будет запущен на анализаторе настроений, чтобы определить, был ли тон положительным или отрицательным:
Ваш вывод должен выглядеть следующим образом:
Убирать
Чтобы уничтожить все созданные ресурсы приложения, удалите рабочие узлы AWS Wavelength, плоскость управления EKS и все ресурсы, созданные в VPC. Кроме того, удалите репозиторий ECR, используемый для размещения образа контейнера, корзины S3, используемые для размещения артефактов модели SageMaker, и sagemaker-demo-app-s3 IAM
Политика.
Заключение
В этом посте мы продемонстрировали новый подход к развертыванию моделей SageMaker на границе сети с помощью Amazon EKS и AWS Wavelength. Чтобы узнать о передовых практиках Amazon EKS для AWS Wavelength, см. Развертывание геораспределенных кластеров Amazon EKS на AWS Wavelength. Кроме того, чтобы узнать больше о Jumpstart, посетите Руководство разработчика по Amazon SageMaker JumpStart или Таблица доступных моделей JumpStart.
Об авторах
Роберт Белсон является советником разработчиков в бизнес-подразделении AWS Worldwide Telecom, специализирующимся на граничных вычислениях AWS. Он фокусируется на работе с сообществом разработчиков и крупными корпоративными клиентами для решения их бизнес-задач с помощью автоматизации, гибридных сетей и пограничного облака.
Мохаммед Аль-Мехдар является старшим архитектором решений в бизнес-подразделении Worldwide Telecom в AWS. Его основная задача — помочь клиентам создавать и развертывать рабочие нагрузки телекоммуникационных и корпоративных ИТ на AWS. До прихода в AWS Мохаммед более 13 лет работал в сфере телекоммуникаций и обладает богатым опытом в области LTE Packet Core, 5G, IMS и WebRTC. Мохаммед имеет степень бакалавра в области телекоммуникаций Университета Конкордия.
Эван Кравиц — инженер-программист в Amazon Web Services, работающий над SageMaker JumpStart. Он любит готовить и бегать по Нью-Йорку.
Джастин Сент-Арно является заместителем директора по архитектуре решений в Verizon для государственного сектора с более чем 15-летним опытом работы в ИТ-индустрии. Он является страстным сторонником возможностей граничных вычислений и сетей 5G и является экспертом в разработке инновационных технологических решений, использующих эти технологии. Джастин с особым энтузиазмом относится к возможностям, предлагаемым Amazon Web Services (AWS) в предоставлении передовых решений для его клиентов. В свободное время Джастин любит быть в курсе последних технологических тенденций и делиться своими знаниями и идеями с другими в отрасли.
- SEO-контент и PR-распределение. Получите усиление сегодня.
- Платоблокчейн. Интеллект метавселенной Web3. Расширение знаний. Доступ здесь.
- Источник: https://aws.amazon.com/blogs/machine-learning/deploy-pre-trained-models-on-aws-wavelength-with-5g-edge-using-amazon-sagemaker-jumpstart/
- :является
- 1
- 10
- 100
- 11
- 15 лет
- 5G
- 7
- 8
- 9
- a
- О нас
- Принять
- доступ
- Учетная запись
- через
- Действие
- Дополнительно
- адрес
- приход
- адвокат
- После
- против
- алгоритмы
- Все
- позволяет
- Несмотря на то, что
- всегда
- Amazon
- Amazon EC2
- Создатель мудреца Амазонки
- Amazon SageMaker JumpStart
- Amazon Web Services
- Веб-службы Amazon (AWS)
- аналитика
- и
- Другой
- API
- Применение
- Приложения
- Применить
- подхода
- архитектура
- МЫ
- области
- AS
- Юрист
- Объединение
- At
- автоматизация
- автономный
- доступен
- AWS
- Облако AWS9
- барьер
- Использование темпера с изогнутым основанием
- BE
- начинать
- ЛУЧШЕЕ
- лучшие практики
- Начальная загрузка
- Приносит
- строить
- встроенный
- бизнес
- by
- под названием
- CAN
- возможности
- случаев
- КПП
- CD
- проблемы
- изменение
- выбор
- Выберите
- Город
- клиентов
- ближе
- облако
- Cloud9
- Кластер
- код
- COM
- обычно
- сообщество
- совместимость
- полный
- Вычисление
- компьютер
- Компьютерное зрение
- вычисление
- ПОДТВЕРЖДЕНО
- Свяжитесь
- Консоли
- Container
- Контейнеры
- контроль
- Сближение
- Конверсия
- конвертировать
- Основные
- соответствующий
- может
- Создайте
- создали
- Создающий
- толпа
- В настоящее время
- изготовленный на заказ
- Клиенты
- Порез
- передовой
- данным
- Время
- определенный
- Степень
- доставить
- доставки
- демонстрировать
- убивают
- Зависимость
- развертывание
- развернуть
- развертывание
- развертывание
- уничтожить
- обнаружение
- Определять
- Застройщик
- застройщиков
- развивающийся
- Развитие
- непосредственно
- директор
- обсуждается
- Docker
- скачать
- вождение
- каждый
- Ранее
- легко
- восток
- эхо
- Edge
- краевые вычисления
- эффект
- включить
- включен
- Конечная точка
- инженер
- Проект и
- обеспечивать
- Предприятие
- предприятий
- энтузиазмом
- запись
- Окружающая среда
- средах
- Оборудование
- ошибка
- Даже
- НИКОГДА
- многое
- пример
- выполнение
- существующий
- расширяющийся
- опыт
- Впечатления
- эксперту
- продлить
- извлечение
- Файл
- Файлы
- окончательный
- Найдите
- Фокус
- фокусируется
- следовать
- следует
- после
- Что касается
- набег
- мошенничество
- обнаружение мошенничества
- Бесплатно
- невязкий
- от
- полностью
- функция
- Основы
- генерируется
- получить
- данный
- Глобальный
- ГЛОБАЛЬНО
- земной шар
- Go
- будет
- группы
- Группы
- инструкция
- Гиды
- Аппаратные средства
- упряжь
- Есть
- помощь
- имеет
- кашель
- Как
- How To
- HTML
- HTTP
- HTTPS
- Сотни
- Гибридный
- ID
- Личность
- изображение
- Импортировать
- in
- включают
- Увеличение
- промышленность
- Инфраструктура
- инновационный
- инновационные технологии
- вход
- размышления
- устанавливать
- пример
- интеграции.
- интерактивный
- инвестиций
- IP
- IP-адрес
- IT
- IT индустрия
- присоединение
- JPG
- JSON
- Джастин
- хранение
- Основные
- Вид
- Комплект (SDK)
- знания
- Этикетки
- язык
- большой
- Задержка
- последний
- запуск
- УЧИТЬСЯ
- изучение
- Кредитное плечо
- такое как
- линия
- линий
- Список
- локальным
- в местном масштабе
- расположение
- посмотреть
- машина
- обучение с помощью машины
- Главная
- техническое обслуживание
- сделать
- управляемого
- управление
- Метаданные
- минимизация
- ML
- Мобильный телефон
- мобильные сети
- режим
- модель
- Модели
- изменять
- БОЛЕЕ
- самых
- ГОРУ
- имя
- Названный
- натуральный
- Обработка естественного языка
- Необходимость
- отрицательный
- сеть
- сетевой
- сетей
- сетей
- Новые
- New York
- Нью-Йорк
- следующий
- НЛП
- узел
- узлы
- роман
- номер
- объект
- объекты
- of
- предложенный
- Предложения
- on
- ONE
- с открытым исходным кодом
- Операционный отдел
- Возможность
- Опции
- заказ
- Другое
- выходной
- собственный
- пакеты
- Параллельные
- особенно
- страстный
- путь
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- политика
- Популярное
- расположены
- положительный
- возможное
- После
- мощностью
- практиками
- Predictor
- Предварительный
- частная
- обработка
- видный
- приводит
- обеспечение
- что такое варган?
- Тянет
- Push
- быстро
- Читать
- реального времени
- Рекомендация
- уменьшить
- область
- реестра
- удаленные
- замещать
- Запросы
- реквизит
- ресурс
- Полезные ресурсы
- розничной торговли
- Возвращает
- Роли
- корень
- Run
- Бег
- безопаснее
- sagemaker
- Вывод SageMaker
- SDK
- легко
- Поиск
- сектор
- безопасность
- выбранный
- старший
- служить
- служит
- обслуживание
- Услуги
- набор
- разделение
- должен
- Шоу
- просто
- просто
- So
- Software
- разработка программного обеспечения
- Инженер-программист
- Решение
- Решения
- РЕШАТЬ
- удалось
- специализация
- начинается
- заявление
- Статус:
- Шаг
- Шаги
- диск
- Стратегия
- последующее
- быть успешными
- такие
- Поддержанный
- Поддержка
- Коммутатор
- системы
- TAG
- взять
- снижения вреда
- технологии
- Технологии
- Telco
- телеком
- связь
- Телекоммуникации Инжиниринг
- шаблон
- tensorflow
- который
- Ассоциация
- их
- Эти
- три
- время
- в
- TONE
- инструментом
- специалистов
- трансформеры
- переведите
- Тенденции
- правда
- под
- лежащий в основе
- созданного
- Ед. изм
- Университет
- отпереть
- отпирающий
- новейший
- URL
- использование
- Информация о пользователе
- v1
- ценностное
- разнообразие
- место встречи
- Verizon
- версия
- с помощью
- Виртуальный
- видение
- Войти
- объем
- тома
- стремятся
- Богатство
- Web
- веб-сервисы
- ЧТО Ж
- известный
- будь то
- , которые
- в то время как
- будете
- в
- работник
- работает
- по всему миру
- бы
- YAML
- лет
- Ты
- ВАШЕ
- YouTube
- зефирнет
- зоны