Сьогодні ми запускаємо Amazon SageMaker висновок на AWS Гравітон щоб ви могли скористатися перевагами ціни, продуктивності та ефективності чіпів Graviton.
Примірники на основі Graviton доступні для виведення моделі в SageMaker. Ця публікація допоможе вам перенести та розгорнути робоче навантаження логічного висновку машинного навчання (ML) із x86 на екземпляри на основі Graviton у SageMaker. Ми надаємо покроковий посібник із розгортання вашої навченої моделі SageMaker на примірниках на основі Graviton, охоплюємо найкращі методи роботи з Graviton, обговорюємо переваги ціни та продуктивності та демонструємо, як розгорнути модель TensorFlow на примірнику SageMaker Graviton.
Короткий огляд Гравітону
AWS Graviton — це сімейство процесорів, розроблених AWS, які забезпечують найкраще співвідношення ціна-продуктивність і є більш енергоефективними, ніж аналоги x86. Процесори AWS Graviton 3 є останніми в сімействі процесорів Graviton і оптимізовані для робочих навантажень ML, включаючи підтримку bfloat16 і подвійну пропускну здатність Single Instruction Multiple Data (SIMD). У поєднанні цих двох функцій Graviton 3 може забезпечити до трьох разів кращу продуктивність порівняно з примірниками Graviton 2. Graviton 3 також споживає до 60% менше енергії за такої ж продуктивності, як і порівняння Обчислювальна хмара Amazon Elastic (Amazon EC2). Це чудова функція, якщо ви хочете зменшити свій вуглецевий слід і досягти цілей сталого розвитку.
Огляд рішення
Щоб розгорнути свої моделі в екземплярах Graviton, ви або використовуєте Контейнери глибокого навчання AWS or приносити свої контейнери сумісний з архітектурою Arm v8.2.
Перехід (або нове розгортання) ваших моделей з інстанцій на базі x86 до інстансів Graviton простий, оскільки AWS надає контейнери для розміщення моделей із PyTorch, TensorFlow, Scikit-learn і XGBoost, а моделі не залежать від архітектури. Тим не менше, якщо ви бажаєте принести власні бібліотеки, ви також можете це зробити, просто переконайтеся, що ваш контейнер створено з середовищем, яке підтримує архітектуру Arm64. Для отримання додаткової інформації див Створення власного контейнера алгоритму.
Вам потрібно виконати три кроки, щоб розгорнути вашу модель:
- Створіть модель SageMaker: серед інших параметрів вона міститиме інформацію про розташування файлу моделі, контейнер, який використовуватиметься для розгортання, і розташування сценарію висновку. (Якщо у вас є існуюча модель, уже розгорнута в екземплярі логічного висновку на основі x86, ви можете пропустити цей крок.)
- Створіть конфігурацію кінцевої точки: вона міститиме інформацію про тип екземпляра, який ви хочете використовувати для кінцевої точки (наприклад, ml.c7g.xlarge для Graviton3), назву моделі, яку ви створили на кроці 1, і кількість екземплярів на кінцева точка.
- Запустіть кінцеву точку з конфігурацією кінцевої точки, створеною на кроці 2.
Передумови
Перш ніж почати, враховуйте наступні передумови:
- Виконайте передумови, як зазначено в Передумови.
- Ваша модель має бути на основі PyTorch, TensorFlow, XGBoost або Scikit-learn. У наведеній нижче таблиці підсумовано версії, які підтримуються на момент написання цієї статті. Для отримання останніх оновлень див Контейнери SageMaker Framework (лише підтримка SM).
. Python TensorFlow PyTorch Scikit-Learn XGBoost Підтримувані версії 3.8 2.9.1 1.12.1 1.0-1 1.3-1 до 1.5-1 - Сценарій висновку зберігається в Служба простого зберігання Amazon (Amazon S3).
У наступних розділах ми проведемо вас через кроки розгортання.
Створіть модель SageMaker
Якщо у вас є існуюча модель, яка вже розгорнута в екземплярі висновку на основі x86, ви можете пропустити цей крок. В іншому випадку виконайте такі кроки, щоб створити модель SageMaker:
- Знайдіть модель, яку ви зберігали у відрі S3. Скопіюйте URI.
Ви використовуєте модель URI пізніше вMODEL_S3_LOCATION
. - Визначте версію фреймворку та версію Python, які використовувалися під час навчання моделі.
Вам потрібно вибрати контейнер зі списку доступних контейнерів AWS Deep Learning Containers для вашого фреймворку та версії Python. Для отримання додаткової інформації див Представляємо зображення мультиархітектурних контейнерів для Amazon ECR. - Знайдіть URI сценарію висновку Python у сегменті S3 (загальна назва файлу:
inference.py
).
URI сценарію висновку потрібен уINFERENCE_SCRIPT_S3_LOCATION
. - За допомогою цих змінних ви можете викликати API SageMaker за допомогою такої команди:
Ви також можете створювати зображення з кількома архітектурами та використовувати те саме зображення, але з різними тегами. Ви можете вказати, на якій архітектурі буде розгорнуто ваш екземпляр. Для отримання додаткової інформації див Представляємо зображення мультиархітектурних контейнерів для Amazon ECR.
Створіть конфігурацію кінцевої точки
Після створення моделі вам потрібно створити конфігурацію кінцевої точки, виконавши таку команду (зверніть увагу на тип екземпляра, який ми використовуємо):
На наступному знімку екрана показано деталі конфігурації кінцевої точки на консолі SageMaker.
Запустіть кінцеву точку
За допомогою конфігурації кінцевої точки, створеної на попередньому кроці, ви можете розгорнути кінцеву точку:
Зачекайте, доки буде розгорнуто кінцеву точку моделі. Прогнози можна запитувати так само, як ви запитуєте прогнози для кінцевих точок, розгорнутих в екземплярах на базі x86.
На наступному знімку екрана показано вашу кінцеву точку на консолі SageMaker.
Що підтримується
SageMaker надає оптимізовані для продуктивності глибокі контейнери Graviton для фреймворків TensorFlow і PyTorch. Ці контейнери підтримують комп’ютерне бачення, обробку природної мови, рекомендації та загальні випадки використання глибокого та широкого виведення на основі моделі. Окрім контейнерів глибокого навчання, SageMaker також надає контейнери для класичних фреймворків ML, таких як XGBoost і Scikit-learn. Контейнери двійково сумісні між екземплярами c6g/m6g і c7g, тому перенесення програми логічного висновку з одного покоління в інше відбувається без проблем.
C6g/m6g підтримує fp16 (плаваюче значення половинної точності) і для сумісних моделей забезпечує еквівалентну або кращу продуктивність порівняно з примірниками c5. C7g значно підвищує продуктивність ML завдяки подвоєнню ширини SIMD і підтримці bfloat-16 (bf16), яка є найбільш економічно ефективною платформою для запуску ваших моделей.
І c6g/m6g, і c7g забезпечують хорошу продуктивність для класичного машинного навчання (наприклад, XGBoost) порівняно з іншими примірниками ЦП у SageMaker. Підтримка Bfloat-16 на c7g дозволяє ефективно розгортати навчені моделі bf16 або AMP (Automatic Mixed Precision). Обчислювальна бібліотека Arm (ACL) на Graviton надає ядра bfloat-16, які можуть прискорити навіть оператори fp32 через швидкий математичний режим без квантування моделі.
Рекомендовані найкращі практики
На екземплярах Graviton кожен vCPU є фізичним ядром. Немає конкуренції за загальні ресурси ЦП (на відміну від SMT), а масштабування продуктивності робочого навантаження є лінійним із кожним додаванням vCPU. Тому рекомендується використовувати пакетний висновок, коли це дозволяє сценарій використання. Це дозволить ефективно використовувати vCPU шляхом паралельної обробки пакета на кожному фізичному ядрі. Якщо пакетний висновок неможливий, потрібен оптимальний розмір екземпляра для даного корисного навантаження, щоб гарантувати, що накладні витрати на планування потоків ОС не переважують обчислювальну потужність, яка постачається з додатковими vCPU.
TensorFlow поставляється з власними ядрами за замовчуванням, тому рекомендується перейти на OneDNN із ACL, щоб отримати найбільш оптимізовану систему виведення. Під час запуску служби-контейнера можна ввімкнути бекенд OneDNN і швидкий математичний режим bfloat-16:
Попередня команда обслуговування містить стандартну модель resnet50 із двома важливими конфігураціями:
Їх можна передати до контейнера висновків у такий спосіб:
Приклад розгортання
У цьому дописі ми покажемо вам, як розгорнути модель TensorFlow, навчену в SageMaker, на екземплярі SageMaker на базі Graviton.
Ви можете запустити зразок коду в екземплярі блокнота SageMaker або Студія Amazon SageMaker блокнот або блокнот Jupyter у локальному режимі. Вам потрібно отримати роль виконання SageMaker, якщо ви використовуєте блокнот Jupyter у локальному режимі.
У наступному прикладі розглядається набір даних CIFAR-10. Ви можете наслідувати приклад блокнота з прикладів SageMaker GitHub репо щоб відтворити модель, яка використовується в цій публікації. Ми використовуємо навчену модель і cifar10_keras_main.py Сценарій Python для висновків.
Модель зберігається у відрі S3: s3://aws-ml-blog/artifacts/run-ml-inference-on-graviton-based-instances-with-amazon-sagemaker/model.tar.gz
Команда cifar10_keras_main.py
сценарій, який можна використовувати для висновку, зберігається за адресою:s3://aws-ml-blog/artifacts/run-ml-inference-on-graviton-based-instances-with-amazon-sagemaker/script/cifar10_keras_main.py
Ми використовуємо us-east-1
Регіонуйте та розгорніть модель на мл.c7g.xlarge Graviton. Виходячи з цього, URI нашого контейнера глибокого навчання AWS є 763104351884.dkr.ecr.us-east-1.amazonaws.com/tensorflow-inference-graviton:2.9.1-cpu-py38-ubuntu20.04-sagemaker
- Налаштуйте за допомогою такого коду:
- Завантажте набір даних для тестування кінцевої точки:
- Створіть конфігурацію моделі та кінцевої точки та розгорніть кінцеву точку:
- За бажанням ви можете додати свій сценарій висновку
Environment
increate_model
якщо ви спочатку не додали його як артефакт до своєї моделі SageMaker під час навчання:Вам потрібно почекати кілька хвилин, поки відбудеться розгортання.
- Перевірте статус кінцевої точки за допомогою такого коду:
Ви також можете перевірити Консоль управління AWS щоб побачити, коли ваша модель розгортається.
- Налаштуйте середовище виконання для виклику кінцевих точок:
Тепер ми готуємо корисне навантаження для виклику кінцевої точки. Ми використовуємо той самий тип зображень, що й для навчання моделі. Їх було завантажено на попередніх етапах.
- Передайте корисне навантаження на тензори та встановіть правильний формат, який очікує модель. Для цього прикладу ми просимо лише одне передбачення.
Ми отримуємо результат моделі у вигляді масиву.
- Ми можемо перетворити цей результат на ймовірності, якщо застосувати до нього softmax:
Очистити ресурси
Послуги, задіяні в цьому рішенні, несуть витрати. Коли ви закінчите використовувати це рішення, очистіть такі ресурси:
Порівняння ціни та якості
Примірники на базі Graviton пропонують найнижчу ціну та найкращу цінову продуктивність порівняно з примірниками на базі x86. Подібно до примірників EC2, кінцеві точки висновку SageMaker з примірниками ml.c6g (Graviton 2) пропонують на 20% нижчу ціну порівняно з примірниками ml.c5, а примірники Graviton 3 ml.c7g на 15% дешевші за примірники ml.c6. Для отримання додаткової інформації див Ціни на Amazon SageMaker.
Висновок
У цій публікації ми продемонстрували нещодавно запущену можливість SageMaker для розгортання моделей в екземплярах логічного висновку на основі Graviton. Ми надали вам вказівки щодо найкращих практик і коротко обговорили переваги нового типу інференційних екземплярів у співвідношенні ціни та продуктивності.
Щоб дізнатися більше про Graviton, див Процесор AWS Graviton. Ви можете почати роботу з екземплярами EC2 на основі AWS Graviton на консолі Amazon EC2 і звернувшись до Технічний посібник AWS Graviton. Ви можете розгорнути кінцеву точку моделі Sagemaker для висновків на Graviton за допомогою зразка коду в цій публікації блогу.
Про авторів
Віктор Харамілло, PhD, є старшим інженером з машинного навчання в AWS Professional Services. До роботи в AWS він був професором університету та дослідником у сфері прогнозного технічного обслуговування. У вільний час він із задоволенням їздить на мотоциклі та майструє мотоцикли своїми руками.
Змнако Аврахман, доктор філософії, є менеджером практики, ML SME та членом спільноти машинного навчання Technical Field Community (TFC) в Amazon Web Services. Він допомагає клієнтам використовувати потужність хмари, щоб отримати цінність із своїх даних за допомогою аналізу даних і машинного навчання.
Суніта Надампаллі є менеджером з розробки програмного забезпечення в AWS. Вона керує оптимізацією продуктивності програмного забезпечення Graviton для робочих навантажень, пов’язаних із машинним керуванням, HPC і мультимедійними навантаженнями. Вона захоплена розробкою з відкритим вихідним кодом і розробкою економічно ефективних програмних рішень за допомогою SoC Arm.
Джона Лю є інженером з розробки програмного забезпечення в команді Amazon SageMaker. Її поточна робота зосереджена на допомозі розробникам ефективно розміщувати моделі машинного навчання та покращувати ефективність висновків. Вона захоплена аналізом просторових даних і використанням ШІ для вирішення суспільних проблем.
Алан Тан є старшим менеджером із продуктів у SageMaker, керуючи зусиллями з виведення великих моделей. Він захоплений застосуванням машинного навчання в галузі аналітики. Поза роботою він любить прогулянки на природі.
- AI
- ai мистецтво
- AI арт генератор
- ai робот
- Amazon SageMaker
- штучний інтелект
- сертифікація штучного інтелекту
- штучний інтелект у банківській справі
- робот зі штучним інтелектом
- роботи зі штучним інтелектом
- програмне забезпечення для штучного інтелекту
- AMI для глибокого навчання AWS
- AWS Машинне навчання
- передового досвіду
- blockchain
- блокчейн конференція AI
- coingenius
- розмовний штучний інтелект
- крипто конференція ai
- dall's
- глибоке навчання
- у вас є гугл
- навчання за допомогою машини
- plato
- платон ai
- Інформація про дані Платона
- Гра Платон
- PlatoData
- platogaming
- масштаб ai
- синтаксис
- Технічні інструкції
- Tensorflow на AWS
- зефірнет