Достигните в четыре раза большей пропускной способности вывода машинного обучения и в три раза снижения затрат на вывод с помощью инстансов Amazon EC2 G5 для моделей NLP и CV PyTorch PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Достигните в четыре раза более высокой пропускной способности вывода машинного обучения при трехкратном снижении затрат на вывод с помощью инстансов Amazon EC2 G5 для моделей NLP и CV PyTorch.

Эластичное вычислительное облако Amazon (Амазон EC2) Экземпляры G5 являются первыми и единственными инстансами в облаке с графическими процессорами NVIDIA A10G Tensor Core, которые вы можете использовать для широкого спектра сценариев использования с интенсивным использованием графики и машинного обучения (ML). С инстансами G5 клиенты машинного обучения получают высокую производительность и экономичную инфраструктуру для обучения и развертывания более крупных и сложных моделей для обработки естественного языка (NLP), компьютерного зрения (CV) и вариантов использования рекомендательного механизма.

Цель этой публикации — продемонстрировать преимущества производительности инстансов G5 для крупномасштабных рабочих нагрузок машинного логического вывода. Мы делаем это, сравнивая соотношение цены и качества (измеряемое в долларах за миллион выводов) для моделей NLP и CV с экземплярами G4dn. Мы начнем с описания нашего подхода к бенчмаркингу, а затем представим кривые пропускной способности и задержки для разных размеров пакетов и точности типов данных. По сравнению с инстансами G4dn мы обнаружили, что инстансы G5 обеспечивают стабильно более низкую стоимость за миллион логических выводов как для режимов полной точности, так и для режимов смешанной точности для моделей NLP и CV, обеспечивая при этом более высокую пропускную способность и меньшую задержку.

Сравнительный подход

Чтобы провести исследование соотношения цены и качества между G5 и G4dn, нам необходимо измерить пропускную способность, задержку и стоимость за миллион выводов в зависимости от размера пакета. Мы также изучаем влияние полной точности на смешанную точность. И граф модели, и входные данные загружаются в CUDA перед выводом.

Как показано на следующей диаграмме архитектуры, мы сначала создаем соответствующие базовые образы контейнеров с помощью CUDA для базового экземпляра EC2 (G4dn, G5). Чтобы создать базовые образы контейнеров, мы начинаем с Контейнеры глубокого обучения AWS, которые используют предварительно упакованные образы Docker для развертывания сред глубокого обучения за считанные минуты. Образы содержат необходимые библиотеки и инструменты PyTorch для глубокого обучения. Вы можете добавлять свои собственные библиотеки и инструменты поверх этих изображений для более высокого уровня контроля над мониторингом, соответствием требованиям и обработкой данных.

Затем мы создаем образ контейнера для конкретной модели, который инкапсулирует конфигурацию модели, трассировку модели и соответствующий код для выполнения прямых проходов. Все образы контейнеров загружаются в Амазонка ЭКР чтобы обеспечить горизонтальное масштабирование этих моделей для различных конфигураций моделей. Мы используем Простой сервис хранения Amazon (Amazon S3) в качестве общего хранилища данных для загрузки конфигурации и загрузки результатов тестов для обобщения. Вы можете использовать эту архитектуру для воссоздания и воспроизведения результатов тестов и перепрофилирования для тестирования различных типов моделей (таких как модели Hugging Face, модели PyTorch и другие пользовательские модели) для типов инстансов EC2 (CPU, GPU, Inf1).

При постановке этого эксперимента наша цель — изучить задержку как функцию пропускной способности. Эта кривая важна для проектирования приложений, чтобы получить оптимальную по стоимости инфраструктуру для целевого приложения. Для этого мы имитируем различные нагрузки, ставя в очередь запросы из нескольких потоков, а затем измеряя время приема-передачи для каждого выполненного запроса. Пропускная способность измеряется на основе количества выполненных запросов в единицу времени. Кроме того, вы можете варьировать размеры пакетов и другие переменные, такие как длина последовательности и полная точность по сравнению с половинной точностью, чтобы всесторонне охватить пространство проектирования и получить ориентировочные показатели производительности. В нашем исследовании с помощью параметрического анализа размера пакета и запросов от многопоточных клиентов определяется кривая пропускной способности и задержки. Каждый запрос можно группировать, чтобы обеспечить полное использование ускорителя, особенно для небольших запросов, которые могут не полностью использовать вычислительный узел. Вы также можете использовать эту настройку, чтобы определить размер пакета на стороне клиента для оптимальной производительности.

Таким образом, мы можем представить эту проблему математически как: (Пропускная способность, Задержка) = функция (Размер пакета, Количество потоков, Точность).

