Обучение моделей 19 просмотров

Pipeline Parallelism

Pipeline Parallelism (PP)

Pipeline Parallelism — метод распределения модели, при котором слои модели распределяются по GPU вертикально. Входные данные разбиваются на микро-батчи, обрабатываемые конвейером для минимизации простоя GPU.

Что такое Pipeline Parallelism

Pipeline Parallelism (PP) — разделение модели по слоям между GPU. GPU 0 выполняет слои 0-9, GPU 1 — слои 10-19 и т.д. Для уменьшения простоя (bubble) батч разбивается на микро-батчи, создавая конвейер.

Проблема наивного разделения

Без конвейера только одна GPU работает в каждый момент:

Наивное: GPU 0 [████          ]   GPU 1 [    ████      ]   GPU 2 [        ████  ]
         Работает  Ждёт              Ждёт  Работает           Ждёт      Работает

Утилизация: 33%

Конвейер (Pipeline)

Батч разбивается на chunks (микро-батчи):

         chunk0  chunk1  chunk2  chunk3
GPU 0:  [F0    ][F1    ][F2    ][F3    ][B3    ][B2    ][B1    ][B0    ]
GPU 1:  [      ][F0    ][F1    ][F2    ][F3    ][B3    ][B2    ][B1    ]
GPU 2:  [      ][      ][F0    ][F1    ][F2    ][F3    ][B3    ][B2    ]

F = forward, B = backward

Bubble (простой) = (PP_degree - 1) / (PP_degree - 1 + chunks)

Чем больше chunks, тем меньше bubble. При chunks=32 и PP=4: bubble = 3/35 ≈ 8.6%.

Расчёт batch size с PP

Global Batch Size = micro_batch_size × chunks × DP_degree

Пример:
micro_batch_size = 8
chunks = 32
DP_degree = 4
GBS = 8 × 32 × 4 = 1024

Схемы PP

Схема Bubble Память Описание
GPipe Большой Большая Все forward, потом все backward
1F1B Меньше Меньше Forward и backward чередуются
Interleaved 1F1B Минимальный Средняя Каждая GPU обрабатывает несколько непоследовательных слоёв

Комбинация DP + PP + TP

На практике используют все три вида параллелизма:

64 GPU = 8 нод × 8 GPU:
- TP = 4 (внутри ноды, NVLink)
- PP = 4 (между нодами, InfiniBand)
- DP = 4 (между группами PP, All-Reduce)

Это позволяет обучать модели с триллионами параметров.

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

Альтернатива

Попробуйте на практике

Арендуйте GPU и запустите ML-модели в Intelion Cloud

Начать работу