pipeline parallelism
Распределение слоёв модели по разным GPU для обработки разных микробатчей одновременно.
Что такое pipeline parallelism
Pipeline parallelism (PP) — стратегия распределённых вычислений, при которой разные слои модели размещаются на разных GPU. GPU 0 хранит первые N слоёв, GPU 1 — следующие N, и так далее. Данные «текут» по конвейеру от GPU к GPU.
Чтобы скрыть простои (bubble) конвейера, входной батч делится на микробатчи: пока GPU 1 обрабатывает первый микробатч, GPU 0 уже берёт второй. Это позволяет нескольким GPU работать одновременно, несмотря на последовательную природу прямого прохода.
Pipeline vs Tensor parallelism
| Pipeline Parallelism | Tensor Parallelism | |
|---|---|---|
| Что делится | Слои между GPU | Веса внутри слоя |
| Коммуникация | Редкая (между стадиями) | Частая (каждый слой) |
| Требование к сети | Умеренное (PCIe достаточно) | Высокое (NVLink) |
| Латентность | Выше (pipeline bubble) | Ниже |
| Применение | Обучение (DeepSpeed) | Инференс (vLLM) |
PP чаще применяется при обучении больших моделей в комбинации с tensor parallelism и data parallelism (3D parallelism). При инференсе предпочтительнее tensor parallelism из-за меньшей задержки.
Комбинация стратегий
Для модели 175B (GPT-3 класса) при обучении:
- 8 GPU × TP=8 (внутри узла через NVLink)
- 16 узлов × PP=16 (между узлами через InfiniBand)
- Итого: 128 GPU
Связанные термины
- tensor parallelism — комплементарная стратегия
- DeepSpeed — библиотека, поддерживающая PP при обучении
- FSDP — альтернативная стратегия шардирования
- NVLink — необходима для эффективного tensor parallelism
Готовы запустить GPU-задачу?
Запустить GPU-сервер