Тесты видеокарт для машинного обучения

Для нашей работы мы постоянно тренируем языковые модели. Наша команда использует десятки разных видеокарт, выбранных под разные задачи: где-то нужна мощная станция DGX, а где-то достаточно старой игровой карты типа RTX 2080Ti. Выбор оптимальной конфигурации GPU сэкономит вам не только время на тренировку, но и деньги.

Интересно то, что в интернете довольно мало статей с тестами GPU именно для скорости тренировки языковых моделей. В основном встречаются только тесты inference. Когда вышел новый чип H100, в отчете NVidia было указано, что при тренировке он быстрее A100 до девяти раз, но для наших задач новая карта оказалась всего на 90% быстрее старой. Для сравнения: у наших облачных провайдеров разница в цене между этими GPU составляла 2 раза, поэтому переходить на новый H100 для экономии денег смысла не было.

В дополнение к этому мы брали на тест станцию DGX, которая состоит из 8 видеокарт A100 80GB и стоит 10 тысяч долларов в месяц. После теста стало ясно что соотношение цена / производительность этой станции нас полностью не устраивает и за эти деньги мы можем взять 66 x RTX 3090, которые в сумме принесут гораздо больше пользы.

Наши языковые модели для перевода имеют до 500 миллионов параметров (в среднем от 100 млн до 300 млн). Возможно, если значительно увеличить кол-во параметров, то соотношение цена / производительность от DGX станет лучше. На данный момент мы не тренируем большие языковые модели, которые могут переводить сразу между всеми языками во всех вариациях, а применяем отдельные языковые модели под каждую языковую пару, например англо-немецкую. Каждая из таких моделей занимает от 120 до 300 Mb.

Стоит отметить, что для разных языков в интернете находится разное количество данных, и если, например, для испанского можно найти 500 млн предложений с переводом, то для тибетского не более миллиона. Из-за этого модели для разных языков тренируются с разным числом параметров и на выходе имеют разное качество перевода. Для создания модели перевода с английского на испанский мы используем сервер с 4 x RTX 4500 и 256GB RAM, а тибетский язык вполне можно натренировать на RTX 2080 Ti c 16GB RAM, так как увеличивать сложность нейронной сети, и как следствие, брать более мощный сервер при небольшом объеме данных не имеет смысла.

Выбор графических процессоров и немного теории

Тренировка языковых моделей проходила с использованием фреймворка OpenNMT-tf. Данный этап включал в себя такие шаги как подготовка данных, обучение модели и сравнение ее с эталонным переводом. Использование FP16 вместо FP32 во время обучения позволило существенно сократить время тренировки языковых моделей не ухудшая качество перевода, но не все наши GPU поддерживали это.

При выборе графических процессоров стандартно берут во внимание такие показатели как вычислительная мощность (TFLOPS), видеопамять (VRAM), поддержка библиотек и фреймворков, бюджет и другие факторы (размер и форм-фактор видеокарты, требования к энергопотреблению, охлаждение и совместимость с вашей системой). При обучении моделей генерации текста также следует помнить, что для разных языков будет потребляться разное количество ресурсов. Например, для кодирования одного символа языков латинской группы используется 1 байт, для кириллической 2 байта, а для с языков, содержащих иероглифы - 3 байта. Понимание того, какими характеристиками будет обладать ваша видеокарта в существенной мере влияет на скорость процесса обучения.

При обучении моделей с точки зрения использованных GPU, условно видеокарты были поделены на две группы согласно периоду использования: ранние видеокарты, с помощью которых проводились первые замеры скорости обучения и карты, находящиеся в работе на данный момент. С основными характеристиками данных видеокарт можно ознакомиться в таблице 1 и 2 соответственно.

Table 1 - Таблица 1- Ранее применявшиеся графические процессоры и их технические параметры
 

Количество используемых графических процессоровГрафический процессорVRAM, GCUDAFP16,
TFLOPS
FP32,
TFLOPS
1Tesla V100-SXM2HBM2, 167.031.3316.31
2Tesla V100-SXM2HBM2, 327.031.3315.67
1RTX 4060 TiGDDR6, 88.922.0622.06
1Nvidia A40GDDR6, 488.637.4237.42
2Nvidia A40GDDR6, 968.637.4237.42
1Nvidia A100HBM2, 408.077.9719.49
1Nvidia A100HBM2, 808.077.9719.49
1Nvidia RTX A6000GDDR6, 488.638.7138.71
1Nvidia A10GDDR6, 248.631.2431.24
8Nvidia A10GDDR6, 1928.631.2431.24
1Nvidia H100HBM3, 809.0204.951.22


