Дообучение vision-language модели BridgeTower на датасете New Yorker Caption Contest достигает пропускной способности 847.7 samples/s на ускорителе Habana Gaudi2. Это в 1.4 раза быстрее, чем на Nvidia H100, и в 2.5 раза быстрее, чем на A100 80GB. Прирост обеспечивают два изменения в командной строке: увеличение dataloader_num_workers и включение аппаратного media pipeline на Gaudi2.
Для ML-инженеров, работающих с мультимодальными моделями, это прямой сигнал: узкое место часто находится не в вычислениях, а в загрузке данных. Gaudi2 решает эту проблему на аппаратном уровне. Разберём методику эксперимента, цифры и способ воспроизведения.
Введение: проблема медленного обучения мультимодальных моделей
Vision-language модели обрабатывают пары «изображение + текст». На каждом шаге обучения даталоадер должен прочитать JPEG, декодировать его, привести к нужному разрешению, нормализовать пиксели и собрать батч. Эти операции выполняются на CPU. Когда CPU не успевает, ускоритель простаивает в ожидании данных.
На GPU семейства Nvidia декодирование и аугментация изображений почти всегда ложатся на центральный процессор. При больших батчах и тяжёлых трансформациях CPU становится бутылочным горлышком. Утилизация GPU падает, время обучения растёт, деньги расходуются впустую.
Habana Gaudi2 имеет специализированные аппаратные блоки media pipeline. Они выполняют декодирование JPEG, изменение размера, нормализацию и аугментацию прямо на ускорителе, минуя CPU. Это снимает ограничение загрузки данных и позволяет Gaudi2 работать с высокой утилизацией даже на мультимодальных пайплайнах.
Если вы уже работали с инференсом на Gaudi2, вам будет знакома архитектура HPU и подход Optimum Habana. Подробный разбор инференса BLOOMZ на Gaudi2 против A100 есть в отдельном бенчмарке, где Gaudi2 показал ускорение до 2.89 раза на модели 7B.
Методология эксперимента: BridgeTower, датасет и конфигурация
Тест воспроизводит официальный пример дообучения из репозитория Optimum Habana. Изменения минимальны: два аргумента командной строки. Это позволяет сравнить производительность на Gaudi2, H100 и A100 80GB в одинаковых условиях.
Модель BridgeTower: архитектура и особенности
BridgeTower объединяет vision transformer и text transformer через кросс-модальные слои. Модель содержит 866 миллионов параметров. Она предназначена для задач типа visual question answering, image captioning и генерации подписей к изображениям.
В эксперименте модель дообучается на задаче генерации подписи к карикатуре. Входные данные: изображение и короткий текст. Выход: текстовая подпись. Это типичный сценарий для vision-language моделей среднего размера.
Датасет New Yorker Caption Contest
Датасет содержит карикатуры из конкурса подписей журнала New Yorker. Задача модели - сгенерировать остроумную подпись к изображению. Формат данных: файл изображения в JPEG и текстовая метка. Объём датасета достаточен для дообучения, но не настолько велик, чтобы тест занимал дни.
ПО для эксперимента: Habana SynapseAI SDK, Optimum Habana, PyTorch. Код основан на официальном примере Hugging Face для BridgeTower, адаптированном под HPU.
Результаты: Gaudi2 против H100 и A100
Пропускная способность измеряется в samples/s - количество обработанных примеров в секунду. Это прямая метрика скорости обучения: чем выше samples/s, тем быстрее модель проходит эпоху.
| Ускоритель | Пропускная способность, samples/s | Относительное ускорение |
|---|---|---|
| Habana Gaudi2 | 847.7 | 1.0x (базовый) |
| Nvidia H100 | 605.5 | 0.71x от Gaudi2 |
| Nvidia A100 80GB | 339.1 | 0.40x от Gaudi2 |
Gaudi2 обгоняет H100 в 1.4 раза и A100 80GB в 2.5 раза. Разрыв с A100 особенно заметен: два с половиной раза - это разница между неделей и двумя с половиной неделями обучения.
Почему Gaudi2 быстрее: роль media pipeline
На H100 и A100 декодирование JPEG и аугментация выполняются на CPU. При достаточно высокой скорости вычислений CPU не успевает подавать данные, и GPU простаивает. Увеличение числа воркеров даталоадера помогает до определённого предела, но упирается в количество ядер CPU и накладные расходы на межпроцессное взаимодействие.
Gaudi2 переносит эти операции на аппаратные блоки media pipeline. Декодирование, ресайз, нормализация и аугментация происходят на самом ускорителе. CPU освобождается, очередь данных не пустеет, HPU работает непрерывно. Это архитектурное преимущество, которое нельзя скомпенсировать только софтверными трюками на GPU.
Оптимизация загрузки данных: от простого к сложному
Путь к максимальной пропускной способности состоит из двух шагов. Первый доступен на любом ускорителе. Второй - только на Gaudi2.
Увеличение dataloader_num_workers
Параметр dataloader_num_workers в PyTorch задаёт число процессов, которые параллельно загружают и подготавливают данные. По умолчанию значение равно 0, и загрузка выполняется в основном процессе. Это замедляет обучение.
Увеличение до 8 или 16 воркеров позволяет CPU параллельно декодировать несколько изображений. Пропускная способность растёт. Однако у метода есть предел: воркеры конкурируют за ядра CPU, а накладные расходы на создание процессов и передачу данных растут. На GPU этот предел наступает быстро.
Аппаратное декодирование и аугментация через media pipeline в Gaudi2
Gaudi2 включает аппаратные блоки для обработки изображений. В Optimum Habana они активируются аргументом --use_habana_media_pipeline. После включения декодирование JPEG, изменение размера, нормализация и аугментация выполняются на HPU.
CPU больше не участвует в подготовке изображений. Это устраняет узкое место полностью. Комбинация media pipeline с умеренным числом воркеров даталоадера даёт максимальную пропускную способность 847.7 samples/s.
Как воспроизвести эксперимент: пошаговая инструкция
Для воспроизведения нужен сервер с Habana Gaudi2, установленный Habana SynapseAI SDK, Optimum Habana и PyTorch. Подойдут инстансы AWS DL1. Код примера доступен в репозитории Optimum Habana.
Необходимое оборудование и ПО
Минимальные требования: один ускоритель Gaudi2, CPU с достаточным числом ядер для даталоадера, Habana SynapseAI SDK последней стабильной версии, Optimum Habana, PyTorch с поддержкой HPU. Версии библиотек должны соответствовать матрице совместимости Habana.
Запуск обучения с оптимизациями
Команда запуска выглядит так:
python run_bridgetower.py \
--dataloader_num_workers 8 \
--use_habana_media_pipelineДва аргумента включают обе оптимизации. Первый увеличивает число процессов загрузки данных. Второй переносит обработку изображений на аппаратные блоки Gaudi2. Всё остальное - стандартный скрипт дообучения BridgeTower из Optimum Habana.
Если вы работаете с инференсом на CPU, обратите внимание на практический тест ускорения трансформеров на Intel Sapphire Rapids. Там разбираются похожие принципы оптимизации для другой аппаратной платформы.
Ограничения и применимость результатов
Тестирование проводилось на одной модели BridgeTower и одном датасете New Yorker Caption Contest. Для других архитектур и данных цифры могут отличаться. Модели с другим соотношением вычислительной нагрузки и объёма данных могут показать меньший выигрыш от media pipeline.
Не все операции предобработки переносятся на аппаратные блоки Gaudi2. Специфические аугментации, написанные на Python, останутся на CPU. В таких случаях прирост будет ниже. Перед внедрением Gaudi2 в продакшн стоит прогнать бенчмарк на своём пайплайне.
Сравнение с H100 и A100 проводилось в одинаковых условиях, но на разных аппаратных платформах. Разница в экосистемах и версиях библиотек может влиять на воспроизводимость. Тем не менее, двукратный отрыв от A100 слишком велик, чтобы списать его на погрешность.
Заключение: Gaudi2 как перспективный ускоритель для мультимодального обучения
Gaudi2 показал 847.7 samples/s при дообучении BridgeTower. Это в 1.4 раза быстрее H100 и в 2.5 раза быстрее A100 80GB. Прирост обеспечен аппаратным media pipeline, который снимает узкое место загрузки изображений.
Для ML-инженеров, работающих с vision-language моделями, Gaudi2 - это способ сократить время и стоимость обучения. Воспроизведение требует двух аргументов командной строки. Если вы планируете масштабировать мультимодальные пайплайны, стоит протестировать Optimum Habana на Gaudi2 в своей конфигурации.
Тема эффективного обучения моделей шире одного ускорителя. О том, как 20B Looping Model обучается в 10 раз эффективнее Qwen3 Coder 30B, читайте в разборе архитектуры и стоимости обучения.