5.3.5 · AI-ML › MLOps & Deployment
Intuition Ek sentence mein idea
Ek feature store ek centralized data system hai jo ML features ko compute, store, aur serve karta hai — training aur inference dono ke liye consistently , taaki model production mein wahi number dekhe jo usne training mein dekha tha.
Intuition Jis problem ko solve kiya ja raha hai
Feature stores se pehle, har data scientist apna khud ka SQL / Pandas likhta tha features banane ke liye (jaise "last 30 days mein average purchase"). Do silent disasters hote the:
Duplication — 20 teams "user_7d_click_rate" ko 20 thode-alag-alag tarike se re-implement karti hain.
Training–serving skew — offline training pipeline (batch, Spark) ek feature ko ek tarike se compute karta hai, aur online serving pipeline (real-time, low-latency) use doosre tarike se compute karta hai. Model production mein degrade hota hai aur kisi ko pata nahi chalta kyun.
Definition Training–serving skew
Training ke dauran use ki gayi feature values aur inference time par compute ki gayi values ke beech ek discrepancy , jo alag code paths, alag data sources, ya timing differences ki wajah se hoti hai. Yeh deployed models ka sabse bada silent killer hai.
KYA deta hai ek feature store:
Har feature ki single definition (ek baar likho, sab jagah reuse karo).
Offline store (sasta, high-throughput) training sets banane ke liye.
Online store (low-latency key-value) inference ke waqt serving ke liye.
Data leakage rokne ke liye Point-in-time correctness .
Discoverability (features ka ek searchable catalog).
Ek high-throughput, high-latency store (jaise Parquet on S3, BigQuery, Hive) jo feature values ki poori history rakhta hai. Bulk mein training datasets generate karne ke liye use hota hai.
Ek low-latency key-value store (jaise Redis, DynamoDB, Cassandra) jo har entity ke liye sirf latest feature value rakhta hai. Milliseconds mein ek single prediction serve karne ke liye use hota hai.
Intuition DO stores KYUN?
Training ko millions of rows of history chahiye → throughput ke liye optimize karo, slow hona theek hai.
Serving ko abhi, ek row chahiye → latency ke liye optimize karo (<10ms). Koi bhi single database dono mein great nahi hota, isliye hum split karte hain aur unhe ek definition se synced rakhte hain.
Intuition Yeh baaki sab se zyada KYUN matter karta hai
Training set banate waqt, aap ek label (kya hua) ko features (usse pehle kya pata tha) ke saath join karte ho. Agar aap accidentally ek aise feature value ko join kar lo jo event ke baad compute hui thi, toh aap future ko apne model mein leak kar dete ho. Yeh offline amazing lagta hai aur production mein catastrophically fail karta hai.
Definition Point-in-time join (as-of join)
==t time par har label event ke liye, woh most recent feature value attach karo jiska timestamp ≤ t ho== (future ki koi bhi value nahi).
Worked example Point-in-time join worked example
Feature = user_balance. User U ke liye observations:
t i
value
09:00
$100
10:30
$40
12:00
$90
Ek label event (fraud? yes/no) t e = 11 : 00 par occur hota hai.
Yeh step KYUN? t i ≤ 11 : 00 filter karo → 09:00 aur 10:30 raho. Kyun? 12:00 future hai; $90 use karna leak hoga.
Yeh step KYUN? Bache hue mein max t i chuno → 10:30. Kyun? Freshest known info.
Answer: feature value = $40 . ✔
Worked example TTL ek stale feature ko kill karta hai
Same table, event t e = 09 : 05 par, TTL τ = 2 min .
Allowed window: 09 : 03 ≤ t i ≤ 09 : 05 . 09:00 wala observation 5 min purana hai > τ .
Kyun? TTL ke andar koi feature nahi → value hai null / default . Yeh model (aur tumhe) majboor karta hai ki missing recent data ko handle karo, ek stale number par trust karne ki jagah.
Entity : woh cheez jise ek feature describe karta hai (ek user, product); iske paas ek join key hoti hai.
Feature view / feature group : features ka ek named set + unka data source + TTL.
Materialization : woh job jo computed feature values ko offline store se online store mein copy karta hai taaki serving fast ho.
Feature service : feature views ka woh bundle jo ek specific model consume karta hai.
Common mistake "Main inference par apna raw DB hi query karunga — koi feature store nahi chahiye."
Kyun sahi lagta hai: data pehle se wahan hai; infra add karna overhead lagta hai.
Kyun galat hai: live 30-day aggregate recompute karna slow hai (latency budget blow kar deta hai) aur tumhara live code tumhare training code se subtly alag hoga → skew. Fix: feature ko pre-materialize karo; computation nahi, ek lookup serve karo.
Common mistake "Training set ke liye bhi latest feature value le lo."
Kyun sahi lagta hai: online store mein pehle se latest value hai, reuse karna easy hai.
Kyun galat hai: ek historical label ke liye tumhe woh value use karni chahiye jo us past moment ki thi, aaj ki nahi. Aaj ki value use karna = future leakage . Fix: offline store ke against point-in-time (as-of) join karo.
Common mistake "Feature store = ek naya database."
Kyun sahi lagta hai: yeh data store karta hai.
Kyun galat hai: yeh databases (offline + online) ke upar ek abstraction layer hai plus ek registry, materialization engine, aur serving API . Definitions aur consistency point hai, storage nahi.
Common mistake TTL ignore karna, stale features ko silently serve hone dena.
Kyun sahi lagta hai: "koi value, koi value se behtar hai."
Kyun galat hai: ek 3-month-purana "recent activity" feature model se jhoot bolta hai. Fix: TTL set karo; null return karo aur explicitly handle karo.
Recall Feynman: ek 12-saal ke bache ko explain karo
Socho tum cookies bake kar rahe ho. Recipe card kehti hai "jitni cheeni tumne aaj subah measure ki thi, utni daalo." Ek feature store puri kitchen ke liye ek shared recipe box jaisa hai: sab log bilkul same recipe cards use karte hain, toh cookies ek jaise taste karti hain chahe tum ek badi batch bako (training) ya abhi ek customer ke liye sirf ek cookie bako (serving). Aur ek rule hai: jab tum check karo "hamare paas kitni cheeni thi?", toh sirf woh note dekho jo shuru karne se pehle tha, kabhi baad mein likhe note ki taraf mat jhankna — warna tum aise information se cheating kar rahe hote jo tumhare paas actually thi hi nahi.
"SOAP-P" — S ingle definition, O ffline store, O nline... ruko — "POCO" use karo:
P oint-in-time, O ffline, C onsistency (no skew), O nline. Ek feature store POCO clean hai: yeh tumhare features ko time aur jagah par tidy rakhta hai.
Feature store kaunsi core problem solve karta hai? Training–serving skew aur feature duplication, ek consistent definition dekar jo training aur inference dono ko serve hoti hai.
Training–serving skew define karo. Training mein use ki gayi feature values aur inference par compute ki gayi values ke beech mismatch, usually alag code paths ya timing se.
Offline vs online store — dono ka purpose? Offline = training sets banane ke liye high-throughput historical store; Online = real-time serving ke liye latest values ka low-latency key-value store.
Point-in-time join rule batao. t e time par label ke liye, woh feature observation lo jiska t i sabse bada ho aur t i ≤ t e (kabhi future se nahi).
Training set banate waqt latest feature value kyun nahi leni chahiye? Yeh future information ko past label mein leak karta hai → inflated offline metrics, production mein failure.
Feature store mein materialization kya hai? Woh job jo computed feature values ko offline store se online store mein copy karta hai fast serving ke liye.
TTL ek feature ke saath kya karta hai? Use expire karta hai: agar freshest observation event se τ se zyada purani hai, toh feature null/default treat hoti hai.
Feature-store terms mein "entity" kya hota hai? Woh object jise ek feature describe karta hai (jaise user, product), jo ek join key se identify hota hai.
Zero skew ke liye condition (formula)? f off ( x ) = f on ( x ) ∀ x ; ek single registered feature definition se enforce hota hai.
Kya feature store sirf ek database hai? Nahi — yeh offline+online stores ke upar ek abstraction hai plus ek registry, materialization engine aur serving API.
Data leakage — point-in-time joins iska defence hain.
Training-serving skew — core failure mode.
Model deployment — serving path online store use karta hai.
Batch vs streaming pipelines — features kaise materialize hote hain.
Redis / DynamoDB — typical online stores.
Data versioning — features ko bhi reproducibility chahiye.
Feature engineering — definitions yahan se aati hain.
Single feature definition