Сьогодні ми раді оголосити про попередній перегляд Amazon SageMaker Profiler, здатність Amazon SageMaker який надає детальний огляд обчислювальних ресурсів AWS, наданих під час навчання моделей глибокого навчання на SageMaker. За допомогою SageMaker Profiler ви можете відстежувати всі дії на процесорах і графічних процесорах, такі як використання ЦП і графічного процесора, виконання ядра на графічних процесорах, запуски ядра на процесорах, операції синхронізації, операції з пам’яттю на графічних процесорах, затримки між запусками ядра та відповідними запусками та передача даних між процесорами та графічними процесорами. У цій публікації ми ознайомимо вас із можливостями SageMaker Profiler.
SageMaker Profiler надає модулі Python для анотування навчальних сценаріїв PyTorch або TensorFlow та активації SageMaker Profiler. Він також пропонує інтерфейс користувача (UI), який візуалізує профіль, статистичний підсумок профільованих подій і часову шкалу навчального завдання для відстеження та розуміння часового зв’язку подій між GPU і CPU.
Необхідність профілювання навчальних робочих місць
З розвитком глибокого навчання (DL) машинне навчання (ML) стало інтенсивним для обчислень і даних, зазвичай вимагаючи багатовузлових кластерів із кількома GPU. У міру того, як сучасні моделі збільшуються в розмірах на трильйони параметрів, їх обчислювальна складність і вартість також швидко зростають. Практики ML мають справлятися зі звичайними проблемами ефективного використання ресурсів під час навчання таких великих моделей. Це особливо очевидно у великих мовних моделях (LLM), які зазвичай мають мільярди параметрів і, отже, потребують великих багатовузлових кластерів GPU для їх ефективного навчання.
Під час навчання цих моделей на великих обчислювальних кластерах ми можемо зіткнутися з проблемами оптимізації обчислювальних ресурсів, такими як вузькі місця вводу-виводу, затримки запуску ядра, обмеження пам’яті та низьке використання ресурсів. Якщо конфігурацію навчального завдання не оптимізовано, ці проблеми можуть призвести до неефективного використання апаратного забезпечення та більш тривалого навчання або неповного проходження навчання, що збільшує загальні витрати та часові рамки для проекту.
Передумови
Нижче наведено передумови для початку використання SageMaker Profiler:
- Домен SageMaker у вашому обліковому записі AWS – Інструкції щодо налаштування домену див Підключіться до домену Amazon SageMaker за допомогою швидкого налаштування. Вам також потрібно додати профілі користувачів домену для окремих користувачів, щоб отримати доступ до програми SageMaker Profiler UI. Для отримання додаткової інформації див Додавання та видалення профілів користувачів домену SageMaker.
- Дозволи – У наведеному нижче списку наведено мінімальний набір дозволів, які слід призначити ролі виконання для використання програми SageMaker Profiler UI:
sagemaker:CreateApp
sagemaker:DeleteApp
sagemaker:DescribeTrainingJob
sagemaker:SearchTrainingJobs
s3:GetObject
s3:ListBucket
Підготуйте та запустіть навчальну роботу за допомогою SageMaker Profiler
Щоб почати записувати роботу ядра на графічних процесорах під час виконання навчального завдання, змініть свій сценарій навчання за допомогою модулів SageMaker Profiler Python. Імпортуйте бібліотеку та додайте start_profiling()
та stop_profiling()
методи визначення початку та кінця профілювання. Ви також можете використовувати додаткові спеціальні анотації, щоб додати маркери в навчальний сценарій для візуалізації діяльності апаратного забезпечення під час певних операцій на кожному кроці.
Існує два підходи, якими ви можете скористатися для профілювання своїх навчальних сценаріїв за допомогою SageMaker Profiler. Перший підхід заснований на профілюванні повних функцій; другий підхід заснований на профілюванні конкретних рядків коду у функціях.
Для профілювання за функціями використовуйте контекстний менеджер smppy.annotate
щоб анотувати повні функції. У наведеному нижче прикладі сценарію показано, як реалізувати диспетчер контексту для обгортання навчального циклу та повних функцій у кожній ітерації:
Vous використання aussi можете оплатити smppy.annotation_begin()
та smppy.annotation_end()
щоб анотувати певні рядки коду у функціях. Для отримання додаткової інформації див документація.
Налаштуйте засіб запуску навчальних завдань SageMaker
Після завершення анотування та налаштування модулів ініціації профайлера збережіть сценарій навчання та підготуйте оцінювач фреймворку SageMaker до навчання за допомогою SDK SageMaker Python.
- Налаштування a
profiler_config
об'єкт за допомогоюProfilerConfig
таProfiler
модулі наступним чином: - Створіть оцінювач SageMaker за допомогою
profiler_config
об’єкт, створений на попередньому кроці. Наступний код показує приклад створення оцінювача PyTorch:
Якщо ви хочете створити оцінювач TensorFlow, імпортуйте sagemaker.tensorflow.TensorFlow
замість цього та вкажіть одну з версій TensorFlow, підтримуваних SageMaker Profiler. Додаткову інформацію про підтримувані фреймворки та типи екземплярів див Підтримувані фреймворки.
- Розпочніть навчальну роботу, запустивши метод підгонки:
Запустіть інтерфейс SageMaker Profiler
Після завершення навчального завдання ви можете запустити інтерфейс SageMaker Profiler, щоб візуалізувати та дослідити профіль навчального завдання. Ви можете отримати доступ до програми SageMaker Profiler UI через цільову сторінку SageMaker Profiler на консолі SageMaker або через домен SageMaker.
Щоб запустити програму SageMaker Profiler UI на консолі SageMaker, виконайте такі дії:
- На консолі SageMaker виберіть Профіль у навігаційній панелі.
- під ПОЧАТИ, виберіть домен, у якому ви хочете запустити програму SageMaker Profiler UI.
Якщо ваш профіль користувача належить лише до одного домену, ви не побачите опцію для вибору домену.
- Виберіть профіль користувача, для якого ви хочете запустити програму SageMaker Profiler UI.
Якщо в домені немає профілю користувача, виберіть Створити профіль користувача. Щоб отримати додаткові відомості про створення нового профілю користувача, див Додавання та видалення профілів користувачів.
- Вибирати Відкрийте Profiler.
Ви також можете запустіть інтерфейс SageMaker Profiler зі сторінки відомостей про домен.
Отримайте статистику від SageMaker Profiler
Коли ви відкриваєте інтерфейс користувача SageMaker Profiler, Виберіть і завантажте профіль відкриється сторінка, як показано на наступному знімку екрана.
Ви можете переглядати список усіх навчальних завдань, надісланих у SageMaker Profiler, і шукати певне навчальне завдання за його назвою, часом створення та статусом виконання (Виконується, Виконано, Помилка, Зупинено або Зупиняється). Щоб завантажити профіль, виберіть навчальну роботу, яку хочете переглянути, і виберіть Навантаження. Назва роботи має з’явитися в Завантажений профіль розділ у верхній частині.
Виберіть назву завдання, щоб створити інформаційну панель і часову шкалу. Зауважте, що коли ви вибираєте роботу, інтерфейс користувача автоматично відкриває інформаційну панель. Ви можете завантажувати та візуалізувати один профіль одночасно. Щоб завантажити інший профіль, ви повинні спочатку вивантажити попередньо завантажений профіль. Щоб вивантажити профіль, виберіть піктограму смітника у вікні Завантажений профіль .
Для цієї публікації ми переглядаємо профіль an АЛЬБЕФ навчальна робота на двох екземплярах ml.p4d.24xlarge.
Після завершення завантаження та вибору навчального завдання відкриється інтерфейс користувача Інформаційна панель сторінку, як показано на наступному знімку екрана.
Ви можете переглянути графіки для ключових показників, а саме час роботи графічного процесора, використання графічного процесора з часом, час роботи ЦП і використання ЦП з часом. Кругова діаграма часу активності графічного процесора показує відсоток активного часу графічного процесора порівняно з часом простою графічного процесора, що дає нам змогу перевірити, чи є графічні процесори активнішими, ніж простої, протягом усієї навчальної роботи. Графік часової шкали використання графічного процесора показує середній рівень використання графічного процесора протягом певного часу на вузол, агрегуючи всі вузли в одній діаграмі. Ви можете перевірити, чи графічні процесори мають незбалансоване робоче навантаження, проблеми з недостатнім використанням, вузькі місця або проблеми з простоєм протягом певних інтервалів часу. Докладніше про інтерпретацію цих показників див документація.
Інформаційна панель надає вам додаткові графіки, зокрема час, витрачений усіма ядрами GPU, час, витрачений 15 найкращими ядрами GPU, кількість запусків усіх ядер GPU та кількість запусків 15 найкращих ядер GPU, як показано на наступному знімку екрана.
Нарешті, інформаційна панель дає змогу візуалізувати додаткові показники, такі як розподіл часу кроків, який є гістограмою, що показує розподіл тривалості кроків на графічних процесорах, і кругову діаграму розподілу точності ядра, яка показує відсоток часу, витраченого на виконання ядер у різних типах даних, таких як FP32, FP16, INT32 та INT8.
Ви також можете отримати кругову діаграму розподілу активності GPU, яка показує відсоток часу, витраченого на дії GPU, такі як запуск ядер, пам’ять (memcpy
та memset
), а також синхронізація (sync
). Ви можете візуалізувати відсоток часу, витраченого на операції з пам’яттю GPU, на круговій діаграмі розподілу операцій з пам’яттю GPU.
Ви також можете створювати власні гістограми на основі спеціального показника, який ви анотували вручну, як описано раніше в цій публікації. Додаючи спеціальну анотацію до нової гістограми, виберіть або введіть назву анотації, яку ви додали в навчальний сценарій.
Інтерфейс шкали часу
Інтерфейс користувача SageMaker Profiler також містить інтерфейс часової шкали, який надає вам детальний огляд обчислювальних ресурсів на рівні операцій і ядер, запланованих на центральних процесорах і запущених на графічних процесорах. Хронологічна шкала організована у вигляді дерева, що дає вам інформацію від рівня хоста до рівня пристрою, як показано на наступному знімку екрана.
Для кожного ЦП ви можете відстежувати лічильники продуктивності ЦП, наприклад clk_unhalted_ref.tsc
та itlb_misses.miss_causes_a_walk
. Для кожного графічного процесора на екземплярі 2x p4d.24xlarge ви можете побачити часову шкалу хоста та часову шкалу пристрою. Запуски ядра відображаються на часовій шкалі хоста, а запуски ядра – на часовій шкалі пристрою.
Ви також можете збільшити масштаб окремих кроків. На наступному знімку екрана ми збільшили масштаб кроку_41. Смуга часової шкали, вибрана на наступному знімку екрана, є AllReduce
операція, важливий етап зв’язку та синхронізації в розподіленому навчанні, працює на GPU-0. Зверніть увагу на знімок екрана, що запуск ядра на хості GPU-0 підключається до запуску ядра в потоці пристрою GPU-0 1, позначеному стрілкою блакитного кольору.
Доступність і міркування
SageMaker Profiler доступний у PyTorch (версії 2.0.0 і 1.13.1) і TensorFlow (версії 2.12.0 і 2.11.1). У таблиці нижче наведено посилання на підтримувані Контейнери глибокого навчання AWS для SageMaker.
Рамки | версія | URI зображення AWS DLC |
PyTorch | 2.0.0 | 763104351884.dkr.ecr.<region>.amazonaws.com/pytorch-training:2.0.0-gpu-py310-cu118-ubuntu20.04-sagemaker |
PyTorch | 1.13.1 | 763104351884.dkr.ecr.<region>.amazonaws.com/pytorch-training:1.13.1-gpu-py39-cu117-ubuntu20.04-sagemaker |
TensorFlow | 2.12.0 | 763104351884.dkr.ecr.<region>.amazonaws.com/tensorflow-training:2.12.0-gpu-py310-cu118-ubuntu20.04-sagemaker |
TensorFlow | 2.11.1 | 763104351884.dkr.ecr.<region>.amazonaws.com/tensorflow-training:2.11.1-gpu-py39-cu112-ubuntu20.04-sagemaker |
Наразі SageMaker Profiler доступний у таких регіонах: Схід США (Огайо, Північна Вірджинія), Захід США (Орегон) та Європа (Франкфурт, Ірландія).
SageMaker Profiler доступний у навчальних екземплярах ml.p4d.24xlarge, ml.p3dn.24xlarge та ml.g4dn.12xlarge.
Повний список підтримуваних фреймворків і версій див документація.
SageMaker Profiler стягує плату після закінчення безкоштовного рівня SageMaker або безкоштовного пробного періоду функції. Для отримання додаткової інформації див Ціни на Amazon SageMaker.
Продуктивність SageMaker Profiler
Ми порівняли накладні витрати SageMaker Profiler із різними профайлерами з відкритим кодом. Базова лінія, використана для порівняння, була отримана під час виконання навчального завдання без профайлера.
Наші ключові висновки показали, що SageMaker Profiler загалом призводив до скорочення оплачуваної тривалості навчання, оскільки він мав менше накладних витрат на наскрізне навчання. Він також генерував менше даних профілювання (у 10 разів менше) порівняно з альтернативами з відкритим кодом. Менші артефакти профілювання, згенеровані SageMaker Profiler, потребують менше місця для зберігання, що також заощаджує витрати.
Висновок
SageMaker Profiler дозволяє отримати детальну інформацію про використання обчислювальних ресурсів під час навчання ваших моделей глибокого навчання. Це може дозволити вам усунути гарячі точки продуктивності та вузькі місця, щоб забезпечити ефективне використання ресурсів, що зрештою знизить витрати на навчання та зменшить загальну тривалість навчання.
Щоб розпочати роботу з SageMaker Profiler, див документація.
Про авторів
Рой Аллела є старшим архітектором рішень спеціаліста зі штучного інтелекту/ML в AWS у Мюнхені, Німеччина. Рой допомагає клієнтам AWS — від невеликих стартапів до великих підприємств — навчати та ефективно розгортати великі мовні моделі на AWS. Рой захоплений проблемами обчислювальної оптимізації та підвищення продуктивності робочих навантажень ШІ.
Сушант Мун є спеціалістом із обробки даних в AWS, Індія, який спеціалізується на супроводі клієнтів у їхніх зусиллях у сфері ШІ/ML. Маючи різноманітний досвід у роздрібній торгівлі, фінансах і страхуванні, він пропонує інноваційні та індивідуальні рішення. Окрім свого професійного життя, Сушант знаходить омолодження у плаванні та шукає натхнення у своїх подорожах різними місцями.
Дікша Шарма є архітектором спеціалізованих рішень AI/ML у Всесвітній організації спеціалістів. Вона працює з клієнтами державного сектору, щоб допомогти їм розробити ефективні, безпечні та масштабовані програми машинного навчання, включаючи генеративні рішення ШІ на AWS. У вільний час Дікша любить читати, малювати та проводити час із сім’єю.
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- PlatoData.Network Vertical Generative Ai. Додайте собі сили. Доступ тут.
- PlatoAiStream. Web3 Intelligence. Розширення знань. Доступ тут.
- ПлатонЕСГ. Автомобільні / електромобілі, вуглець, CleanTech, Енергія, Навколишнє середовище, Сонячна, Поводження з відходами. Доступ тут.
- PlatoHealth. Розвідка про біотехнології та клінічні випробування. Доступ тут.
- ChartPrime. Розвивайте свою торгову гру за допомогою ChartPrime. Доступ тут.
- BlockOffsets. Модернізація екологічної компенсаційної власності. Доступ тут.
- джерело: https://aws.amazon.com/blogs/machine-learning/announcing-the-preview-of-amazon-sagemaker-profiler-track-and-visualize-detailed-hardware-performance-data-for-your-model-training-workloads/
- : має
- :є
- : ні
- $UP
- 1
- 10
- 100
- 11
- 12
- 125
- 13
- 15%
- 17
- 20
- 7
- 9
- a
- МЕНЮ
- доступ
- через
- активує
- активний
- діяльності
- діяльність
- додавати
- доданий
- додати
- Додатковий
- після
- проти
- агрегуючий
- AI
- AI / ML
- ВСІ
- Також
- альтернативи
- Amazon
- Amazon SageMaker
- Amazon Web Services
- an
- та
- Оголосити
- Оголошуючи
- Інший
- будь-який
- з'являтися
- додаток
- застосування
- підхід
- підходи
- ЕСТЬ
- AS
- призначений
- At
- автоматично
- доступний
- середній
- AWS
- фон
- заснований
- Базова лінія
- BE
- оскільки
- ставати
- було
- початок
- належить
- між
- За
- мільярди
- BIN
- by
- CAN
- можливості
- можливості
- захопивши
- певний
- проблеми
- вантажі
- Графік
- перевірка
- Вибирати
- код
- загальний
- Комунікація
- порівняний
- порівняння
- повний
- Зроблено
- складність
- обчислення
- конфігурація
- з'єднує
- Консоль
- Контейнери
- контекст
- Відповідний
- Коштувати
- витрати
- лічильники
- створювати
- створений
- створення
- створення
- В даний час
- виготовлений на замовлення
- Клієнти
- блакитний
- приладова панель
- дані
- вчений даних
- глибокий
- глибоке навчання
- визначати
- постачає
- розгортання
- описаний
- докладно
- деталі
- пристрій
- різний
- розподілений
- розподілене навчання
- розподіл
- Різне
- домен
- домени
- зроблений
- вниз
- управляти
- тривалість
- під час
- кожен
- Раніше
- Схід
- ефективний
- продуктивно
- включіть
- дозволяє
- кінець
- кінець в кінець
- зусиль
- закінчується
- забезпечувати
- Що натомість? Створіть віртуальну версію себе у
- Весь
- запис
- епоха
- епохи
- істотний
- Європа
- Події
- очевидний
- приклад
- виконання
- дослідити
- не вдалося
- сім'я
- особливість
- фінансування
- виявлення
- знахідки
- закінчення
- Перший
- відповідати
- після
- слідує
- для
- Вперед
- Рамки
- каркаси
- Безкоштовна
- безкоштовне випробування
- від
- Повний
- Функції
- в цілому
- породжувати
- генерується
- генеративний
- Генеративний ШІ
- Німеччина
- отримати
- дає
- GPU
- Графічні процесори
- графік
- Рости
- було
- апаратні засоби
- Мати
- he
- допомога
- допомагає
- її
- його
- господар
- Як
- How To
- HTML
- HTTP
- HTTPS
- i
- ICON
- Idle
- if
- зображення
- здійснювати
- імпорт
- поліпшення
- in
- includes
- У тому числі
- Augmenter
- Індію
- зазначений
- індивідуальний
- неефективний
- інформація
- інноваційний
- витрати
- розуміння
- натхнення
- екземпляр
- замість
- інструкції
- страхування
- інтерфейс
- в
- Ірландія
- питання
- IT
- ітерація
- ЙОГО
- робота
- Джобс
- JPG
- ключ
- етикетки
- посадка
- мова
- великий
- запуск
- запуски
- вивчення
- менше
- рівень
- бібліотека
- життя
- рамки
- ліній
- зв'язку
- список
- загрузка
- погрузка
- довше
- від
- любить
- низький
- машина
- навчання за допомогою машини
- менеджер
- вручну
- пам'ять
- метод
- методика
- метрика
- Метрика
- мінімальний
- ML
- модель
- Моделі
- змінювати
- Модулі
- більше
- повинен
- ім'я
- а саме
- навігація
- Необхідність
- Нові
- немає
- вузол
- вузли
- об'єкт
- отримувати
- отриманий
- of
- Пропозиції
- Огайо
- on
- ONE
- тільки
- відкрити
- з відкритим вихідним кодом
- Відкриється
- операція
- операції
- оптимізація
- оптимізований
- варіант
- or
- порядок
- Орегон
- організація
- Організований
- над
- загальний
- власний
- сторінка
- pane
- параметри
- приватність
- особливо
- пристрасний
- для
- відсоток
- продуктивність
- period
- Дозволи
- plato
- Інформація про дані Платона
- PlatoData
- задоволений
- точка
- пошта
- Точність
- Готувати
- передумови
- попередній перегляд
- попередній
- раніше
- проблеми
- професійний
- профіль
- Профілі
- профілювання
- прогрес
- проект
- забезпечує
- громадськість
- Python
- піторх
- Швидко
- швидко
- ставка
- Читати
- зменшити
- райони
- омолодження
- відносини
- видаляти
- вимагати
- ресурс
- ресурси
- результат
- роздрібна торгівля
- Показали
- Зростання
- Роль
- Рой
- прогін
- біг
- пробіжки
- мудрець
- зберегти
- економія
- масштабовані
- плановий
- вчений
- scripts
- Sdk
- Пошук
- другий
- розділ
- сектор
- безпечний
- побачити
- Шукає
- обраний
- вибирає
- старший
- Послуги
- комплект
- установка
- вона
- Повинен
- показаний
- Шоу
- один
- Розмір
- невеликий
- менше
- Рішення
- Source
- напруга
- спеціаліст
- спеціалізується
- конкретний
- витрачати
- відпрацьований
- старт
- почалася
- Стартапи
- впроваджений
- статистичний
- Статус
- Крок
- заходи
- зупинений
- зупинка
- зберігання
- потік
- структура
- представлений
- такі
- РЕЗЮМЕ
- Підтриманий
- синхронізація
- таблиця
- з урахуванням
- Приймати
- тензорний потік
- ніж
- Що
- Команда
- їх
- Їх
- Там.
- тим самим
- отже
- Ці
- це
- через
- по всьому
- ярус
- час
- Терміни
- терміни
- times
- до
- топ
- трек
- Відстеження
- поїзд
- Навчання
- переклад
- мандри
- дерево
- суд
- трильйони
- два
- Типи
- типово
- ui
- Зрештою
- розуміння
- us
- використання
- використовуваний
- користувач
- Інтерфейс користувача
- користувачі
- використання
- різний
- версія
- версії
- вид
- Віргінія
- vs
- хотіти
- було
- we
- Web
- веб-сервіси
- West
- коли
- який
- в той час як
- волі
- з
- без
- працює
- світовий
- б
- обернути
- Ти
- вашу
- зефірнет
- зум