FSDP & DeepSpeed

Тема дорожной карты · Глубокое обучение

FSDP (Fully Sharded Data Parallel) и DeepSpeed ZeRO — это две технологии, позволяющие распределить параметры модели, градиенты и состояние optimizer-а между несколькими GPU, что позволяет обучать модели, которые не помещаются на одном устройстве. Обе технологии используются для улучшения производительности и эффективности обучения глубоких моделей.

Как это работает

FSDP и DeepSpeed используются для распределения вычислений по нескольким GPU, что позволяет эффективно обучать модели, которые требуют большого объема памяти. FSDP шардирует параметры модели, градиенты и состояние optimizer-а между GPU, а DeepSpeed ZeRO предлагает ту же идею, но с добавлением функций, таких как offload на CPU/NVMe, аккумуляция градиентов и pipeline parallelism. Обе технологии используют mixed precision для уменьшения потребления памяти и ускорения процесса обучения. Mixed precision позволяет использовать FP16 или BF16 для вычислений, что уменьшает потребность в памяти, но требует аккумуляции градиентов с FP32 для сохранения точности вычислений.

Когда применять

Mixed precision (torch.cuda.amp или accelerator="auto" в Lightning) следует использовать для бесплатного ускорения обучения на 1.5-2x без потери качества на современных GPU (Ampere+). Для обучения на нескольких GPU начинайте с DDP (Data Parallel — репликации модели по GPU). Используйте FSDP или DeepSpeed для моделей, которые не помещаются на одном GPU. FSDP подходит для нативной интеграции с PyTorch, в то время как DeepSpeed предлагает дополнительные функции, такие как ZeRO-3 и offload, а также инструменты для улучшения производительности инференса.

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

Типичные ошибки при использовании FSDP и DeepSpeed включают FP16 NaN losses (BF16, если железо поддерживает, является более стабильным вариантом); DDP с несогласованным RNG между rank (разные аугментации могут нарушить согласие градиентов); FSDP без activation checkpointing (OOM на больших моделях); self-supervised pretraining на малых данных (compute впустую).

Связанные понятия

Полезные ресурсы

Проверить знания (1)

Загрузка вопросов…