Pipeline parallelism в обучении моделей

Термин глоссария

Pipeline parallelism


Pipeline parallelism — метод разделения модели на последовательные части, обучаемые конвейером на разных устройствах для повышения масштабируемости.

Определение

Pipeline parallelism — это стратегия распределённого обучения, при которой модель делится на последовательные сегменты (pipeline stages), каждая из которых размещается на отдельном GPU или узле. В отличие от tensor parallelism, где параллелятся отдельные матричные операции, pipeline parallelism параллелит выполнение forward и backward pass для разных частей модели и разных мини-батчей.

Такой подход позволяет обучать модели, которые не помещаются в память одного ускорителя, и повышать throughput при условии правильной организации конвейера.

Как работает

Модель разбивается на несколько последовательных блоков. Каждый блок выполняется на отдельном GPU. Обработка данных происходит конвейерно: пока первая стадия обрабатывает batch N+1, вторая стадия обрабатывает batch N, третья — batch N–1 и так далее.

Ключевые шаги механизма:

  • Разделение модели — архитектура делится на фрагменты одинаковой вычислительной нагрузки.
  • Конвейеризация — мини-батч разбивается на микробатчи, которые передаются по стадиям.
  • Параллельный forward pass — разные стадии одновременно работают над разными микробатчами.
  • Параллельный backward pass — градиенты также передаются по стадиям в обратном порядке.
  • Синхронизация — обеспечение корректного прохождения данных и градиентов по конвейеру.

Эффективность pipeline parallelism определяется балансом нагрузки между стадиями: если одна стадия работает значительно дольше других, возникает pipeline bubble — простой в конвейере.

Где применяется

  • Обучение крупных моделей, превышающих память одного GPU.
  • Тренировка LLM с сотнями слоёв.
  • Комбинация с tensor parallelism в Megatron-LM и DeepSpeed.
  • Архитектуры, где можно легко разделить слои на последовательные сегменты.
  • Обучение на больших кластерах с NVLink/InfiniBand.

Практические примеры использования

В Megatron-LM pipeline parallelism используется для обучения больших Transformer-моделей: слои равномерно распределяются между GPU, а мини-батч разбивается на микробатчи для конвейерной обработки. Такая схема позволяет существенно увеличить общую производительность.

В DeepSpeed pipeline parallelism применяется вместе с ZeRO для уменьшения memory footprint и оптимизации распределения параметров, активаций и градиентов.

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

В гибридных системах pipeline parallelism комбинируется с tensor parallelism: конвейер разделяет модель по слоям, а внутри каждого блока матричные операции распределяются по нескольким GPU.

Ключевые свойства pipeline parallelism

  • Последовательное разбиение — подходит для архитектур с линейной структурой слоёв.
  • Высокий throughput — при правильной настройке конвейера.
  • Требование равномерной нагрузки — дисбаланс создаёт простои.
  • Зависимость от микробатчинга — размер микробатчей определяет эффективность конвейера.

Проблемы и ограничения

  • Pipeline bubbles — простой стадий при дисбалансе или малом размере микробатча.
  • Сложность синхронизации — требуется чёткое управление передачею активаций и градиентов.
  • Высокие коммуникационные требования — нужна быстрая межсоединительная сеть.
  • Чувствительность к архитектуре — не все модели легко разбить на последовательные блоки.

Преимущества и ограничения

  • Плюс: позволяет обучать очень глубокие модели, не помещающиеся в один GPU.
  • Плюс: повышает производительность при большом количестве микробатчей.
  • Плюс: легко комбинируется с другими типами параллелизма.
  • Плюс: уменьшает memory footprint на каждом устройстве.
  • Минус: чувствительность к дисбалансу стадий.
  • Минус: требует тщательной настройки микробатчинга.
  • Минус: создаёт дополнительные коммуникационные накладные расходы.
  • Минус: сложнее дебажить и профилировать.

Связанные термины

  • Model parallelism
  • Tensor parallelism
  • Expert parallelism
  • Distributed training
  • Megatron-LM
  • DeepSpeed
  • ZeRO
  • Microbatching

Категория термина

Обучение и дообучение