Это означает, что при ограниченном пространстве количество экспериментов может быть большим. К счастью, каждый эксперимент можно провести независимо. Мы рекомендуем использовать Пакет AWS для выполнения этого горизонтально масштабируемого бенчмаркинга в сжатые сроки без увеличения стоимости бенчмаркинга по сравнению с линейным подходом к тестированию. Код для тиражирования результатов присутствует в Репозиторий GitHub подготовлено для AWS Re:Invent 2021. Репозиторий позволяет выполнять бенчмаркинг на различных ускорителях. Вы можете обратиться к аспекту кода графического процессора для создания контейнера (Dockerfile-gpu), а затем обратитесь к коду внутри Container-Root для конкретных примеров для BERT и ResNet50.

Мы использовали предыдущий подход для разработки исследований производительности по двум типам моделей: Bert-base-uncased (110 миллионов параметров, NLP) и ResNet50 (25.6 миллиона параметров, CV). В следующей таблице приведены сведения о модели.

Тип модели Модель Подробнее
НЛП twmkn9 / bert-base-uncased-squad2 110 миллионов параметров Длина последовательности = 128
CV Реснет50 25.6 миллионов параметров

Кроме того, для сравнения типов данных (полная точность, половинная точность) мы используем torch.cuda.amp, который предоставляет удобные методы для работы со смешанной точностью, когда некоторые операции используют torch.float32 (плавающий) тип данных и использование других операций torch.float16 (половина). Например, такие операторы, как линейные слои и свертки, выполняются намного быстрее с float16, в то время как другие, такие как сокращения, часто требуют динамического диапазона float32. Автоматическая смешанная точность пытается сопоставить каждого оператора с соответствующим типом данных, чтобы оптимизировать время работы сети и объем памяти.

Результаты сравнительного анализа

Для объективного сравнения мы выбрали G4dn.4xlarge и G5.4xбольшой экземпляры с похожими атрибутами, как указано в следующей таблице.

Пример Графические процессоры Память графического процессора (ГиБ) VCPU будут Память (ГиБ) Хранилище инстансов (ГБ) Производительность сети (Гбит/с) Пропускная способность EBS (Гбит/с) Цены на Linux по запросу (us-east-1)
G5.4xбольшой 1 24 16 64 1 твердотельный накопитель NVMe 600 Мбит/с до 25 8 $ 1.204 / час
G4dn.4xlarge 1 16 16 64 1 твердотельный накопитель NVMe 225 Мбит/с до 25 4.75 $ 1.624 / час

В следующих разделах мы сравниваем производительность вывода ML моделей BERT и RESNET50 с подходом развертки сетки для конкретных размеров пакетов (32, 16, 8, 4, 1) и точности типа данных (полная и половинная точность), чтобы получить пропускную способность. против кривой задержки. Кроме того, мы исследуем влияние пропускной способности на размер пакета как для полной, так и для половинной точности. Наконец, мы измеряем стоимость за миллион выводов в зависимости от размера партии. Сводные результаты этих экспериментов приведены ниже в этом посте.

Пропускная способность и задержка

На следующих рисунках сравниваются экземпляры G4dn и G5 для рабочих нагрузок NLP и CV как с полной, так и с половинной точностью. По сравнению с инстансами G4dn инстанс G5 обеспечивает пропускную способность примерно в пять раз выше (полная точность) и примерно в 2.5 раза выше (полуточность) для базовой модели BERT и примерно в 2–2.5 раза выше для модели ResNet50. В целом, G5 является предпочтительным выбором с увеличением размера партии для обеих моделей как для полной, так и для смешанной точности с точки зрения производительности.

На следующих графиках сравниваются пропускная способность и задержка P95 при полной и половинной точности для BERT.

Достигните в четыре раза большей пропускной способности вывода машинного обучения и в три раза снижения затрат на вывод с помощью инстансов Amazon EC2 G5 для моделей NLP и CV PyTorch PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай. Достигните в четыре раза большей пропускной способности вывода машинного обучения и в три раза снижения затрат на вывод с помощью инстансов Amazon EC2 G5 для моделей NLP и CV PyTorch PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

На следующих графиках сравниваются пропускная способность и задержка P95 при полной и половинной точности для ResNet50.

Достигните в четыре раза большей пропускной способности вывода машинного обучения и в три раза снижения затрат на вывод с помощью инстансов Amazon EC2 G5 для моделей NLP и CV PyTorch PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай. Достигните в четыре раза большей пропускной способности вывода машинного обучения и в три раза снижения затрат на вывод с помощью инстансов Amazon EC2 G5 для моделей NLP и CV PyTorch PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Пропускная способность и задержка в сравнении с размером пакета

