5.3.16 · D3 · AI-ML › MLOps & Deployment › Cost optimization and inference latency
Ye page Cost optimization and inference latency ka drill hall hai. Parent note ne aapko formulas diye; yahan hum unhe har case class se guzarte hain — har sign, har limit, har degenerate input — taaki koi bhi scenario interview ya outage mein surprise na kar sake.
Hum parent se sirf teen formulas use karte hain. Pehle unhe pin karte hain taaki har symbol ka matlab clear ho.
Intuition Ye teen poore topic ko kyun cover karte hain
Latency = waiting (T1) + working (T2). Cost (T3) bas money divided by kitni predictions woh money kharidti hai. Parent ne jo bhi optimizations list ki hain — batching, quantization, autoscaling — woh sab actually ρ , F , η , ya X mein se kisi ek ko nudge kar rahe hain. Toh agar aap teen formulas ko har regime mein work kar sakte hain, toh aap kisi bhi deployment ko price aur time kar sakte hain.
Definition T1 actually kab hold karta hai? (model ki fine print)
T1 ek M/M/1 queue ki mean latency hai (dekho Little's Law and Queueing Theory ). "M/M/1" teen assumptions pack karta hai:
Poisson arrivals — requests independently aur randomly average rate λ par aate hain (pehla "M", "Markovian/memoryless" ke liye).
Exponential service times — ek request jo time leta hai woh mean s ke saath random hota hai (doosra "M").
1 server — ek single worker queue clear karta hai ("1").
Real traffic Poisson se zyada bursty hoti hai, isliye T1 ek clean lower-bound model hai, exact predictor nahi. Hum ise isliye use karte hain kyunki yeh ek cheez capture karta hai jo sab par dominate karti hai — 1/ ( 1 − ρ ) blow-up — sabse kam moving parts ke saath.
Common mistake Units ki warning jo hum neeche har line par follow karte hain
T1 mein, s seconds mein likha hota hai (kyunki ρ = λ s ko λ req/s mein chahiye taaki pure fraction nikle). Neeche hum s readability ke liye milliseconds mein state karte hain lekin ρ compute karne se pehle seconds mein convert karte hain , phir answer ko ms mein wapas convert karte hain. "(→ s)" tags dekho — ms aur s mix karna yahan sabse common arithmetic slip hai.
Neeche har cell ek case class hai — mathematically ek qualitatively alag situation. Jo worked examples follow karte hain unhe unke cover kiye gaye cell(s) ke saath label kiya gaya hai.
#
Case class
Isme kya special hai
Covered by
A
Low load ρ small
waiting ≈ 0, latency ≈ service time
Ex 1
B
High load ρ → 1 −
utilization cliff, near-divergence
Ex 2
C
Overload ρ ≥ 1
formula breaks — queue infinite hai
Ex 3
D
Zero / degenerate λ = 0 ya F = 0
empty inputs, sanity limits
Ex 4
E
Compute-bound bada F , tiny queue
latency arithmetic se set hoti hai, waiting se nahi
Ex 5
F
Cost vs throughput X move karo
C kaise scale karta hai jab aap batch karo
Ex 6
G
Real-world word problem
SLA hold karne ke liye replica count choose karo
Ex 7
H
Exam twist
backwards solve karo max safe λ ke liye
Ex 8
I
Combined limit
batching ek saath help bhi karta hai aur hurt bhi
Ex 9
Worked example Ex 1 — Case A: low load, waiting negligible hai
Service time s = 20 ms (→ 0.020 s), arrival rate λ = 5 RPS.
Forecast: ab mean latency guess karo. Kya yeh 20 ms ke paas hogi ya zyada upar?
Seconds mein convert karo, phir ρ = λ s = 5 × 0.020 = 0.10 compute karo.
Yeh step kyun? ρ batata hai server kitna full hai; T1 mein sab kuch isi par depend karta hai. Units: ( req/s ) × ( s/req ) = dimensionless — acha, ek fraction.
T1 seconds mein apply karo: E [ L ] = 1 − 0.10 0.020 = 0.90 0.020 ≈ 0.0222 s , phir wapas convert karo: = 22.2 ms .
Yeh step kyun? Low load par denominator 1 − ρ ≈ 1 , isliye latency ≈ service time.
Verify: 22.2 ms raw 20 ms service se sirf 11% upar hai — intuition se match karta hai ki almost-empty queue aapko barely delay karti hai. Units: seconds mein compute kiya, ms mein report kiya. ✅
Worked example Ex 2 — Case B: utilization cliff
Same s = 20 ms (→ 0.020 s). Compare karo ρ = 0.8 , 0.95 , 0.99 .
Forecast: ρ mein 0.8→0.95 ka jump sirf 0.15 hai. Kya latency roughly double hogi, ya bahut zyada?
ρ = 0.8 : E [ L ] = 0.020/ ( 1 − 0.8 ) = 0.020/0.2 = 0.100 s = 100 ms .
ρ = 0.95 : E [ L ] = 0.020/0.05 = 0.400 s = 400 ms .
ρ = 0.99 : E [ L ] = 0.020/0.01 = 2.000 s = 2000 ms .
Yeh steps kyun? Hum hardware aur model fixed rakhte hain aur sirf kitna full run karte hain woh vary karte hain — queueing effect isolate karne ke liye.
Figure kaise padhen: horizontal axis utilization ρ hai (0 = idle, 1 = hamesha busy); vertical axis mean latency ms mein hai. Teal curve E [ L ] = s / ( 1 − ρ ) hai. Notice karo ki yeh shaded "safe zone" (ρ = 0.6 –0.8 ) mein almost flat hai aur phir jaise ρ → 1 near-vertical wall mein upar uthti hai. Teen coloured dots hamare results hain (100, 400, 2000 ms): left-to-right padho aur dekho ki wall ke paas ek tiny rightward step kitna bada vertical jump cost karta hai.
Verify: 0.8 → 0.95 (0.15 rise) ne latency 4 × multiply ki; 0.95 → 0.99 (sirf 0.04 zyada) ne ise aur 5 × multiply kiya. Nonlinear — exactly "cliff." Isliye parent kehta hai ρ ≈ 0.6 –0.8 target karo . ✅
Worked example Ex 3 — Case C: overload, formula answer dene se mana kar deta hai
s = 20 ms (→ 0.020 s), arrivals surge karte hain λ = 60 RPS tak.
Forecast: blindly plug in karo toh negative latency milti hai. Physically iska matlab kya hai?
ρ = λ s = 60 × 0.020 = 1.2 .
Naive T1: E [ L ] = 0.020/ ( 1 − 1.2 ) = 0.020/ ( − 0.2 ) = − 0.100 s = − 100 ms .
Yeh step kyun? Trap expose karne ke liye: negative time nonsense hai.
Interpret karo: T1 sirf 0 ≤ ρ < 1 ke liye valid hai. Jab ρ ≥ 1 hota hai, requests server se faster aate hain jitnaa wo clear kar sakta hai, toh queue grow karta hai without bound — mean latency ∞ hai, negative nahi.
Yeh step kyun? Har formula ka ek domain hota hai; silently usse bahar jaane par garbage milta hai.
Verify: service rate μ = 1/ s = 1/0.020 = 50 RPS lekin arrivals 60 RPS hain. Backlog 60 − 50 = 10 req/s ki speed se hamesha badhta hai. Steady-state mean latency exist nahi karti. ✅ (Fix: autoscale karke replicas add karo taaki per-replica λ 50 se neeche aaye.)
Worked example Ex 4 — Case D: zero aur degenerate inputs
Do sanity checks.
Forecast: (a) agar koi request nahi aati, toh ρ aur E [ L ] kya hoga? (b) agar ek model zero FLOPs karta hai, toh uska compute floor kya hai?
(a) λ = 0 ⇒ ρ = 0 ⋅ s = 0 , isliye E [ L ] = s / ( 1 − 0 ) = s .
Yeh step kyun? Aapke aage koi nahi hai toh latency exactly ek service time hai — T1 ka pure lower bound.
(b) F = 0 ⇒ L compute ≥ 0/ ( η P ) = 0 .
Yeh step kyun? Koi arithmetic nahi matlab koi arithmetic time nahi — floor zero tak collapse ho jaata hai, jaisa hona chahiye.
Verify: dono limits physically obvious answers hain (empty queue mein ek service lagti hai; koi kaam nahi toh koi compute time nahi). Ek formula jo in edge cases fail kare woh suspect hoga. ✅
Worked example Ex 5 — Case E: compute-bound, waiting irrelevant hai
Model ko F = 8 × 1 0 9 FLOP chahiye. GPU peak P = 100 TFLOP/s = 1 0 14 FLOP/s, efficiency η = 0.4 . Queue empty hai (ρ ≈ 0 ).
Forecast: kya latency F / ( η P ) floor se dominate hogi ya queue waiting se?
Achievable rate = η P = 0.4 × 1 0 14 = 4 × 1 0 13 FLOP/s.
Yeh step kyun? Real kernels kabhi peak hit nahi karte; hume achievable rate use karni chahiye, P nahi.
L compute = 4 × 1 0 13 8 × 1 0 9 = 2 × 1 0 − 4 s = 0.2 ms .
Yeh step kyun? Time = work / rate — same time = distance / speed idea arithmetic ke liye.
Ab full latency assemble karo. Empty queue ke saath, service time compute floor ke barabar hai , yaani s = L compute = 0.2 ms, aur queue wait E [ L ] − s = s ( 1 − ρ 1 − 1 ) → 0 jaise ρ → 0 . Isliye total latency ≈ L compute = 0.2 ms.
Yeh step kyun? s aur L compute alag concepts hain (mean service time vs arithmetic floor); yahan queue empty hai, isliye numerically coincide karte hain. Hum names alag rakhte hain is trap se bachne ke liye ki s hamesha compute floor ke barabar hota hai — batching ya overhead ke saath, s > L compute .
Verify: F ko Ex-parent ke 4 × 1 0 9 se double karke 8 × 1 0 9 aur η ko 0.3 se 0.4 raise karke: 4 8 × 0.4 0.3 = 2 × 0.75 = 1.5 × parent ka 0.13 ms ⇒ 0.2 ms . Consistent. ✅ (Dekho Roofline Model of Hardware Performance jab η khud bandwidth-capped ho.)
Worked example Ex 6 — Case F: throughput badhne par cost girta hai
Machine H=\ 4/\text{hr}. C o m p a r e k a r o X=100R P S ( n o ba t c hin g ) v s X=500$ RPS (batched).
Forecast: batching ne X 5 × badhaya. Kya cost exactly 5 × giregi?
No batch: C_{1M}=\dfrac{10^{6}\times4}{3600\times100}=\dfrac{4\times10^{6}}{3.6\times10^{5}}\approx\ 11.11$ per 1M.
Batched: C_{1M}=\dfrac{10^{6}\times4}{3600\times500}=\dfrac{4\times10^{6}}{1.8\times10^{6}}\approx\ 2.22p er 1 M . ∗ Y e h s t e p s k y u n ? ∗ T 3 m e in X$ denominator mein hai, isliye cost throughput ke inversely proportional hai.
Ratio 11.11/2.22 = 5 .
Verify: exactly 5 × throughput ke liye exactly 5 × sasta — confirm karta hai C ∝ 1/ X . Dekho Batching and Throughput ki X batch size ke saath kyun badhta hai. ✅
Worked example Ex 7 — Case G: real-world word problem (replica count choose karo)
Ek service ko mean latency E [ L ] ≤ 150 ms (→ 0.150 s) hold karni hai. Ek replica ka s = 25 ms (→ 0.025 s) hai. Total traffic λ tot = 100 RPS hai. Kitne replicas n chahiye taaki per-replica load latency budget ke andar rakhe? Assume karo traffic evenly split hoti hai, isliye har replica λ = λ tot / n dekhta hai.
Forecast: ek akela replica — kya woh overload se bhi neeche hai?
Per-replica service rate μ = 1/ s = 1/0.025 = 40 RPS. Ek replica λ = 100 par ρ = λ s = 2.5 > 1 deta hai → overloaded (Case C). Isliye hume kaafi replicas chahiye .
Yeh step kyun? n choose karne se pehle hume confirm karna hai ki ek akela replica cope nahi kar sakta, aur μ woh ceiling hai jo ek worker per second clear kar sakta hai — agar λ > μ hum turant Ex 3 ke overload regime mein hain, isliye answer definitely n ≥ 2 hai.
Allowed maximum ρ ke liye T1 solve karo: 0.150 = 1 − ρ 0.025 ⇒ 1 − ρ = 0.150 0.025 = 0.1667 ⇒ ρ m a x = 0.8333 .
Yeh step kyun? Latency budget ko utilization budget mein invert karo.
Per replica ρ = λ s = n 100 × 0.025 = n 2.5 . Require karo n 2.5 ≤ 0.8333 ⇒ n ≥ 3.0 .
Yeh step kyun? Utilization cap ko replica count mein convert karo.
Isliye n = 3 replicas (har ek λ ≈ 33.3 RPS, ρ = 0.833 dekhta hai).
Verify: n = 3 par, ρ = 2.5/3 = 0.8333 , E [ L ] = 0.025/ ( 1 − 0.8333 ) = 0.025/0.1667 ≈ 0.150 s = 150.0 ms — bilkul budget par. n = 2 par, ρ = 1.25 > 1 (overload). Isliye 3 minimum hai. ✅ (Yahi cheez Autoscaling and Horizontal Scaling Little's Law and Queueing Theory ke zariye automate karta hai.)
Worked example Ex 8 — Case H: exam twist (max safe
λ ke liye backwards solve karo)
s = 40 ms (→ 0.040 s) aur ek single replica par E [ L ] ≤ 100 ms (→ 0.100 s) ka SLA diya gaya hai, maximum arrival rate λ m a x nikalo jo aap accept kar sakte hain.
Forecast: zyada service time budget mein eat karta hai. Kya λ m a x raw μ = 25 RPS se bahut neeche hoga?
Budget → utilization: 0.100 = 1 − ρ 0.040 ⇒ 1 − ρ = 0.4 ⇒ ρ m a x = 0.6 .
Yeh step kyun? Time budget ko pehle ρ cap mein badlo — λ directly juggle karne se cleaner hai.
ρ = λ s ⇒ λ m a x = s ρ m a x = 0.040 0.6 = 15 RPS.
Yeh step kyun? Arrival rate recover karne ke liye ρ = λ s undo karo.
Verify: λ = 15 par, ρ = 15 × 0.04 = 0.6 , E [ L ] = 0.040/0.4 = 0.100 s = 100 ms exactly. Note karo λ m a x = 15 < μ = 25 : aapko tail hold karne ke liye 40% headroom chhodni hai — SLA SLO and Monitoring ka SLA-headroom lesson. ✅
Worked example Ex 9 — Case I: batching ek saath help
bhi karta hai aur hurt bhi
Batch size b . Batch per service time s b = 10 + 2 b ms hai (10 ms fixed launch, 2 ms/item). Throughput hai X = s b b jahan s b seconds mein hai. Hum b = 1 aur b = 16 compare karte hain. Latency comparison fair rakhne ke liye hum utilization ρ = 0.5 par fixed rakhte hain arrivals ko har batch ke service time se match karke: set karo λ = ρ / s b (isliye ek bada, slow batch correspondingly lower arrival rate ko feed ki jaati hai). Yeh pure batch-size effect isolate karta hai.
Forecast: bada b throughput badhata hai (acha, sasta). Lekin per-request latency? Compute karne se pehle guess karo.
b = 1 : s b = 12 ms = 0.012 s ⇒ X = 0.012 1 ≈ 83.3 RPS.
Yeh step kyun? Hum per-batch service time ko throughput mein convert karte hain (X = b / s b ) kyunki cost (T3) X se drive hoti hai, s b se nahi — yeh number price set karta hai.
b = 16 : s b = 10 + 32 = 42 ms = 0.042 s ⇒ X = 0.042 16 ≈ 381.0 RPS.
Yeh step kyun? Fixed 10 ms launch 16 items par amortize ho jaata hai, isliye throughput ~4.6 × jump karta hai — yahi batching ke saste hone ki poori wajah hai.
Latency side, b = 1 : ρ = 0.5 par, E [ L ] = s b / ( 1 − 0.5 ) = 2 s b = 2 × 12 = 24 ms.
Yeh step kyun? Ab hum cost se latency par switch karte hain; ρ 0.5 par pinned hone se T1 factor exactly 2 hai, isliye E [ L ] = 2 s b aur latency seedha batch ke service time se track karti hai.
Latency side, b = 16 : E [ L ] = 2 s b = 2 × 42 = 84 ms.
Yeh step kyun? Same pinned ρ , lekin bade batch ka bada s b latency upar push karta hai — wahi batching jo X ke zariye cost cut ki usne s b ke zariye latency badhaa di. (Check karo ρ 0.5 rehta hai: ρ = λ s b = ( ρ / s b ) s b = ρ , isliye hamara arrival choice self-consistent hai.)
Verify: throughput ratio 381.0/83.3 ≈ 4.57 × (cost ~4.6 × T3 se girta hai), jabki latency 84/24 = 3.5 × badhi. Dono effects real aur opposed hain — exactly wahi trade-off jiske baare mein parent warn karta hai, aur isliye aap batch size ko max-wait timeout ke saath cap karte hain . ✅
Recall Ek formula se poora matrix rebuild karo
ρ < 1 ? Use karo E [ L ] = s / ( 1 − ρ ) . ρ ≥ 1 ? Latency infinite hai — replicas add karo.
λ = 0 ? Latency = s . Bada F , empty queue? Latency = F / ( η P ) .
Sasta chahiye? X badhao; cost 1/ X ki tarah girta hai. Replicas size karne hain? ρ cap apne latency budget se set karo, phir n ≥ λ tot s / ρ m a x .
Mnemonic "WAVE" — kisi bhi scenario attack karne ka order
W ork out karo ρ = λ s (seconds mein!) · A sk karo ρ < 1 hai? · V alue nikalo E [ L ] = s / ( 1 − ρ ) · E stimate karo cost C ∝ 1/ X .
"Formula negative number deta hai" — yeh symptom kis cell ka hai? Case C — overload, ρ ≥ 1 , mean latency actually infinite hai.
Latency SLA hold karne ke liye, pehle ρ cap karo ya λ ? Budget se ρ cap karo, phir λ m a x = ρ m a x / s mein convert karo.
Ek line mein batching ka double effect? X badhata hai (cost ↓ via 1/ X ) lekin s b badhata hai (latency ↑ via s / ( 1 − ρ ) ).
T1 (M/M/1) kaunse teen assumptions karta hai? Poisson arrivals, exponential service times, aur ek single server.