Сьогодні десятки тисяч клієнтів створюють, навчають і розгортають моделі машинного навчання (ML) за допомогою Amazon SageMaker для роботи програм, які мають потенціал для переосмислення свого бізнесу та взаємодії з клієнтами. Протягом останніх кількох років ці моделі ML збільшувалися в розмірах і ускладнювалися, що призвело до найсучаснішої точності в ряді завдань, а також збільшило час на навчання від днів до тижнів. У результаті клієнти повинні масштабувати свої моделі на сотнях і тисячах прискорювачів, що робить їхнє навчання дорожчим.
SageMaker — це повністю керована служба ML, яка допомагає розробникам і дослідникам даних легко створювати, навчати та розгортати моделі ML. SageMaker уже пропонує найширший і найглибший вибір обчислювальних пропозицій із апаратними прискорювачами для навчання ML, у тому числі G5 (Nvidia A10G) екземпляри та P4d (Nvidia A100) екземпляри.
Зростаючі вимоги до обчислень вимагають швидшої та економічно ефективної обчислювальної потужності. Щоб ще більше скоротити час навчання моделі та дозволити фахівцям ML працювати швидше, AWS впроваджує інновації в чіпи, сервери та підключення до центру обробки даних. Нові екземпляри Trn1 на основі AWS Trainium чіпи пропонують найкращу ціну-продуктивність і найшвидше навчання моделям ML на AWS, забезпечуючи до 50% нижчу вартість навчання моделей глибокого навчання порівняно з порівнянними екземплярами на базі GPU без будь-якого зниження точності.
У цій публікації ми покажемо, як ви можете максимізувати свою продуктивність і зменшити витрати, використовуючи екземпляри Trn1 із SageMaker.
Огляд рішення
Навчальні завдання SageMaker підтримують екземпляри ml.trn1 на базі чіпів Trainium, спеціально створених для високопродуктивних програм навчання ML у хмарі. Ви можете використовувати екземпляри ml.trn1 на SageMaker для навчання обробки природної мови (NLP), комп’ютерного зору та моделей рекомендацій у широкий набір додатків, як-от розпізнавання мовлення, рекомендації, виявлення шахрайства, класифікація зображень і відео та прогнозування. Екземпляри ml.trn1 містять до 16 чіпів Trainium, які є чіпом ML другого покоління, створеним AWS після AWS Inferentia. Примірники ml.trn1 є першими Обчислювальна хмара Amazon Elastic (Amazon EC2) із пропускною спроможністю до 800 Гбіт/с адаптера еластичної тканини (EFA). Для ефективного паралелізму даних і моделей кожен екземпляр ml.trn1.32xl має 512 ГБ пам’яті з високою пропускною здатністю, забезпечує до 3.4 петафлопс обчислювальної потужності FP16/BF16 і включає в себе NeuronLink, неблокуюче міжсистемне з’єднання для внутрішнього екземпляра з високою пропускною здатністю. .
Trainium доступний у двох конфігураціях і може використовуватися у Східному (Північна Вірджинія) і Західному (Орегон) регіонах США.
У наведеній нижче таблиці підсумовано функції екземплярів Trn1.
Розмір екземпляра | Трайніум Прискорювачі |
Accelerator пам'ять (ГБ) |
vCPU | Екземпляр пам'ять (ГіБ) |
мережу ширина смуги (Гбіт / с) |
EFA і RDMA Підтримайте |
trn1.2xlarge | 1 | 32 | 8 | 32 | До 12.5 | Немає |
trn1.32xlarge | 16 | 512 | 128 | 512 | 800 | Так |
trn1n.32xlarge (незабаром) | 16 | 512 | 128 | 512 | 1600 | Так |
Давайте розберемося, як використовувати Trainium із SageMaker на простому прикладі. Ми навчимо модель класифікації тексту за допомогою навчання SageMaker і PyTorch за допомогою бібліотеки трансформаторів Hugging Face.
Ми використовуємо набір даних Amazon Reviews, який складається з відгуків із amazon.com. Дані охоплюють період у 18 років і включають приблизно 35 мільйонів оглядів до березня 2013 року. Огляди містять інформацію про продукт і користувача, рейтинги та огляд відкритого тексту. Наступний код є прикладом із AmazonPolarity
набір тестів:
Для цієї публікації ми використовуємо лише поля вмісту та мітки. Поле вмісту – це довільний текстовий огляд, а поле мітки – це двійкове значення, яке містить 1 або 0 для позитивних чи негативних відгуків відповідно.
Для нашого алгоритму ми використовуємо BERT, модель трансформатора, попередньо навчену на великому масиві даних англійською мовою в самоконтрольований спосіб. Ця модель в першу чергу спрямована на точне налаштування завдань, які використовують ціле речення (потенційно замасковане) для прийняття рішень, таких як класифікація послідовності, класифікація маркерів або відповідь на питання.
Деталі реалізації
Почнемо з того, що ближче розглянемо різні компоненти, які беруть участь у навчанні моделі:
- AWS Trainium – За своєю суттю кожен Екземпляр Trainium має вбудовані пристрої Trainium. Trn1.2xlarge має 1 пристрій Trainium, а Trn1.32xlarge — 16 пристроїв Trainium. Кожен пристрій Trainium складається з комп’ютера (2 NeuronCore-v2), 32 ГБ пам’яті пристрою HBM і NeuronLink для швидкого зв’язку між пристроями. Кожен NeuronCore-v2 складається з повністю незалежного гетерогенного обчислювального блоку з окремими механізмами (Tensor/Vector/Scalar/GPSIMD). GPSIMD — це повністю програмовані процесори загального призначення, які можна використовувати для впровадження спеціальних операторів і запуску їх безпосередньо на механізмах NeuronCore.
- Навчання Amazon SageMaker – SageMaker забезпечує повністю керований досвід навчання, щоб легко навчати моделі, не турбуючись про інфраструктуру. Коли ви використовуєте SageMaker Training, він виконує все необхідне для навчальної роботи, як-от код, контейнер і дані, в обчислювальній інфраструктурі, відокремленій від середовища виклику. Це дозволяє нам проводити експерименти паралельно та швидко повторювати. SageMaker надає a Python SDK відкрити навчальні робочі місця. У прикладі в цій публікації використовується SageMaker Python SDK для запуску навчального завдання за допомогою Trainium.
- AWS нейрон – Оскільки Trainium NeuronCore має власний обчислювальний механізм, нам потрібен механізм для компіляції нашого навчального коду. The AWS нейрон компілятор бере код, написаний на Pytorch/XLA, і оптимізує його для роботи на пристроях Neuron. Компілятор Neuron інтегрований як частина контейнера глибокого навчання, який ми будемо використовувати для навчання нашої моделі.
- PyTorch/XLA - Це Пакет Python використовує компілятор глибокого навчання XLA для підключення середовища глибокого навчання PyTorch і хмарних прискорювачів, таких як Trainium. Для створення нової мережі PyTorch або перетворення існуючої для роботи на пристроях XLA потрібно лише кілька рядків коду, специфічного для XLA. Ми побачимо для нашого випадку використання, які зміни нам потрібно внести.
- Розподілене навчання – Для ефективного проведення навчання на кількох NeuronCores нам потрібен механізм для розподілу навчання в доступних NeuronCores. SageMaker підтримує torchrun з примірниками Trainium, які можна використовувати для запуску кількох процесів, еквівалентних кількості NeuronCores у кластері. Це робиться шляхом передачі параметра розподілу в оцінювач SageMaker таким чином, який запускає паралельне розподілене навчання даних, де та сама модель завантажується в різні NeuronCores, які обробляють окремі пакети даних:
Для роботи на Trainium потрібні зміни в сценарії
Давайте розглянемо зміни коду, необхідні для адаптації звичайного сценарію PyTorch на основі GPU для запуску на Trainium. На високому рівні нам потрібно внести такі зміни:
- Замініть пристрої GPU на пристрої Pytorch/XLA. Оскільки ми використовуємо розповсюдження смолоскипів, нам потрібно ініціалізувати навчання за допомогою XLA як пристрою таким чином:
- Ми використовуємо розподілену серверну частину PyTorch/XLA, щоб поєднати розподілені API PyTorch із семантикою зв’язку XLA.
- Ми використовуємо PyTorch/XLA MpDeviceLoader для конвеєрів прийому даних. MpDeviceLoader допомагає підвищити продуктивність, перекриваючи три кроки: трасування, компіляцію та пакетне завантаження даних на пристрій. Нам потрібно обернути завантажувач даних PyTorch із MpDeviceDataLoader наступним чином:
- Виконайте крок оптимізації за допомогою API, наданого XLA, як показано в наступному коді. Це консолідує градієнти між ядрами та видає покрокове обчислення пристрою XLA.
- Зіставте API CUDA (якщо такі є) на загальні API PyTorch.
- Замініть злиті оптимізатори CUDA (якщо такі є) загальними альтернативами PyTorch.
Повний приклад, який навчає модель класифікації тексту за допомогою SageMaker і Trainium, доступний у наступному GitHub репо. Файл блокнота Точне налаштування Transformers для побудови класифікаційних моделей за допомогою SageMaker і Trainium.ipynb є точкою входу та містить покрокові інструкції щодо проведення навчання.
Контрольні тести
У тесті ми запустили два навчальні завдання: одне на ml.trn1.32xlarge, а інше на ml.p4d.24xlarge з однаковим розміром партії, навчальними даними та іншими гіперпараметрами. Під час навчальних завдань ми виміряли оплачуваний час навчальних завдань SageMaker і розрахували співвідношення ціни та ефективності, помноживши час, необхідний для виконання навчальних завдань у годинах, на ціну за годину для типу екземпляра. Ми вибрали найкращий результат для кожного типу екземпляра з кількох виконань завдань.
У наведеній нижче таблиці наведено підсумки наших порівняльних результатів.
Model | Тип екземпляра | Ціна (за вузол * година) | Пропускна здатність (ітерацій/с) | ValidationAccuracy | Оплачуваний час (сек) | Вартість навчання в $ |
Базова класифікація BERT | ml.trn1.32xвеликий | 24.725 | 6.64 | 0.984 | 6033 | 41.47 |
Базова класифікація BERT | ml.p4d.24xlarge | 37.69 | 5.44 | 0.984 | 6553 | 68.6 |
Результати показали, що екземпляр Trainium коштує дешевше, ніж екземпляр P4d, забезпечуючи однакову пропускну здатність і точність під час навчання тієї самої моделі з тими самими вхідними даними та параметрами навчання. Це означає, що екземпляр Trainium забезпечує кращу ціну-продуктивність, ніж екземпляри P4D на основі GPU. На такому простому прикладі ми бачимо, що Trainium пропонує приблизно на 22% швидший час навчання та до 50% нижчу вартість порівняно з інстансами P4d.
Розгорніть навчену модель
Після навчання моделі ми можемо розгорнути її на різних типах екземплярів, таких як CPU, GPU або AWS Inferentia. Ключовий момент, на який слід звернути увагу, полягає в тому, що навчена модель не залежить від спеціалізованого обладнання для розгортання та створення висновків. SageMaker надає механізми для розгортання навченої моделі за допомогою механізмів як у реальному часі, так і в пакетному режимі. Приклад блокнота в сховищі GitHub містить код для розгортання навченої моделі як кінцевої точки реального часу за допомогою екземпляра ml.c5.xlarge (на базі ЦП).
Висновок
У цій публікації ми розглянули, як використовувати Trainium і SageMaker для швидкого налаштування та навчання моделі класифікації, яка дає до 50% економії коштів без шкоди для точності. Ви можете використовувати Trainium для широкого діапазону випадків використання, які включають попереднє навчання або точне налаштування моделей на основі Transformer. Додаткову інформацію про підтримку різних архітектур моделей див Рекомендації щодо відповідності архітектури моделі.
Про авторів
Арун Кумар Локанатха є старшим архітектором рішень ML у команді Amazon SageMaker Service. Він зосереджується на допомозі клієнтам створювати, навчати та переносити робочі навантаження ML на SageMaker у масштабі. Він спеціалізується на глибокому навчанні, особливо в області НЛП і CV. Поза роботою він захоплюється бігом і пішим туризмом.
Марк Ю є інженером-програмістом в AWS SageMaker. Він зосереджується на створенні великомасштабних розподілених систем навчання, оптимізації ефективності навчання та розробці високопродуктивного обладнання для навчання ml, зокрема SageMaker trainium. Марк також має глибокі знання з оптимізації інфраструктури машинного навчання. У вільний час захоплюється пішим туризмом, бігом.
Омрі Фукс є менеджером з розробки програмного забезпечення в AWS SageMaker. Він є технічним керівником, відповідальним за платформу для навчання SageMaker, зосереджуючись на оптимізації ефективності навчання SageMaker і покращенні досвіду навчання. Він захоплюється передовими технологіями машинного навчання та ШІ. У вільний час любить їздити на велосипеді та піші прогулянки.
Гал Ошрі є старшим менеджером із продуктів у команді Amazon SageMaker. Він має 7 років досвіду роботи над інструментами, фреймворками та сервісами машинного навчання.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- Платоблокчейн. Web3 Metaverse Intelligence. Розширені знання. Доступ тут.
- джерело: https://aws.amazon.com/blogs/machine-learning/maximize-performance-and-reduce-your-deep-learning-training-cost-with-aws-trainium-and-amazon-sagemaker/
- :є
- $UP
- 1
- 100
- 7
- 8
- a
- A100
- МЕНЮ
- прискорювачі
- точність
- через
- прийняти
- після
- AI
- алгоритм
- дозволяє
- вже
- альтернативи
- Amazon
- Amazon EC2
- Amazon SageMaker
- Amazon.com
- та
- API
- Інтерфейси
- застосування
- приблизно
- архітектура
- ЕСТЬ
- ПЛОЩА
- AS
- At
- доступний
- AWS
- AWS Inferentia
- Backend
- поганий
- ширина смуги
- база
- BE
- оскільки
- починати
- буття
- еталонний тест
- КРАЩЕ
- Краще
- між
- За
- Великий
- Black
- книга
- BRIDGE
- будувати
- Створюємо
- побудований
- підприємства
- by
- розрахований
- Виклики
- CAN
- випадок
- випадків
- CD
- Центр
- Зміни
- чіп
- Чіпси
- вибір
- класифікація
- ближче
- хмара
- кластер
- код
- COM
- майбутній
- Скоро
- Комунікація
- порівнянний
- складність
- Компоненти
- компрометуючі
- обчислення
- обчислення
- комп'ютер
- Комп'ютерне бачення
- конфігурації
- З'єднуватися
- зв'язок
- Консолідація
- Контейнер
- містить
- зміст
- Core
- Коштувати
- економія на витратах
- рентабельним
- витрати
- центральний процесор
- виготовлений на замовлення
- клієнт
- Клієнти
- передовий
- дані
- Центр обробки даних
- Днів
- рішення
- глибокий
- глибоке навчання
- найглибший
- постачає
- залежний
- розгортання
- розгортання
- БУДУВАТИ
- Виявлення
- розробників
- розвивається
- розробка
- пристрій
- прилади
- різний
- безпосередньо
- поширювати
- розподілений
- розподілене навчання
- розподіл
- Падіння
- під час
- кожен
- легко
- Схід
- ефективний
- продуктивно
- включіть
- включений
- Кінцева точка
- двигун
- інженер
- Двигуни
- англійська
- Весь
- Навколишнє середовище
- Еквівалент
- особливо
- Ефір (ETH)
- все
- приклад
- існуючий
- дорогий
- досвід
- Досліди
- тканину
- Face
- мода
- ШВИДКО
- швидше
- швидкий
- особливість
- риси
- Показуючи
- жінка
- кілька
- поле
- Поля
- філе
- Перший
- відповідати
- фокусується
- фокусування
- після
- слідує
- для
- Рамки
- каркаси
- шахрайство
- виявлення шахрайства
- Безкоштовна
- від
- повністю
- далі
- Головна мета
- покоління
- GitHub
- дає
- добре
- GPU
- градієнти
- великий
- апаратні засоби
- Мати
- має
- допомогу
- допомагає
- прихований
- Високий
- висока продуктивність
- піший туризм
- ГОДИННИК
- Як
- How To
- HTML
- HTTP
- HTTPS
- Сотні
- i
- зображення
- здійснювати
- удосконалювати
- поліпшення
- in
- поглиблений
- включати
- У тому числі
- зростаючий
- незалежний
- інформація
- Інфраструктура
- інноваційний
- вхід
- екземпляр
- інструкції
- інтегрований
- залучати
- залучений
- питання
- IT
- ЙОГО
- робота
- Джобс
- JPG
- ключ
- вбити
- знання
- етикетка
- мова
- великий
- масштабний
- останній
- запуск
- лідер
- вивчення
- Led
- рівень
- бібліотека
- життя
- як
- ліній
- погрузка
- подивитися
- подивився
- любов
- машина
- навчання за допомогою машини
- made
- зробити
- РОБОТИ
- вдалося
- менеджер
- березня
- позначити
- Матерія
- Максимізувати
- засоби
- механізм
- пам'ять
- мігрувати
- мільйона
- ML
- модель
- Моделі
- настрою
- більше
- множинний
- множення
- Природний
- Природна мова
- Обробка природних мов
- Необхідність
- необхідний
- негативний
- мережу
- Нові
- nlp
- вузол
- ноутбук
- номер
- Nvidia
- of
- пропонувати
- Пропозиції
- Пропозиції
- Старий
- on
- ONE
- Оператори
- оптимізація
- Оптимізує
- оптимізуючий
- Орегон
- Інше
- поза
- власний
- Паралельні
- параметр
- параметри
- частина
- Проходження
- пристрасть
- продуктивність
- period
- Простий текст
- платформа
- plato
- Інформація про дані Платона
- PlatoData
- Play
- точка
- позитивний
- пошта
- потенціал
- потенційно
- влада
- Харчування
- price
- в першу чергу
- процес
- процеси
- обробка
- Обробна потужність
- процесори
- Product
- менеджер по продукції
- Production
- забезпечує
- забезпечення
- мета
- Натискання
- Python
- піторх
- питання
- швидко
- RAIN
- діапазон
- рейтинги
- реального часу
- визнання
- Рекомендація
- зменшити
- райони
- регулярний
- вимагається
- Вимога
- Вимагається
- відповідальний
- результат
- результати
- огляд
- Відгуки
- прогін
- біг
- s
- мудрець
- то ж
- Економія
- говорить
- шкала
- Вчені
- Sdk
- SEC
- обраний
- семантика
- старший
- пропозиція
- окремий
- Послідовність
- Сервери
- обслуговування
- Послуги
- комплект
- Показувати
- показаний
- аналогічний
- простий
- Розмір
- Софтвер
- розробка програмного забезпечення
- Інженер-програміст
- Рішення
- Скоро
- прольоти
- спеціалізований
- спеціалізується
- мова
- Розпізнавання мови
- починається
- впроваджений
- Крок
- заходи
- Як і раніше
- такі
- підтримка
- Опори
- Systems
- таблиця
- приймає
- взяття
- завдання
- команда
- технічний
- Технологія
- тест
- Класифікація тексту
- Що
- Команда
- Площа
- їх
- Їх
- Ці
- річ
- тисячі
- три
- пропускна здатність
- час
- times
- назва
- до
- знак
- інструменти
- факел
- Простеження
- поїзд
- навчений
- Навчання
- поїзда
- Трансформатори
- викликати
- Типи
- розуміти
- блок
- us
- використання
- використання випадку
- користувач
- значення
- різний
- Відео
- Віргінія
- бачення
- ГОЛОСИ
- тижня
- West
- Що
- який
- білий
- ВООЗ
- широкий
- Широкий діапазон
- волі
- з
- без
- Work
- робочий
- обернути
- письмовий
- років
- молодий
- вашу
- зефірнет