Виконання робочих навантажень машинного навчання (ML) з контейнерами стає звичайною практикою. Контейнери можуть повністю інкапсулювати не лише ваш навчальний код, але й увесь стек залежностей аж до апаратних бібліотек і драйверів. Ви отримуєте узгоджене та портативне середовище розробки ML. З контейнерами масштабування в кластері стає набагато легшим.
Наприкінці 2022 року AWS оголосила про загальну доступність Екземпляри Amazon EC2 Trn1 живлення від AWS Trainium прискорювачі, спеціально створені для високоефективного глибокого навчання. Екземпляри Trn1 забезпечують до 50% економії витрат на навчання порівняно з іншими аналогами Обчислювальна хмара Amazon Elastic (Amazon EC2). Крім того, AWS Neuron SDK був випущений для покращення цього прискорення, надаючи розробникам інструменти для взаємодії з цією технологією, як-от компіляція, час виконання та профіль для досягнення високопродуктивних і економічно ефективних моделей навчання.
Служба еластичних контейнерів Amazon (Amazon ECS) — це повністю керована служба оркестровки контейнерів, яка спрощує розгортання, керування та масштабування контейнерних програм. Просто опишіть свою програму та необхідні ресурси, і Amazon ECS запустить, відстежить і масштабує вашу програму за допомогою гнучких параметрів обчислення з автоматичною інтеграцією до інших допоміжних служб AWS, які потрібні вашій програмі.
У цій публікації ми покажемо вам, як запускати навчальні завдання ML у контейнері за допомогою Amazon ECS для розгортання, керування та масштабування робочого навантаження ML.
Огляд рішення
Ми проведемо вас через такі кроки високого рівня:
- Надання кластера ECS екземплярів Trn1 з AWS CloudFormation.
- Створіть власний образ контейнера за допомогою Neuron SDK і надішліть його Реєстр контейнерів Amazon Elastic (Amazon ECR).
- Створіть визначення завдання, щоб визначити роботу з навчання ML, яку буде виконувати Amazon ECS.
- Запустіть завдання ML на Amazon ECS.
Передумови
Щоб продовжити, передбачається знайомство з основними сервісами AWS, такими як Amazon EC2 і Amazon ECS.
Надання кластера ECS екземплярів Trn1
Щоб почати, запустіть наданий Шаблон CloudFormation, який забезпечить необхідні ресурси, такі як VPC, кластер ECS та екземпляр EC2 Trainium.
Ми використовуємо Neuron SDK для виконання завдань глибокого навчання AWS Inferentia і екземпляри на основі Trainium. Він підтримує вас у вашому наскрізному життєвому циклі розробки ML для створення нових моделей, їх оптимізації та розгортання для виробництва. Щоб навчити свою модель за допомогою Trainium, вам потрібно інсталювати Neuron SDK на примірниках EC2, де виконуватимуться завдання ECS для зіставлення NeuronDevice, пов’язаного з апаратним забезпеченням, а також зображення Docker, яке буде передано в Amazon ECR для доступу до команд. щоб навчити вашу модель.
Стандартні версії Amazon Linux 2 або Ubuntu 20 не постачаються з інстальованими драйверами AWS Neuron. Тому у нас є два різні варіанти.
Перший варіант полягає у використанні Deep Learning Amazon Machine Image (DLAMI), у якому вже встановлено Neuron SDK. Зразок доступний на GitHub репо. Ви можете вибрати DLAMI на основі операційна система. Потім виконайте таку команду, щоб отримати ідентифікатор AMI:
Вихід буде таким:
ami-06c40dd4f80434809
Цей ідентифікатор AMI може змінюватися з часом, тому обов’язково використовуйте команду, щоб отримати правильний ідентифікатор AMI.
Тепер ви можете змінити цей ідентифікатор AMI у сценарії CloudFormation і використовувати готовий до використання Neuron SDK. Для цього шукайте EcsAmiId
in Parameters
:
Другий варіант - створити екземпляр, заповнюючи userdata
під час створення стека. Вам не потрібно встановлювати його, оскільки CloudFormation налаштує це. Для отримання додаткової інформації зверніться до Посібник із налаштування Neuron.
Для цієї публікації ми використовуємо варіант 2, якщо вам потрібно використовувати власне зображення. Виконайте наступні дії:
- Запустіть наданий шаблон CloudFormation.
- для KeyName, введіть назву бажаної пари ключів, і параметри будуть попередньо завантажені. Для цього поста ми використовуємо
trainium-key
. - Введіть назву для свого стека.
- Якщо ви бігаєте в
us-east-1
Регіон, для якого можна зберегти значення ALBName та АЗІди за умовчанням.
Щоб перевірити, яка зона доступності в регіоні має доступний Trn1, виконайте таку команду:
- Вибирати МАЙБУТНІ і закінчіть створення стека.
Коли стек буде завершено, можна переходити до наступного кроку.
Підготуйте та надішліть зображення ECR за допомогою Neuron SDK
Amazon ECR — це повністю керований реєстр контейнерів, який пропонує високопродуктивний хостинг, тож ви можете надійно розгортати образи програм і артефакти будь-де. Ми використовуємо Amazon ECR для зберігання спеціального образу Docker, що містить наші сценарії та пакети Neuron, необхідні для навчання моделі із завданнями ECS, що виконуються на екземплярах Trn1. Ви можете створити репозиторій ECR за допомогою Інтерфейс командного рядка AWS (AWS CLI) або Консоль управління AWS. Для цієї публікації ми використовуємо консоль. Виконайте наступні дії:
- На консолі Amazon ECR створіть нове сховище.
- для Налаштування видимості¸ виберіть приватний.
- для Назва сховища, введіть ім'я.
- Вибирати Створити репозиторій.
Тепер, коли у вас є репозиторій, давайте створимо та надішлемо образ, який можна вбудувати локально (у ваш ноутбук) або в AWS Cloud9 навколишнє середовище. Ми тренуємо модель багатошарового персептрона (MLP). Оригінальний код див Підручник з багаторівневого персептрона.
Він уже сумісний з Neuron, тому вам не потрібно змінювати код.
- 5 Створити Докер-файл який містить команди для встановлення Neuron SDK і навчальних сценаріїв:
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- PlatoAiStream. Web3 Data Intelligence. Розширення знань. Доступ тут.
- Карбування майбутнього з Адріенн Ешлі. Доступ тут.
- Купуйте та продавайте акції компаній, які вийшли на IPO, за допомогою PREIPO®. Доступ тут.
- джерело: https://aws.amazon.com/blogs/machine-learning/scale-your-machine-learning-workloads-on-amazon-ecs-powered-by-aws-trainium-instances/