Примечания
1. При CUDA большим 7.0, использование FP16 будет давать прирост скорости тренировки, в зависимости от версии CUDA и характеристик самой видеокарты.
2.Если в спецификации к видеокарте указано, что соотношение производительности FP16 к FP32 больше, чем 1 к 1, то использование mixed precision будет гарантированно давать прирост скорости тренировки на указанную в спецификации величину. Например, для Quadro RTX 6000 значение FP16 TFLOPS в 32.62 (2:1) ускорит тренировку минимум в два раза (на практике в 2.4 раза).

Таблица 2 - Используемые в данное время модели графических процессоров и их основные характеристики
 

Количество используемых графических процессоровГрафический процессорVRAM, GCUDAFP16,
TFLOPS
FP32,
TFLOPS
1Quadro RTX 6000GDDR6, 247.532.6216.31
2Quadro RTX 6000GDDR6, 487.532.6216.31
4Quadro RTX 6000GDDR6, 967.532.6216.31
2Nvidia TITAN RTXGDDR6, 487.532.6216.31
4Nvidia RTX A4500GDDR6, 968.623.6523.65
1Nvidia GeForce RTX 3090GDDR6X, 248.635.5835.58
1Nvidia GeForce RTX 3070GDDR6, 88.620.3120.31

* - значения для FP16,TFLOPS и FP32,TFLOPS взяты из спецификаций на один графический процессор

Процесс обучения и тестирование GPU

Обучения моделей проходило с использованием набора из 18 графических процессоров. В процессе тренировки нейросетей было использовано большое количество языковых пар (более ста языков). Во время обучения, за основу брались следующие параметры нейросети:

  • vocab size = 30 000
  • numunits = 768
  • layers = 6
  • heads = 16
  • inner dimension = 4 096


Для начала охарактеризуем GPU, которые принадлежали к первой группе исходя из таблицы 1. За основу сравнения показателей будет браться время в минутах и секундах, затраченное на обучения модели при примерной скорости в 1 000 шагов и размером аккумулируемого батча (Effective batch size) равного 100 000 токенов.

Подчеркнем, что для первой группы замеры скорости проводились с применения механизма alignment и только с использованием FP32. Без использования данного механизма скорость обучения на некоторых серверах может быть значительно быстрее.

Механизм alignment позволяет сопоставить подстроки в базовом и переведенном тексте. Он нужен для перевода форматированного текста, например веб-страниц, когда подстрока в предложении может быть выделена другим шрифтом и должна переводится с выделением.

Взяв во внимание вышеназванные параметры нейросети, лучшее время из первой таблицы показал графический процессор Nvidia H100 со временем обучения в 22 минуты, промежуточное время у графического процессора той же марки GeForce RTX 4060 Ti с замером по времени обучения в 72 минуты и на последнем месте оказался графический процессор Tesla V100-SXM 2 с показателями в 140 минут.

Также при тестировании GPU использовались восемь карт Nvidia A10 со скоростью обучения в 20 минут и 28 секунд, две карты Nvidia A40 со временем в 56 минут и две карты Tesla V100-SXM, которые показали время в 86 минут. Одновременное применение нескольких карт одной и той же серии графического процессора может ускорить процесс тренировки моделей и показать почти одинаковое время с графическими процессами, которые обладают более высокими мощностями, но такая техника может оказаться недостаточно рациональной в финансовом и процедурном плане. Результаты замеров скорости обучения можно наблюдать в таблице номер 3.

Таблица 3 - Замеры по времени обучения на использованных ранее графических картах
 

С использованием механизма выравнивания (alignment)
Effective batch size = 100 000
FP 32
Количество используемых графических процессоровГрафический процессорПримерная скорость (мин.сек), 1 000 шаговИспользуемый Batch size
8Nvidia A1020,286 250
1Nvidia H1002225 000
1A100 (80 Gb)4025 000
1A100 (40 Gb)5615 000
2Nvidia A405612 500
1RTX A600068,2512 500
1GeForce RTX 4060 Ti724 167
1Nvidia A4082,0812 500
2Tesla V100-SXM864 167
1Nvidia A10104,505 000
1Tesla V100-SXM21404 167


Далее проведем сравнительный анализ графических ускорителей, используемые в настоящее время (таблица номер 2). Для данной группы графических процессоров замеры скорости проводились с использованием механизма выравнивания alignment, а также с применением FP16 и FP32. Замеры скорости, включая данный механизм и mixed precision, будут представлены ниже, в таблицах 4 и 5 соответственно.

Итак, проведя замеры скорости графических процессоров из данной таблицы, можно сказать, что первое место занял графический процессор серии RTX A4500 со временем обучения в 31 минуту, но следует подчеркнуть, что такая скорость тренировки моделей получилась за счет увеличения количества единиц используемого графического процессора до 4. Не беря во внимание данный факт, скорость обучения у вышеназванного графического процессора будет намного больше, что разместит его в итоговой таблице на предпоследних местах.