На следующих графиках показана производительность в зависимости от размера партии. При небольших размерах пакетов ускоритель не работает на полную мощность, а по мере увеличения размера пакета пропускная способность увеличивается за счет задержки. Кривая пропускной способности асимптотирует к максимальному значению, которое является функцией производительности ускорителя. Кривая имеет две отличительные особенности: восходящий участок и плоский асимптотический участок. Для данной модели высокопроизводительный ускоритель (G5) способен растянуть подъемную секцию до более крупных партий, чем G4dn, и асимптотировать при более высокой пропускной способности. Кроме того, существует линейный компромисс между задержкой и размером пакета. Поэтому, если приложение ограничено задержкой, мы можем использовать задержку P95 в зависимости от размера пакета, чтобы определить оптимальный размер пакета. Однако, если цель состоит в том, чтобы максимизировать пропускную способность при наименьшей задержке, лучше выбрать размер пакета, соответствующий «колену» между восходящим и асимптотическим участками, потому что любое дальнейшее увеличение размера пакета приведет к той же пропускной способности при минимальной задержке. худшая задержка. Чтобы достичь наилучшего соотношения цены и производительности, ориентируясь на более высокую пропускную способность при минимальной задержке, вам лучше горизонтально масштабировать этот оптимум с помощью нескольких серверов логического вывода, а не просто увеличивать размер пакета.

Достигните в четыре раза большей пропускной способности вывода машинного обучения и в три раза снижения затрат на вывод с помощью инстансов Amazon EC2 G5 для моделей NLP и CV PyTorch PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Стоимость и размер партии

В этом разделе мы представляем сравнительные результаты затрат на вывод ($ за миллион выводов) по сравнению с размером партии. Из следующего рисунка ясно видно, что стоимость (измеряемая в долларах за миллион выводов) постоянно ниже как при G5, так и при G4dn (полная и половинная точность).

Достигните в четыре раза большей пропускной способности вывода машинного обучения и в три раза снижения затрат на вывод с помощью инстансов Amazon EC2 G5 для моделей NLP и CV PyTorch PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай. Достигните в четыре раза большей пропускной способности вывода машинного обучения и в три раза снижения затрат на вывод с помощью инстансов Amazon EC2 G5 для моделей NLP и CV PyTorch PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

В следующей таблице приведены сравнения пропускной способности, задержки и стоимости (в долларах США за миллион выводов) для моделей BERT и RESNET50 в обоих режимах точности для определенных размеров пакетов. Несмотря на более высокую стоимость экземпляра, G5 стабильно превосходит G4dn по всем аспектам задержки логического вывода, пропускной способности и стоимости (в долларах за миллион логического вывода) для всех размеров пакетов. При объединении различных показателей в стоимость ($ за миллион выводов) модель BERT (размер пакета 32, полная точность) с G5 в 3.7 раза выгоднее, чем G4dn, а с моделью ResNet50 (размер пакета 32, полная точность) — в 1.6 раза. раз выгоднее, чем G4dn.

Модель Размер партии Точность

Увеличить пропускную способность

(Размер пакета X запросов/сек)

Задержка (мс)

$/миллион

Выводы (по требованию)

Затрат и выгод

(G5 вместо G4dn)

. . . G5 G4dn G5 G4dn G5 G4dn
Берт-база-без кожуха 32 В полностью 723 154 44 208 $0.6 $2.2 3.7X
смешанный 870 410 37 79 $0.5 $0.8 1.6X
16 В полностью 651 158 25 102 $0.7 $2.1 3.0X
смешанный 762 376 21 43 $0.6 $0.9 1.5X
8 В полностью 642 142 13 57 $0.7 $2.3 3.3X
смешанный 681 350 12 23 $0.7 $1.0 1.4X
. 1 В полностью 160 116 6 9 $2.8 $2.9 1.0X
смешанный 137 102 7 10 $3.3 $3.3 1.0X
Реснет50 32 В полностью 941 397 34 82 $0.5 $0.8 1.6X
смешанный 1533 851 21 38 $0.3 $0.4 1.3X
16 В полностью 888 384 18 42 $0.5 $0.9 1.8X
смешанный 1474 819 11 20 $0.3 $0.4 1.3X
8 В полностью 805 340 10 24 $0.6 $1.0 1.7X
смешанный 1419 772 6 10 $0.3 $0.4 1.3X
. 1 В полностью 202 164 5 6 $2.2 $2 0.9X
смешанный 196 180 5 6 $2.3 $1.9 0.8X

Дополнительные тесты логического вывода

