0Pricing
Deep Learning Academy · Урок

Синхронизация нормализации пакетов и фрагментированное состояние

Поддерживайте согласованность статистики и весов

«Синхронизация нормализации пакетов и фрагментированное состояние» — бесплатный урок Deep Learning Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Deep Learning Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Deep Learning Academy содержит 4 уроков всего.

Части этого урока еще не переведены и отображаются на английском.

The Small-Batch Problem

Batch norm computes stats from each GPU's local batch. Split across many GPUs, each per-device batch shrinks and those stats get noisy.

Enter SyncBatchNorm

SyncBatchNorm fixes this by computing mean and variance across all GPUs together, as if it saw the full global batch.

Convert in One Call

You do not rewrite layers by hand. One helper converts every BatchNorm in your model to its synced version.

import torch.nn as nn
model = nn.SyncBatchNorm.convert_sync_batchnorm(model)

Convert Before Wrapping

Order matters: call the conversion before you wrap the model in DDP, so the synced layers are the ones DDP manages.

model = nn.SyncBatchNorm.convert_sync_batchnorm(model)
model = DDP(model, device_ids=[local_rank])

It Costs Communication

Syncing stats means an extra all-reduce at every batch norm layer. Use it when small per-GPU batches hurt accuracy, not by default.

The Memory Wall

Plain DDP copies the full model, gradients, and optimizer state onto every GPU. For huge models that redundancy wastes memory fast.

Shard the State

Sharding splits those tensors across GPUs so each device stores only a slice. Together the GPUs still hold the whole model.

Meet FSDP

PyTorch's FullyShardedDataParallel shards parameters, gradients, and optimizer state. It lets you train models far larger than one GPU's memory.

from torch.distributed.fsdp import FullyShardedDataParallel as FSDP
model = FSDP(model)

Gather Just in Time

FSDP gathers each layer's full weights only when it is needed for compute, then frees them again. That keeps peak memory low.

ZeRO Stages

Sharding comes in levels, called ZeRO stages: shard optimizer state, then gradients, then parameters. More sharding saves more memory.

Pick the Right Tool

If your model fits per GPU, plain DDP is simplest. When it does not, reach for FSDP to shard state and keep going.

Quick Check

Decide what each technique is really for.

Recap

You met two consistency tools: SyncBatchNorm keeps stats global across GPUs, and FSDP shards state so giant models fit. Use each only when you need it.

Часто задаваемые вопросы

Урок «Синхронизация нормализации пакетов и фрагментированное состояние» бесплатный?

Да — полный текст урока «Синхронизация нормализации пакетов и фрагментированное состояние» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Deep Learning Academy, подпишись на CoddyKit PRO. Курс Deep Learning Academy содержит 4 уроков всего.

Чему я научусь в уроке «Синхронизация нормализации пакетов и фрагментированное состояние»?

Поддерживайте согласованность статистики и весов Ты практикуешь Deep Learning Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Deep Learning Academy?

Предыдущий опыт не требуется. Deep Learning Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Синхронизация нормализации пакетов и фрагментированное состояние»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Deep Learning Academy?

Да. Каждый урок Deep Learning Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Параллелизм данных и моделей
  2. Основы DistributedDataParallel
  3. Синхронизация нормализации пакетов и фрагментированное состояние
  4. Запускайте задания с помощью torchrun
← Назад к Deep Learning Academy