Следом, на втором месте, расположился графический процессор серии Quadro RTX 6000 со временем обучения в 47 минут. Следует обратить внимание, что такая скорость обучения обратно же обусловлена количеством единиц используемого процессора, которое равно четырем. Использование только одного такого графического процессора даст потерю скорости примерно в 3.2 раза и соответственно составит приблизительно 153 минуты и разместит его на последнем месте.

Третью строчку занял графический процессор серии TITAN RTX со временем в 75 минут и 85 секунд. Данный показатель по скорости обучения связан с использованием 2 процессоров, что позволило сократить время обучения модели.

Безоговорочным лидером по скорости обучения в количестве одной единицы безусловно будет графический процессор серии GeForce RTX 3090 со временем в 78 минут и 26 секунд. Увеличение количества единиц данного графического процессора ускорит скорость обучения модели, что явно обгонит все вышеперечисленные модели графических процессоров. Данные по замерам времени обучения моделей можно видеть в таблице номер 4.

Таблица 4 - Сравнительный анализ скорости обучения языковых моделей на ранее использованных графических процессорах
 

С применением механизма выравнивания (alignment)
Effective batch size = 100 000
FP 32
Количество используемых графических процессоровИспользуемый графический процессорПримерная скорость (мин.сек), 1 000 шаговИспользуемый Batch size
4Nvidia RTX A4500315 000
4Quadro RTX 6000476 250
2Nvidia TITAN RTX75,856 250
1GeForce RTX 309078,266 250
2Quadro RTX 6000886 250
1GeForce RTX 3070104,172 000
1Quadro RTX 60001536 250


Следующие измерения скорости обучения проводились с использованием FP16. По сравнению с FP32, половинная точность дает возможность уменьшить объем памяти, потребляемой при обучении модели, и ускорить вычисления на GPU. Качество перевода языковых моделей натренированных с FP16 сопоставимо с FP32.

Измеряя время обучения моделей с использованием FP32 по предыдущей таблице, можно сказать, что время обучения нейронной сети сократилось почти в два раза. По результатам измерения производительности можно заметить, что позиции графических процессоров в таблице 4 остались без особых изменений. Карта серии Quadro RTX 6000 поднялась с пятой позиции на шестую, опередив GPU GeForce RTX 3090 на 96 секунд. Итоговые цифры приведены в таблице 5.

Таблица 5 - Сравнительный анализ скорости обучения языковых моделей на ранее использованных графических процессорах
 

С применением механизма выравнивания (alignment)
Effective batch size = 100 000
FP 16
Количество используемых графических процессоровИспользуемый графический процессорПримерная скорость (мин.сек), 1 000 шаговИспользуемый Batch size
4Nvidia RTX A450015,8110 000
4Quadro RTX 600020,3412 500
2Nvidia TITAN RTX32,686 250
2Quadro RTX 600037,9310 000
1GeForce RTX 309038,8910 000
1GeForce RTX 307048,512 500
1Quadro RTX 600052,5610 000

Часто задаваемые вопросы

Стоит ли покупать видеокарты для машинного обучения?

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

Какая видеокарта наиболее эффективка для машинного обучения?

NVIDIA A100 часто считается наилучшим выбороы для машинного обучения за счет превосходных производительности и объема памяти для больших моделей. Пользователям с ограниченным бюджетом серьезные возможности для эффективной тренировки моделей предоставляет видеокарта NVIDIA RTX 3090.

Для машинного обучения предпочтительнее AMD или NVIDIA?

NVIDIA в целом более популярна, благодаря надежной программной экосистеме, которая увеличивает производительность и повышает совместимость с популярными платформами. Хотя видеокарты AMD улучшились, они все еще отстают от NVIDIA в плане оптимизации и поддержки приложений машинного обучения.

Помогают ли видеокарты в обработке естественного языка (NLP)?

Да, видеокарты значительно ускоряют тренировку нейросетей в сфере обработки естественного языка (NLP), благодаря эффективной работе с параллельными подсчетами. Это ускорение скорости позволяет ускорять экспериментирование и обновление, что ведет к повышению эффективности модели и сокращению времени тренировки.

Вас ждет еще больше увлекательного чтения

Машинный перевод в военной сфере

Машинный перевод в военной сфере

April 16, 2025

Преобразование текста в речь для колл-центров

Преобразование текста в речь для колл-центров

January 8, 2025

ИИ-контент vs. человеческий подход: поиск оптимального баланса

ИИ-контент vs. человеческий подход: поиск оптимального баланса

December 18, 2024

Связаться с нами

* Обязательное поле

Ваша конфиденциальная информация имеет для нас первостепенное значение; ваши персональные данные используются строго в целях связи.

Электронная почта

Отправлено

Ваш запрос был успешно отправлен

×