В дополнение к базе BERT и результатам ResNet50 в предыдущих разделах мы представляем дополнительные результаты сравнительного анализа для других часто используемых крупных моделей NLP и CV в PyTorch. Преимущество производительности G5 по сравнению с G4dn было представлено для моделей BERT Large с различной точностью и моделей Yolo-v5 для различных размеров. Код для репликации эталонного теста см. Примеры глубокого обучения NVIDIA для тензорных ядер. Эти результаты показывают преимущество использования G5 по сравнению с G4dn для широкого круга задач логического вывода, охватывающих разные типы моделей.

Модель Точность Размер партии Длина последовательности Пропускная способность (отправлено/сек) Пропускная способность: G4dn Ускорение по сравнению с G4dn
BERT-большой FP16 1 128 93.5 40.31 2.3
BERT-большой FP16 4 128 264.2 87.4 3.0
BERT-большой FP16 8 128 392.1 107.5 3.6
BERT-большой FP32 1 128 68.4 22.67 3.0
BERT-большой 4 128 118.5 32.21 3.7
BERT-большой 8 128 132.4 34.67 3.8
Модель GFLOPS Количество параметров Предварительная обработка (мс) Вывод (мс) Вывод (не максимальное подавление) (NMS/изображение)
YOLOv5s 16.5 7.2M 0.2 3.6 4.5
YOLOv5м 49.1 21M 0.2 6.5 4.5
YOLOv5l 109.3 46M 0.2 9.1 3.5
YOLOv5x 205.9 86M 0.2 14.4 1.3

Заключение

В этом посте мы показали, что для логических выводов с большими моделями NLP и CV PyTorch инстансы EC2 G5 являются лучшим выбором по сравнению с инстансами G4dn. Хотя почасовая стоимость инстансов G5 по запросу выше, чем инстансов G4dn, более высокая производительность может обеспечить в 2–5 раз большую пропускную способность при любой точности для моделей NLP и CV, что делает стоимость на миллион выводов в 1.5–3.5 раза более выгодной, чем для моделей NLP и CV. Экземпляры G4dn. Даже для приложений с ограниченной задержкой G5 в 2.5–5 раз лучше, чем G4dn для моделей NLP и CV.

Таким образом, инстансы AWS G5 — отличный выбор для ваших потребностей в выводах как с точки зрения производительности, так и стоимости за вывод. Универсальность фреймворка CUDA, а также масштаб и глубина пула инстансов G5 на AWS предоставляют вам уникальную возможность делать логические выводы в любом масштабе.


Об авторах

Достигните в четыре раза большей пропускной способности вывода машинного обучения и в три раза снижения затрат на вывод с помощью инстансов Amazon EC2 G5 для моделей NLP и CV PyTorch PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Анкур Шривастава является старшим архитектором решений в команде ML Frameworks. Он фокусируется на помощи клиентам с самоуправляемым распределенным обучением и логическими выводами в масштабе AWS. Его опыт включает промышленное диагностическое обслуживание, цифровые двойники, вероятностную оптимизацию проектирования, и он закончил докторантуру в области машиностроения в Университете Райса и постдокторские исследования в Массачусетском технологическом институте.

Достигните в четыре раза большей пропускной способности вывода машинного обучения и в три раза снижения затрат на вывод с помощью инстансов Amazon EC2 G5 для моделей NLP и CV PyTorch PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Сундар Ранганатан является руководителем отдела развития бизнеса, ML Frameworks в команде Amazon EC2. Он занимается крупномасштабными рабочими нагрузками машинного обучения в таких сервисах AWS, как Amazon EKS, Amazon ECS, Elastic Fabric Adapter, AWS Batch и Amazon SageMaker. Его опыт включает в себя руководящие должности в области управления продуктами и разработки продуктов в NetApp, Micron Technology, Qualcomm и Mentor Graphics.

Достигните в четыре раза большей пропускной способности вывода машинного обучения и в три раза снижения затрат на вывод с помощью инстансов Amazon EC2 G5 для моделей NLP и CV PyTorch PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.Махадеван Баласубраманиам является главным архитектором решений для автономных вычислений с почти 20-летним опытом работы в области глубокого обучения, создания и развертывания цифровых двойников для промышленных систем в масштабе. Махадеван получил докторскую степень в области машиностроения в Массачусетском технологическом институте и имеет более 25 патентов и публикаций.

Достигните в четыре раза большей пропускной способности вывода машинного обучения и в три раза снижения затрат на вывод с помощью инстансов Amazon EC2 G5 для моделей NLP и CV PyTorch PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай. Амр Рагаб является главным архитектором решений для ускоренных платформ EC2 для AWS, помогая клиентам запускать вычислительные рабочие нагрузки в масштабе. В свободное время он любит путешествовать и находить новые способы интеграции технологий в повседневную жизнь.

Отметка времени:

Больше от Машинное обучение AWS