Ek model fθ ek training distribution Ptrain(X,Y) par error minimise karne ke liye fit hota hai. Production mein woh Pserve(X,Y) dekhta hai. Performance tab degrade hoti hai jab yeh dono diverge karte hain. Iske do flavours hain:
WHY yeh distinction matters hai: agar sirf P(X) shifted hai, toh kabhi-kabhi reweighting/zyada data collect karna fix kar deta hai. Agar P(Y∣X) shifted hai, toh aapko ZAROOR retrain karna hoga — purane labels ab reality describe nahi karte.
Hum ek scalar chahte hain jo kahe "distributions differ kar rahe hain." Ek classic hai Population Stability Index (PSI), jo KL divergence jaisi idea se derive hota hai.
Ek feature ko k bins mein split karo. Maano ai = expected (training) samples ka fraction bin i mein, bi = actual (recent production) samples ka fraction bin i mein.
Yeh form kyun? Hum ek aisa term chahte hain jo ai=bi par 0 ho aur jaise yeh differ karte hain, symmetrically badhe. KL se shuru karo: ∑biln(bi/ai). Woh asymmetric hai. PSI ise symmetrise karta hai:
Drift ke do types kya hain, aur kaun sa zaroor retraining force karta hai?
Har PSI term guaranteed ≥0 kyun hoti hai?
Retrain bahut baar karna net loss kyun ho sakta hai?
Champion–challenger gate kis cheez se protect karta hai?
Eval set temporally held out kyun hona chahiye?
Recall Feynman: ek 12-saal ke bachche ko explain karo
Socho tumne pichle saal apni class ke saare popular songs seekh liye, toh tum achhe se guess kar sakte ho ki tumhare dosto ko kya pasand hai. Lekin is saal naye bachche aaye aur sabko naye songs pasand hain — tumhare purane guesses miss hone lage! Ek retraining pipeline ek helper robot jaisi hai jo class par nazar rakhti hai, notice karti hai jab songs bahut badal gaye hain, aur chupke se naye favorites re-learn kar leti hai. Lekin woh careful hai: apne naye guesses par trust karne se pehle, woh apne purane self ke against ek chhota game khelti hai, aur sirf tab switch karti hai jab naya version sach mein better guess kare. Iss tarah woh kabhi accident se worse nahi hoti.
Ek automated, repeatable workflow jo fresh data ingest karta hai, validate karta hai, retrain karta hai, candidate ko production ke against evaluate karta hai, aur promote karta hai sirf tab jab quality gates pass ho jaayein (warna rollback ho jaata hai).
Covariate (data) drift vs concept drift?
Covariate: P(X) changes, P(Y∣X) same. Concept: P(Y∣X) khud changes — yahi wala retraining force karta hai.
PSI formula likho.
PSI=∑i(bi−ai)ln(bi/ai), binned expected fractions ai aur actual fractions bi par.
Har PSI term non-negative kyun hoti hai?
(bi−ai) aur ln(bi/ai) hamesha same sign share karte hain, toh unka product ≥0 hota hai; sum 0 hoga iff distributions match karein.
Champion = current prod model; challenger = freshly retrained candidate. Challenger ko promote karo sirf tab jab woh champion ko margin δ se recent held-out data par beat kare.
Har ghante retrain kyun nahi karte?
Retraining ka fixed cost Cr hota hai; agar drift (staleness cost) chhota hai, toh benefit < cost → net loss. Frequency ko drift rate se match karo.
Evaluation set temporally held out kyun hona chahiye?
Train–serve leakage avoid karne ke liye aur real production mimic karne ke liye; dekhe hue data reuse karne se metrics inflate hote hain aur rot chhup jaata hai.
High PSI matlab model broken hai?
Nahi — PSI input drift measure karta hai, accuracy nahi. Decide karne se pehle actual performance se confirm karo.
Data + code + params saath version kyun karo?
Ek model ko reproduce aur debug karne ke liye; artifact akela nahi bata sakta ki usse kisne produce kiya (lineage).