Назад к подготовке
ВопросСложнаяdistributed-trainingТехническое собеседование · Sber / GigaChat

DDP и all-reduce overlap при distributed training

Как работает Distributed Data Parallel training и почему overlap gradient all-reduce с backprop помогает ускорить обучение?

Ответить самому

Сначала сформулируйте ответ как на собеседовании, затем откройте разбор и оцените себя.

Загрузка

Короткий ответ

В DDP каждая GPU считает gradients на своем mini-batch, затем gradients синхронизируются all-reduce; overlap запускает коммуникацию для ранних слоев, пока backprop считает остальные.

Полный разбор

В Distributed Data Parallel каждая replica модели получает свою часть batch, делает forward/backward и получает локальные gradients. Чтобы модели оставались одинаковыми, gradients усредняются между workers через all-reduce, после чего optimizer step одинаковый на всех replica.

Если ждать конца всего backward и только потом синхронизировать gradients, коммуникация добавляет отдельную задержку. DDP группирует gradients в buckets и может начинать all-reduce для bucket сразу, когда gradients в нем готовы. Пока сеть передает gradients ранних buckets, GPU продолжает считать backward для следующих слоев.

Эффект зависит от размера модели, bandwidth/latency interconnect, bucket size и баланса compute/communication.

Типичные ошибки

  • Думать, что DDP делит параметры модели между GPU.
  • Не отличать data parallel от tensor/model parallel.
  • Не понимать, зачем нужны gradient buckets.

Как отвечать на собеседовании

  • Скажи: each worker has full model replica.
  • Объясни overlap через buckets during backward.