Broadcast: Ab sabhi GPUs ke paas identical updated parameters hain
YE KAAM KYU KARTA HAI? Kyunki full dataset ka gradient, har subset ke gradients ka average hota hai (linearity of expectation). Har GPU true gradient ka ek noisy estimate compute karta hai, aur averaging se variance reduce hoti hai.
Kya hai: Har GPU sirf N1 optimizer states store karta hai.
Kaise:
Parameters ko N groups mein partition karo: θ=[θ1,θ2,…,θN]
GPU r sirf partition θr ke liye optimizer states store karta hai
Gradients ke AllReduce ke baad, GPU r sirf θr ko apne local optimizer states use karke update karta hai
Sabhi GPUs ke paas full model ho iske liye updated parameters AllGather karo
Memory savings:
MZeRO-1=2Φ+2Φ+N12Φ=4Φ+N12Φ
YE KYU KAAM KARTA HAI? Parameter θi ke optimizer states (momentum, variance) sirf gradient ∇θi par depend karte hain, doosre parameters par nahi. Isliye GPU r apna assigned partition independently update kar sakta hai.
Kya hai: Additionally gradients bhi partition karo—har GPU sirf N1 gradients store karta hai.
Kaise:
Backward pass ke dauran, har GPU full local gradients compute karta hai
AllReduce ki jagah ReduceScatter use karo: GPU r ko sirf partition θr ke liye averaged gradient milta hai
GPU rθr update karta hai, phir AllGather
Memory savings:
MZeRO-2=2Φ+N2Φ+N12Φ=2Φ+N14Φ
ReduceScatter KYU? Ye AllReduce + partition ek hi operation mein hai. Iske bajaye ki har GPU ko full averaged gradient mile (AllReduce), har GPU ko averaged gradient ka sirf apna assigned slice milta hai.
Strategy: GPU par sirf currently-computed layer ke parameters rakho. Current layer compute karte waqt next layer ke parameters CPU se prefetch karo.
Recall Ek 12-saal ke bache ko explain karo
Socho tum aur 7 dost identical LEGO castles bana rahe ho (wo hai tumhara neural network). Tumhe sab ko instruction manual chahiye (model parameters), aur tum alag-alag rooms bana rahe ho (alag data batches process kar rahe ho).
Standard tarika: Har kisi ke paas 1000-page manual ki apni full copy hai. Jab tum sab ek room finish karte ho, notes compare karte ho: "Mujhe lagta hai tower 10 blocks oonchi honi chahiye," "Mujhe 11 lagti hai," etc. Tum suggestions average karte ho aur sabhi apna manual update karte hain "10.5 blocks." Ye kaam karta hai, lekin tumne total 8,000 pages print ki hain!
ZeRO tarika:
ZeRO-1: Har dost changes karne ke liye sirf manual ka 1/8 (125 pages) rakhta hai, lekin sabhi ke paas abhi bhi ek full read-only copy hai.
ZeRO-2: Suggestions share karte waqt, har dost sirf apne 125-page section ke liye suggestions likhta hai.
ZeRO-3: Har dost ke paas sirf 125 pages hain, bas. Jab tower banana ho, tum chillate ho "Kiske paas tower pages hain?" aur woh dost sabko unhe parhta hai. Tum banate ho, phir woh instructions bhool jaate ho.
ZeRO-3 ka matlab hai tumne total sirf 1,000 pages print ki (8× savings!), lekin ab dosto se pages padhwaane mein time lagta hai. Yahi trade-off hai: kam paper (memory), zyada baat (communication).
Model Parallelism: ZeRO ka complement hai—model layers ko GPUs ke across split karta hai (replicate karne ki jagah)
Pipeline Parallelism: Model parallelism ka ek aur form; ZeRO ko pipelines ke saath combine kiya ja sakta hai
Mixed Precision Training: ZeRO inherently mixed precision use karta hai (fp16 compute, fp32 optimizer)
Gradient Accumulation: ZeRO ke saath combine karke larger effective batch sizes handle kar sakte hain
Activation Checkpointing: Mact term reduce karta hai, jisse ZeRO-3 ki jagah ZeRO-2 feasible ban jaata hai
AllReduce and Collective Communication: Core primitives; ZeRO AllReduce ko ReduceScatter + AllGather se replace karta hai
Large Language Models Training: ZeRO GPT-3, LLaMA, PaLM scale models train karne ke liye essential hai
Memory-Efficient Optimizers: Adafactor, 8-bit Adam 12Φ optimizer term reduce karte hain
#flashcards/ai-ml
Distributed training mein data parallelism kya hota hai? :: Ek strategy jisme har GPU ke paas model ki complete copy hoti hai, wo parallel mein alag data batches process karta hai, aur sabhi replicas ko identically update karne ke liye AllReduce se gradients synchronize karta hai.
Standard data parallelism mein mixed precision aur Adam optimizer ke saath memory consumption ka formula kya hai?
Mgpu=16Φ bytes jahan Φ parameters ki number hai. Breakdown: 2Φ params (fp16) + 2Φ gradients + 12Φ optimizer states (fp32 momentum, variance, master weights).
ZeRO ka full form kya hai aur ye kya optimize karta hai?
Zero Redundancy Optimizer. Ye data parallelism mein memory redundancy eliminate karta hai—model states (optimizer states, gradients, parameters) ko replicate karne ki jagah GPUs ke across partition karta hai.
Teen ZeRO stages kya hain aur har ek kya partition karta hai?
ZeRO-1: sirf optimizer states partition karta hai. ZeRO-2: optimizer states + gradients partition karta hai. ZeRO-3: optimizer states + gradients + parameters partition karta hai.
N GPUs ke saath ZeRO-3 mein memory per GPU ka formula kya hai?
MZeRO-3=N16Φ — sabhi model state components (params, gradients, optimizer states) N ways partition hote hain, N× memory reduction achieve hota hai.
ZeRO-2 AllReduce ki jagah kaun sa communication primitive use karta hai aur kyun?
ReduceScatter. Ye AllReduce aur partitioning ko ek hi operation mein combine karta hai—har GPU ko sirf apne assigned parameter partition ke liye averaged gradient milta hai, gradient memory bachata hai aur correctness maintain karta hai.
Standard data parallelism se compare karte hue ZeRO-3 use karne mein main trade-off kya hai? :: Memory vs. communication. ZeRO-3 N× memory savings achieve karta hai lekin 3× zyada communication volume chahiye (AllGather parameters do baar per step + ReduceScatter gradients ek baar, vs. standard DP mein ek AllReduce).
ZeRO-Infinity kya hai aur kab use hota hai?
ZeRO-3 ka ek extension jo partitioned model states ko CPU RAM aur NVMe SSD par offload karta hai, bandwidth-aware prefetching use karta hai. Tab use hota hai jab trillion-parameter models available GPUs ke saath ZeRO-3 mein bhi fit nahi hote.
ZeRO-3 ko efficient rehne ke liye high-bandwidth interconnects kyun chahiye?
Kyunki isse forward aur backward passes ke dauran parameters AllGather karne padte hain. 75% compute efficiency ke liye, network bandwidth satisfy karna chahiye BWmin=N⋅Tcompute18Φ(N−1). Low bandwidth se communication overhead dominant ho jaata hai.
ZeRO-3 available hone ke bawajood kab use NAHI karna chahiye?
Jab tumhara model standard DP ya ZeRO-2 ke saath GPU memory mein fit ho jaata ho. ZeRO-3 ka 3× communication overhead training slow kar deta hai agar memory bottleneck nahi hai. Minimum ZeRO stage use karo jo tumhara model fit kare.