مزامنة Batch Norm والحالة المجزأة
حافظ على اتساق الإحصاءات والأوزان
مزامنة Batch Norm والحالة المجزأة درس مجاني في 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.
الأسئلة الشائعة
هل درس «مزامنة Batch Norm والحالة المجزأة» مجاني؟
نعم — نص درس «مزامنة Batch Norm والحالة المجزأة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Deep Learning Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Deep Learning Academy 4 دروس في المجموع.
ماذا ستتعلم في «مزامنة Batch Norm والحالة المجزأة»؟
حافظ على اتساق الإحصاءات والأوزان تتمرن على Deep Learning Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Deep Learning Academy؟
لا تُشترط خبرة سابقة. Deep Learning Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «مزامنة Batch Norm والحالة المجزأة»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Deep Learning Academy هذا؟
نعم. كل درس في Deep Learning Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- التوازي على مستوى البيانات مقابل النموذج
- أساسيات DistributedDataParallel
- مزامنة Batch Norm والحالة المجزأة
- تشغيل المهام باستخدام torchrun