5.3.17 · HinglishMLOps & Deployment

Edge deployment and ONNX

1,987 words9 min readRead in English

5.3.17 · AI-ML › MLOps & Deployment


Edge deployment kyun exist karta hai?

Chaar forces ko samjhein (yahi hai why edge ka 80/20):

Force Cloud ka dard Edge ka faida
Latency network RTT + queue sirf local compute
Privacy raw data device chhodta hai data kabhi nahi jaata
Cost har inference call par pay ek baar device cost
Availability connectivity chahiye offline kaam karta hai

ONNX kya hai?

Figure — Edge deployment and ONNX

ONNX pipeline kaise kaam karta hai?

Ise Train → Export → Optimize → Run samjhein.

  1. Train PyTorch/TF/sklearn mein.
  2. Export karein ek .onnx graph mein (ops ko trace karein).
  3. Optimize karein target ke liye: quantization, operator fusion, constant folding.
  4. Run karein ONNX Runtime (ORT) se, jo ek Execution Provider choose karta hai (CPU, CUDA, TensorRT, CoreML, NNAPI...).

80/20 win: Quantization


Common mistakes (Steel-man + fix)


Active recall

Recall Feynman: ek 12-saal ke bachche ko explain karo

Socho tumne ek recipe banai (tumhara model). Normally sirf tumhari kitchen (framework) ise cook kar sakti hai. ONNX ek aisi language mein recipe translate karna hai jo har kitchen samjhe — taaki ek chhhoti food truck (tumhara phone) bhi ise cook kar sake. Aur quantization yeh hai jaise "2.37 gram namak" ko "2 gram" kar dena: dish almost waisi hi lagti hai, par ab tumhe bahut kam measuring tools saath laane padte hain. Ise shahar ke doosri taraf ke bade restaurant mein ingredients mail karne ki jagah food truck par chalana = edge deployment: faster, private, bina phone signal ke bhi kaam karta hai.


Connections

ONNX ka full form kya hai aur yeh kya hai?
Open Neural Network Exchange — ek open, framework-agnostic file format jo model ko ek static computation graph (nodes, weights, typed IO) ke roop mein store karta hai.
ONNX integration complexity ko O(N×M) se O(N+M) par kyun laata hai?
Hub-and-spoke: har framework ko sirf ek exporter TO ONNX chahiye (N) aur har runtime ko sirf ek importer FROM ONNX (M), bajaaye har pair ke liye custom glue ke.
Edge ko cloud se behtar banane wale 4 forces kaun se hain?
Kam latency, better privacy, kam per-inference cost, offline availability.
Int8 scale S derive karo.
Affine r=S(q−Z) assume karo; endpoints match karo: r_max−r_min = S(q_max−q_min) ⇒ S=(r_max−r_min)/(q_max−q_min).
Zero-point Z kya hai aur yeh kyun matter karta hai?
Z = q_min − r_min/S; yeh woh integer hai jis par real 0 map hota hai (r=0 set karo ⇒ q0=Z), exact ReLU/padding ke liye zaroori hai.
Quantization rounding se introduce hone wali max error?
|r̂ − r| ≤ S/2, to chhhota scale (tighter range) matlab kam error.
torch.onnx.export ko dummy input kyun chahiye?
Export execute hue ops ko TRACE karta hai; real-shaped input ke bina koi execution nahi, koi graph nahi record hoga.
ONNX Runtime mein Execution Provider kya hota hai?
Woh backend jo actually ops compute karta hai (CPU, CUDA, TensorRT, CoreML, NNAPI...); ORT graph nodes ko usi par dispatch karta hai.
Alag runtimes mein bit-identical outputs kyun nahi man sakte?
Alag EPs alag kernels/fusion/FP ordering use karte hain; results sirf ek tolerance ke andar agree karte hain, isliye np.allclose se validate karo.
opset_version kya hai aur iska failure mode kya hai?
Model jo operator-set version maangta hai; agar target runtime ise support nahi karta, to loading fail hoti hai. Apne ops cover karne wala lowest opset use karo.
QAT vs post-training quantization — QAT kyun prefer karein?
QAT training ke dauran rounding simulate karta hai taaki weights quantization noise ke saath adapt ho sakein, PTQ se zyada accuracy preserve karta hai.
dynamic_axes kis kaam aata hai?
Woh dimensions declare karne ke liye (jaise batch) jo runtime par vary kar sakti hain, production mein shape-mismatch errors se bachne ke liye.

Concept Map

suffers

solves

wins when net cost exceeds compute penalty

enables

stores model as

reduces glue to

export step

produces

feeds

runs on

selects

Edge deployment

Cloud round-trip

ONNX format

Latency Privacy Cost Availability

Static compute graph

Hub-and-spoke O of N plus M

Train PyTorch TF sklearn

Export to .onnx

Optimize quantize fuse

ONNX Runtime

Execution Provider CPU CUDA TensorRT