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

Distributed Training

Distributed Training

Distributed Training — обучение ML-модели на нескольких GPU или серверах одновременно. Объединяет Data Parallelism, Tensor Parallelism и Pipeline Parallelism для работы с большими моделями.

Что такое Distributed Training

Distributed Training — обучение модели с использованием нескольких GPU, возможно на разных серверах. Необходимо, когда модель не помещается в один GPU или когда обучение на одном GPU заняло бы недопустимо долго.

Стратегии параллелизма

Стратегия Что делит Когда применять
Data Parallelism Данные Модель влезает в 1 GPU
Tensor Parallelism Слои горизонтально Один слой не влезает
Pipeline Parallelism Слои вертикально Много слоёв
ZeRO / FSDP Optimizer + параметры Экономия VRAM
Expert Parallelism Эксперты MoE MoE-модели
3D Parallelism DP + TP + PP Модели >100B

Фреймворки

Фреймворк Компания Возможности
PyTorch FSDP Meta DP + шардинг, встроен в PyTorch
DeepSpeed Microsoft ZeRO Stage 1-3, offloading
Megatron-LM NVIDIA TP + PP, оптимизирован для NVIDIA
Accelerate HuggingFace Обёртка над FSDP/DeepSpeed

Запуск

# torchrun — стандартный лаунчер PyTorch
# 1 узел, 8 GPU
torchrun --nproc_per_node=8 train.py

# 4 узла по 8 GPU = 32 GPU
torchrun --nnodes=4 --nproc_per_node=8 \
    --rdzv_backend=c10d --rdzv_endpoint=master:29500 \
    train.py

Сколько GPU нужно

Модель Pretraining LoRA Fine-tuning
7B 8-16 GPU 1 GPU
70B 64-256 GPU 4-8 GPU
405B 512+ GPU 16-32 GPU
671B (MoE) 2048+ GPU 64+ GPU

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

Используется в
Измеряет

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

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

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