Сегодня мы рады объявить о предварительном просмотре Профилировщик Amazon SageMaker, способность Создатель мудреца Амазонки который обеспечивает подробное представление о вычислительных ресурсах AWS, выделенных во время обучения моделей глубокого обучения в SageMaker. С помощью SageMaker Profiler вы можете отслеживать все действия на процессорах и графических процессорах, такие как загрузка процессора и графического процессора, запуск ядра на графических процессорах, запуск ядра на процессорах, операции синхронизации, операции с памятью между графическими процессорами, задержки между запусками ядра и соответствующими запусками, а также передачу данных. между процессорами и графическими процессорами. В этом посте мы познакомим вас с возможностями SageMaker Profiler.
SageMaker Profiler предоставляет модули Python для аннотирования обучающих сценариев PyTorch или TensorFlow и активации SageMaker Profiler. Он также предлагает пользовательский интерфейс (UI), который визуализирует профиль, статистическую сводку профилированных событий и временную шкалу обучающего задания для отслеживания и понимания временной взаимосвязи событий между графическими процессорами и центральными процессорами.
Необходимость профилирования учебных вакансий
С развитием глубокого обучения (DL) машинное обучение (ML) стало интенсивно использовать вычислительные ресурсы и данные, обычно требуя многоузловых кластеров с несколькими графическими процессорами. Поскольку размеры современных моделей достигают порядка триллионов параметров, их вычислительная сложность и стоимость также быстро возрастают. Специалистам по машинному обучению приходится решать общие проблемы эффективного использования ресурсов при обучении таких больших моделей. Это особенно очевидно в больших языковых моделях (LLM), которые обычно имеют миллиарды параметров и поэтому требуют больших многоузловых кластеров графических процессоров для их эффективного обучения.
При обучении этих моделей на больших вычислительных кластерах мы можем столкнуться с проблемами оптимизации вычислительных ресурсов, такими как узкие места ввода-вывода, задержки запуска ядра, ограничения памяти и низкое использование ресурсов. Если конфигурация задания обучения не оптимизирована, эти проблемы могут привести к неэффективному использованию оборудования и увеличению времени обучения или незавершенным циклам обучения, что увеличивает общие затраты и сроки проекта.
Предпосылки
Ниже приведены необходимые условия для начала использования SageMaker Profiler:
- Домен SageMaker в вашей учетной записи AWS. – Инструкции по настройке домена см. Подключение к домену Amazon SageMaker с помощью быстрой настройки. Вам также необходимо добавить профили пользователей домена, чтобы отдельные пользователи могли получить доступ к приложению пользовательского интерфейса SageMaker Profiler. Для получения дополнительной информации см. Добавление и удаление профилей пользователей домена SageMaker.
- Разрешения... – Следующий список представляет собой минимальный набор разрешений, которые следует назначить роли выполнения для использования приложения пользовательского интерфейса SageMaker Profiler:
sagemaker:CreateApp
sagemaker:DeleteApp
sagemaker:DescribeTrainingJob
sagemaker:SearchTrainingJobs
s3:GetObject
s3:ListBucket
Подготовьте и запустите задание по обучению с помощью SageMaker Profiler.
Чтобы начать запись работы ядра на графических процессорах во время выполнения задания обучения, измените сценарий обучения с помощью модулей Python SageMaker Profiler. Импортируйте библиотеку и добавьте start_profiling()
и stop_profiling()
методы определения начала и конца профилирования. Вы также можете использовать дополнительные пользовательские аннотации для добавления маркеров в сценарий обучения для визуализации действий оборудования во время определенных операций на каждом этапе.
Существует два подхода к профилированию сценариев обучения с помощью SageMaker Profiler. Первый подход основан на профилировании полных функций; второй подход основан на профилировании конкретных строк кода в функциях.
Для профилирования по функциям используйте контекстный менеджер smppy.annotate
для аннотирования полных функций. В следующем примере сценария показано, как реализовать диспетчер контекста для переноса цикла обучения и полных функций на каждой итерации:
Вы также можете использовать smppy.annotation_begin()
и smppy.annotation_end()
для аннотирования определенных строк кода в функциях. Для получения дополнительной информации см. документации.
Настройте средство запуска учебных заданий SageMaker
Завершив аннотирование и настройку модулей запуска профилировщика, сохраните сценарий обучения и подготовьте оценщик платформы SageMaker к обучению с помощью SageMaker Python SDK.
- Настройка
profiler_config
объект, использующийProfilerConfig
иProfiler
модули следующим образом: - Создайте оценщик SageMaker с помощью
profiler_config
объект, созданный на предыдущем шаге. В следующем коде показан пример создания средства оценки PyTorch:
Если вы хотите создать оценщик TensorFlow, импортируйте sagemaker.tensorflow.TensorFlow
вместо этого укажите одну из версий TensorFlow, поддерживаемых SageMaker Profiler. Дополнительные сведения о поддерживаемых платформах и типах экземпляров см. Поддерживаемые платформы.
- Запустите задание обучения, запустив метод fit:
Запустите пользовательский интерфейс профилировщика SageMaker.
После завершения задания обучения вы можете запустить пользовательский интерфейс SageMaker Profiler, чтобы визуализировать и изучить профиль задания обучения. Доступ к приложению пользовательского интерфейса SageMaker Profiler можно получить через целевую страницу SageMaker Profiler на консоли SageMaker или через домен SageMaker.
Чтобы запустить приложение пользовательского интерфейса SageMaker Profiler на консоли SageMaker, выполните следующие шаги:
- На консоли SageMaker выберите Profiler в навигационной панели.
- Под Начать, выберите домен, в котором вы хотите запустить приложение пользовательского интерфейса SageMaker Profiler.
Если ваш профиль пользователя принадлежит только одному домену, вы не увидите возможность выбора домена.
- Выберите профиль пользователя, для которого вы хотите запустить приложение пользовательского интерфейса SageMaker Profiler.
Если в домене нет профиля пользователя, выберите Создать профиль пользователя. Дополнительную информацию о создании нового профиля пользователя см. Добавление и удаление профилей пользователей.
- Выберите Открыть профайлер.
Вы также можете запустите пользовательский интерфейс SageMaker Profiler со страницы сведений о домене.
Получите ценную информацию от профилировщика SageMaker
Когда вы открываете пользовательский интерфейс SageMaker Profiler, Выберите и загрузите профиль откроется страница, как показано на следующем снимке экрана.
Вы можете просмотреть список всех заданий обучения, отправленных в SageMaker Profiler, и найти конкретное задание обучения по его названию, времени создания и статусу выполнения (В процессе, Завершено, Сбой, Остановлено или Остановлено). Чтобы загрузить профиль, выберите учебное задание, которое хотите просмотреть, и выберите нагрузка. Название вакансии должно появиться в Загруженный профиль раздел вверху.
Выберите имя задания, чтобы создать панель мониторинга и временную шкалу. Обратите внимание: когда вы выбираете задание, пользовательский интерфейс автоматически открывает панель мониторинга. Вы можете загружать и визуализировать один профиль за раз. Чтобы загрузить другой профиль, необходимо сначала выгрузить загруженный ранее профиль. Чтобы выгрузить профиль, выберите значок корзины в Загруженный профиль .
Для этого поста мы просматриваем профиль АЛЬБЕФ обучающее задание на двух экземплярах ml.p4d.24xlarge.
После завершения загрузки и выбора задания обучения в пользовательском интерфейсе откроется Аккаунт страницу, как показано на следующем снимке экрана.
Вы можете увидеть графики ключевых показателей, а именно активного времени графического процессора, загрузки графического процессора с течением времени, активного времени ЦП и загрузки ЦП с течением времени. Круговая диаграмма активного времени графического процессора показывает процент активного времени графического процессора по сравнению с временем простоя графического процессора, что позволяет нам проверить, являются ли графические процессоры более активными, чем простоящими, на протяжении всего задания обучения.. График использования графического процессора с течением времени показывает средний коэффициент использования графического процессора с течением времени для каждого узла, объединяя все узлы на одной диаграмме. Вы можете проверить, есть ли на графических процессорах несбалансированная рабочая нагрузка, проблемы с недостаточным использованием, узкие места или проблемы с простоем в течение определенных интервалов времени.. Более подробную информацию об интерпретации этих показателей см. документации.
На панели мониторинга представлены дополнительные графики, включая время, затраченное всеми ядрами графического процессора, время, затраченное 15 лучшими ядрами графического процессора, количество запусков всех ядер графического процессора и количество запусков 15 лучших ядер графического процессора, как показано на следующем снимке экрана.
Наконец, панель мониторинга позволяет визуализировать дополнительные показатели, такие как распределение времени шага, которое представляет собой гистограмму, показывающую распределение длительности шагов на графических процессорах, и круговую диаграмму распределения точности ядра, которая показывает процент времени, затраченного на запуск ядер. в разных типах данных, таких как FP32, FP16, INT32 и INT8.
Вы также можете получить круговую диаграмму распределения активности графического процессора, которая показывает процент времени, затраченного на действия графического процессора, такие как запуск ядер, памяти (memcpy
и memset
) и синхронизация (sync
). Вы можете визуализировать процент времени, затраченного на операции с памятью графического процессора, с помощью круговой диаграммы распределения операций с памятью графического процессора.
Вы также можете создавать свои собственные гистограммы на основе пользовательской метрики, которую вы аннотировали вручную, как описано ранее в этом посте. При добавлении пользовательской аннотации к новой гистограмме выберите или введите имя аннотации, которую вы добавили в скрипт обучения.
Интерфейс временной шкалы
Пользовательский интерфейс SageMaker Profiler также включает интерфейс временной шкалы, который предоставляет подробное представление о вычислительных ресурсах на уровне операций и ядер, запланированных на ЦП и выполняемых на графических процессорах. Временная шкала организована в виде древовидной структуры, предоставляя вам информацию от уровня хоста до уровня устройства, как показано на следующем снимке экрана.
Для каждого ЦП вы можете отслеживать счетчики производительности ЦП, например clk_unhalted_ref.tsc
и itlb_misses.miss_causes_a_walk
. Для каждого графического процессора в экземпляре 2x p4d.24xlarge вы можете увидеть временную шкалу хоста и временную шкалу устройства. Запуски ядра находятся на временной шкале хоста, а запуск ядра — на временной шкале устройства.
Вы также можете увеличить масштаб отдельных шагов. На следующем снимке экрана мы увеличили масштаб до шага_41. Полоса временной шкалы, выбранная на следующем снимке экрана, является AllReduce
операция, важный этап связи и синхронизации в распределенном обучении, выполняемая на GPU-0. На снимке экрана обратите внимание, что запуск ядра на хосте GPU-0 соединяется с запуском ядра в потоке 0 устройства GPU-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
Мы сравнили накладные расходы SageMaker Profiler с другими профилировщиками с открытым исходным кодом. Базовый уровень, использованный для сравнения, был получен при выполнении задания обучения без профилировщика.
Наш ключевой вывод показал, что SageMaker Profiler обычно приводит к сокращению оплачиваемой продолжительности обучения, поскольку у него меньше накладных расходов на сквозные обучающие прогоны. Он также генерировал меньше данных профилирования (до 10 раз меньше) по сравнению с альтернативами с открытым исходным кодом. Меньшие артефакты профилирования, созданные SageMaker Profiler, требуют меньше места для хранения, что также позволяет сэкономить на затратах.
Заключение
SageMaker Profiler позволяет получить подробную информацию об использовании вычислительных ресурсов при обучении моделей глубокого обучения. Это позволит вам устранить «горячие точки» и «узкие места» производительности, чтобы обеспечить эффективное использование ресурсов, что в конечном итоге приведет к снижению затрат на обучение и сокращению общей продолжительности обучения.
Чтобы начать работу с SageMaker Profiler, см. документации.
Об авторах
Рой Аллела является старшим специалистом по архитектуре решений AI/ML в AWS, базирующейся в Мюнхене, Германия. Рой помогает клиентам AWS — от небольших стартапов до крупных предприятий — эффективно обучать и развертывать большие языковые модели в AWS. Рой увлечен проблемами оптимизации вычислений и повышением производительности рабочих нагрузок ИИ.
Сушант Мун — специалист по данным в AWS, Индия, специализирующийся на консультировании клиентов в их проектах в области искусственного интеллекта и машинного обучения. Обладая разнообразным опытом работы в сфере розничной торговли, финансов и страхования, он предлагает инновационные и индивидуальные решения. Помимо своей профессиональной деятельности, Сушант находит омоложение в плавании и ищет вдохновения в своих путешествиях по разным местам.
Дикша Шарма — специалист по архитектуре решений искусственного интеллекта и машинного обучения во Всемирной специализированной организации. Она работает с клиентами из государственного сектора, помогая им разрабатывать эффективные, безопасные и масштабируемые приложения машинного обучения, включая решения для генеративного искусственного интеллекта на AWS. В свободное время Дикша любит читать, рисовать и проводить время с семьей.
- SEO-контент и PR-распределение. Получите усиление сегодня.
- PlatoData.Network Вертикальный генеративный ИИ. Расширьте возможности себя. Доступ здесь.
- ПлатонАйСтрим. Интеллект Web3. Расширение знаний. Доступ здесь.
- ПлатонЭСГ. Автомобили / электромобили, Углерод, чистые технологии, Энергия, Окружающая среда, Солнечная, Управление отходами. Доступ здесь.
- ПлатонЗдоровье. Биотехнологии и клинические исследования. Доступ здесь.
- ЧартПрайм. Улучшите свою торговую игру с ChartPrime. Доступ здесь.
- Смещения блоков. Модернизация права собственности на экологические компенсации. Доступ здесь.
- Источник: 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 Web Services
- an
- и
- анонсировать
- объявляющий
- Другой
- любой
- появиться
- Применение
- Приложения
- подхода
- подходы
- МЫ
- AS
- назначенный
- At
- автоматически
- доступен
- в среднем
- AWS
- фон
- основанный
- Базовая линия
- BE
- , так как:
- становиться
- было
- начало
- принадлежит
- между
- Beyond
- миллиарды
- BIN
- by
- CAN
- возможности
- возможности
- Захват
- определенный
- проблемы
- расходы
- График
- проверка
- Выберите
- код
- Общий
- Связь
- сравненный
- сравнение
- полный
- Заполненная
- сложность
- Вычисление
- Конфигурация
- подключает
- Консоли
- Контейнеры
- контекст
- соответствующий
- Цена
- Расходы
- счетчики
- Создайте
- создали
- Создающий
- создание
- В настоящее время
- изготовленный на заказ
- Клиенты
- голубой
- приборная панель
- данным
- ученый данных
- глубоко
- глубокое обучение
- определять
- обеспечивает
- развертывание
- описано
- подробный
- подробнее
- устройство
- различный
- распределенный
- распределенное обучение
- распределение
- Разное
- домен
- доменов
- сделанный
- вниз
- управлять
- продолжительность
- в течение
- каждый
- Ранее
- восток
- эффективный
- эффективно
- включить
- позволяет
- конец
- впритык
- усилия
- окончания поездки
- обеспечивать
- Enter
- Весь
- запись
- эпоха
- эпохи
- существенный
- Европе
- События
- очевидный
- пример
- выполнение
- Больше
- Oшибка
- семья
- Особенность
- финансы
- обнаружение
- находит
- окончание
- Во-первых,
- соответствовать
- после
- следующим образом
- Что касается
- вперед
- Рамки
- каркасы
- Бесплатно
- бесплатная пробная версия
- от
- полный
- Функции
- в общем
- порождать
- генерируется
- генеративный
- Генеративный ИИ
- Germany
- получить
- Отдаете
- GPU / ГРАФИЧЕСКИЙ ПРОЦЕССОР
- Графические процессоры
- график
- Расти
- было
- Аппаратные средства
- Есть
- he
- помощь
- помогает
- ее
- его
- кашель
- Как
- How To
- HTML
- HTTP
- HTTPS
- i
- ICON
- Idle
- if
- изображение
- осуществлять
- Импортировать
- улучшение
- in
- включает в себя
- В том числе
- Увеличение
- Индия
- указанный
- individual
- неэффективное
- информация
- инновационный
- затраты
- размышления
- Вдохновение
- пример
- вместо
- инструкции
- страхование
- Интерфейс
- в
- Ирландия
- вопросы
- IT
- итерация
- ЕГО
- работа
- Джобс
- JPG
- Основные
- Этикетки
- посадка
- язык
- большой
- запуск
- запускает
- изучение
- Меньше
- уровень
- Библиотека
- ЖИЗНЬЮ
- рамки
- линий
- связи
- Список
- загрузка
- погрузка
- дольше
- от
- любит
- Низкий
- машина
- обучение с помощью машины
- менеджер
- вручную
- Память
- метод
- методы
- метрический
- Метрика
- минимальный
- ML
- модель
- Модели
- изменять
- Модули
- БОЛЕЕ
- должен
- имя
- а именно
- Навигация
- Необходимость
- Новые
- нет
- узел
- узлы
- объект
- получать
- полученный
- of
- Предложения
- Огайо
- on
- ONE
- только
- открытый
- с открытым исходным кодом
- Откроется
- операция
- Операционный отдел
- оптимизация
- оптимизированный
- Опция
- or
- заказ
- Орегон
- организация
- Организованный
- за
- общий
- собственный
- страница
- хлеб
- параметры
- особый
- особенно
- страстный
- для
- процент
- производительность
- период
- Разрешения
- Платон
- Платон Интеллектуальные данные
- ПлатонДанные
- довольный
- Точка
- После
- Точность
- Подготовить
- предпосылки
- предварительный просмотр
- предыдущий
- предварительно
- проблемам
- профессиональный
- Профиль
- Профили
- профилирование
- Прогресс
- Проект
- приводит
- что такое варган?
- Питон
- pytorch
- САЙТ
- быстро
- Обменный курс
- Читать
- уменьшить
- районы
- омоложение
- отношения
- удаление
- требовать
- ресурс
- Полезные ресурсы
- результат
- розничный
- Показали
- Рост
- Роли
- Рой
- Run
- Бег
- работает
- sagemaker
- Сохранить
- экономия
- масштабируемые
- считаться
- Ученый
- скрипты
- SDK
- Поиск
- Во-вторых
- Раздел
- сектор
- безопасный
- посмотреть
- стремится
- выбранный
- выбор
- старший
- Услуги
- набор
- установка
- она
- должен
- показанный
- Шоу
- одинарной
- Размер
- небольшой
- меньше
- Решения
- Источник
- напряженность
- специалист
- специализация
- конкретный
- тратить
- потраченный
- Начало
- и политические лидеры
- Стартапы
- современное состояние
- статистический
- Статус:
- Шаг
- Шаги
- остановившийся
- остановка
- диск
- поток
- Структура
- представленный
- такие
- РЕЗЮМЕ
- Поддержанный
- синхронизация
- ТАБЛИЦЫ
- с учетом
- взять
- tensorflow
- чем
- который
- Ассоциация
- их
- Их
- Там.
- тем самым
- следовательно
- Эти
- этой
- Через
- по всему
- ярус
- время
- Сроки
- сроки
- раз
- в
- топ
- трек
- Отслеживание
- Train
- Обучение
- перевод
- путешествия
- дерево
- суд
- триллионы
- два
- Типы
- типично
- ui
- В конечном счете
- понимание
- us
- использование
- используемый
- Информация о пользователе
- Пользовательский интерфейс
- пользователей
- через
- различный
- версия
- версии
- Вид
- Виргиния
- vs
- хотеть
- законопроект
- we
- Web
- веб-сервисы
- запад
- когда
- , которые
- в то время как
- будете
- без
- работает
- по всему миру
- бы
- заворачивать
- Ты
- ВАШЕ
- зефирнет
- зум