6.1.2 · AI-ML › Scaling & Efficient Architectures
Intuition Ek-sentence wali idea
Tumhare paas ek fixed compute budget C (GPU-hours × FLOP/s) hai. Tumhe ise spend karna hai — decide karke ki model kitna bada hoga (parameters N ) aur kitna data dikhaaoge usse (tokens D ). Agar kisi ek pe bahut zyada kharch karo toh doosra waste hoga — goal hai fixed budget ka optimal split model size aur data ke beech dhundhna.
Definition Core resource triangle
N = parameters ki sankhya (model size).
D = jinpe model train hota hai un tokens ki sankhya (actually consumed dataset size).
C = training mein use hue total compute FLOPs mein.
Ye teeno empirical rule C ≈ 6 N D se jude hue hain. Teeno ko freely nahi chun sakte: C fix karo, toh N aur D ek doosre ke saath trade off karte hain.
WHY C ≈ 6 N D ? Har token ke liye roughly chahiye:
2 FLOPs per parameter forward pass ke liye (ek multiply + ek add per weight = 2 FLOPs).
~4 FLOPs per parameter backward pass ke liye (weights aur activations ke w.r.t. gradients, ≈ forward cost se do guna).
Toh total per token ≈ 6 N FLOPs. D tokens ke upar:
Intuition Hum minimize kya kar rahe hain?
Hum chahte hain sabse kam possible loss L jo hum fixed compute budget C se pa saken. Loss dono N aur D ka function hai. Agar model bahut bada banao lekin data kam do, toh overfit hoga / capacity underuse hogi. Agar ek chhote model ko data mein duba do, uski capacity saturate ho jaayegi. Ek sweet spot hota hai.
Empirical scaling law (Hoffmann et al., "Chinchilla", 2022) fit karta hai:
Hum L ( N , D ) ko minimize karte hain 6 N D = C (fixed budget) ke subject to .
Step 1 — constraint substitute karo. Kyun? 2-variable constrained problem ko 1 variable mein convert karne ke liye. 6 N D = C se: D = 6 N C .
L ( N ) = E + N α A + B ( C 6 N ) β
Step 2 — differentiate karo aur zero pe set karo. Kyun? Ek smooth curve ke minimum ka slope zero hota hai.
d N d L = − α A N − α − 1 + β B ( C 6 ) β N β − 1 = 0
Step 3 — N ke liye solve karo. Kyun? Hume chahiye ki N opt C ke saath kaise scale karta hai. Terms move karo:
α A N − α − 1 = β B ( C 6 ) β N β − 1
N − α − 1 − β + 1 = α A β B ( 6/ C ) β ⇒ N − ( α + β ) ∝ C − β
N opt ∝ C α + β β
Step 4 — D nikalo. Kyunki D = C / ( 6 N ) hai, D opt ∝ C / C β / ( α + β ) = C α / ( α + β ) .
Worked example Example 1 — Kya GPT-3 "over-parameterized" tha?
GPT-3: N = 175 B , D ≈ 300 B tokens pe trained.
Tokens/param = 300/175 ≈ 1.7 . Iska kyun matlab hai? Chinchilla kehta hai optimum ~20 hai. GPT-3 ne apne size ke liye ~12× bahut kam tokens use kiye — yeh bahut bada aur data-starved tha.
Fix: Chinchilla ne N = 70 B , D = 1.4 T (ratio 20) use kiya same compute pe aur GPT-3 ko beat kiya. Same C , better split ⇒ lower loss.
Worked example Example 2 — Ek naya run budget karna
Tumhare paas C = 6 × 1 0 22 FLOPs hain. Kaise split karein?
Ratio se kyun shuru karein? Yeh shape fix karta hai. D ≈ 20 N use karo.
C = 6 N D = 6 ⋅ N ⋅ 20 N = 120 N 2 .
N = C /120 = 6 × 1 0 22 /120 = 5 × 1 0 20 ≈ 2.2 × 1 0 10 .
Toh N ≈ 22 B params, D ≈ 20 N ≈ 4.4 × 1 0 11 = 440 B tokens. Check: 6 ⋅ 22 B ⋅ 440 B ≈ 5.8 × 1 0 22 ✓.
Worked example Example 3 — Forecast-then-verify: compute double karna
Forecast: agar mujhe 2 × compute mile, model kitna bada hona chahiye?
N opt ∝ C 0.46 , toh factor = 2 0.46 ≈ 1.38 . Model ~38% badhta hai, data badhta hai 2 0.54 ≈ 1.45 (~45%). Verify: growths ka product = 1.38 × 1.45 ≈ 2.0 = compute factor ✓. Dono badhte hain, koi dominate nahi karta.
Common mistake "Bada model hamesha better hota hai."
Kyun sahi lagta hai: bada N A / N α term ko shrink karta hai, aur huge models benchmark headlines pe chhaye rehte hain. Flaw: fixed compute C = 6 N D pe, N badhane se D force hoke kam hota hai, B / D β inflate hota hai. Optimum ke baad, extra parameters hurt karte hain kyunki unhe data se starve kiya jaata hai. Fix: N aur D ko saath scale karo (~20 tokens/param).
Common mistake "Bas same model ko 10× zyada data pe train karo forever."
Kyun sahi lagta hai: zyada data ⇒ lower loss, directionally hamesha sach hai. Flaw: returns diminish hote hain B / D β ke saath jisme β < 1 hai; fixed N pe aakhirkar model ki capacity saturate hoti hai — phir parameters ki jagah data pe compute spend karna wasteful hai. Fix: N ko D ke saath saath badhao.
Common mistake Training-optimal ko deployment-optimal se confuse karna.
Kyun sahi lagta hai: Chinchilla kehta hai "20 tokens/param optimal hai." Flaw: yeh training loss per FLOP minimize karta hai. Agar model billions ko serve karoge (inference cost dominate kare), toh tum chhota model zyada data pe chahte ho (over-train, jaise LLaMA). Fix: inference budget include karo — phir chhote model ko over-train karna win karta hai.
6 N D mein "6" ko exact treat karna — ya multiply-adds samajhna.
Kyun sahi lagta hai: yeh har jagah quote hota hai. Flaw: yeh attention FLOPs (sequence length ke saath scale hote hain), embeddings, etc. ignore karta hai; aur "6" ek FLOP count hai, not ek fused-multiply-add (FMA) count — ek FMA = 2 FLOPs, toh yeh sirf 3 FMAs hai. Fix: 6 N D ko leading-order FLOP estimate use karo; precision ke liye real FLOPs measure karo.
C, N, D ko link karne wali compute identity kya hai? C ≈ 6 N D (2 FLOPs/param forward + 4 FLOPs/param backward, per token, D tokens ke upar).
C = 6 N D mein 6 ka factor kyun?2 FLOPs/param forward + 4 FLOPs/param backward (weights aur activations ke w.r.t. grads) = 6 FLOPs per parameter per token. (FMAs mein 3 hai, kyunki 1 FMA = 2 FLOPs.)
Chinchilla loss law likhiye. L ( N , D ) = E + A / N α + B / D β : irreducible + parameter-limited + data-limited terms.
N_opt compute C ke saath kaise scale karta hai? N o pt ∝ C β / ( α + β ) ≈ C 0.46 (Hoffmann et al. ka reported a≈0.46).
D_opt compute C ke saath kaise scale karta hai? D o pt ∝ C α / ( α + β ) ≈ C 0.54 (b≈0.54).
Exponents a aur b ka sum 1 kyun hona chahiye? Kyunki C ∝ N D hai, toh N o pt D o pt ∝ C a + b = C 1 ke liye a+b=1 chahiye.
Tokens per parameter ke liye Chinchilla rule of thumb? ~20 tokens per parameter.
GPT-3 suboptimal kyun tha? Apne data ke liye bahut bada: ~1.7 tokens/param vs optimal ~20; data-starved, over-parameterized.
Chinchilla se kab deviate karo aur ek chhote model ko over-train karo? Jab inference cost dominate kare — chhota model + zyada data serve karna sasta hota hai.
N_opt derive karte waqt kaun sa constraint substitute karte ho? D = C / ( 6 N ) compute identity se, phir L(N) minimize karo.
Recall Feynman: ek 12-saal ke bachche ko samjhao
Socho tumhare paas ek fixed amount paisa hai ek robot banane aur sikhane ke liye. Paisa kharch kar sakte ho robot ka brain bada karne mein (zyada parameters) ya usse padhne ke liye zyada kitaabein dene mein (zyada data). Agar bahut bada brain banao lekin sirf ek kitaab do, toh woh smart hai lekin kuch jaanta nahi. Agar ek chhote brain ko ek million kitaabein do, woh sab yaad nahi rakh sakta. Trick hai balance : thoda bada brain, thodi zyada kitaabein — brain ke har bit ke liye ~20 pages . Yahi balance tumhare paison ke liye sabse smart robot deta hai.
Mnemonic Pieces yaad karo
"6 New Dogs" → C = 6 N D (Compute = 6 · N · D), jahan 6 FLOPs count karta hai (2 fwd + 4 bwd).
"20:1, size to tongue" → 20 tokens per parameter Chinchilla-optimal hai.
"Grow both, split even" → dono exponents ≈ 0.5, N aur D ko saath scale karo.
Neural Scaling Laws — power-law backbone jisme yeh note fit hota hai.
Chinchilla vs GPT-3 — empirical head-to-head.
FLOP accounting in Transformers — precisely "6" kahaan se aata hai.
Inference cost vs training cost — kyun deployment tradeoff change karta hai.
Overfitting and capacity — data-starving ke peechhe intuition.
Learning rate schedules — token budget D se match karna chahiye.
6 FLOPs per param per token
fixed budget forces tradeoff
fixed budget forces tradeoff