[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"glossary-training-serving-skew::en":3,"gloss-cluster-training-serving-skew::en":26,"gloss-next-training-serving-skew::en":9},{"slug":4,"category":5,"name":6,"definition":7,"meta_desc":8,"faq":9,"schema_markup":9,"related":10},"training-serving-skew","mlops","Training-Serving Skew","Training-serving skew is a subtle bug where the data a model receives in production differs from the data it was trained on — not because the world changed, but because the pipelines diverged. Maybe training used a cleaned, batch-computed feature while serving computes it live with slightly different code, or a value that was fresh in training arrives stale at inference. The model then performs far worse in production than your offline metrics promised. It is one of the classic MLOps failure modes precisely because it is silent: every test passes, yet real accuracy sags. The usual culprit is duplicated transformation logic — one copy for training, one for serving — that drifts apart over time. This is a big reason feature stores exist, since they let both paths share exactly one definition. Practical note: log the actual features seen at serving time and periodically diff their distribution against the training set; a mismatch is your early warning that skew has crept in.","Training-serving skew is production data differing from training data because the two pipelines diverged — not because the world changed. A silent accuracy killer.",null,[11,14,17,20,23],{"slug":12,"name":13},"data-pipeline","Data Pipeline",{"slug":15,"name":16},"drift-detection","Drift Detection",{"slug":18,"name":19},"eval-harness","Eval Harness",{"slug":21,"name":22},"feature-store","Feature Store",{"slug":24,"name":25},"model-serving","Model Serving",[27,31,35,38,41,45,48,51,54,57,58,59],{"slug":28,"category":5,"name":29,"updated_at":30},"annotation-guidelines","Annotation Guidelines","2026-08-24T03:30:02+00:00",{"slug":32,"category":5,"name":33,"updated_at":34},"baseline-model","Baseline Model","2026-08-24T02:46:38+00:00",{"slug":36,"category":5,"name":37,"updated_at":34},"batch-inference","Batch Inference",{"slug":39,"category":5,"name":40,"updated_at":34},"canary-prompt","Canary Prompt",{"slug":42,"category":5,"name":43,"updated_at":44},"champion-challenger","Champion-Challenger (A\u002FB Model Testing)","2026-08-24T02:46:37+00:00",{"slug":46,"category":5,"name":47,"updated_at":34},"class-imbalance","Class Imbalance",{"slug":49,"category":5,"name":50,"updated_at":34},"continuous-batching","Continuous Batching",{"slug":52,"category":5,"name":53,"updated_at":34},"cross-validation","Cross-Validation",{"slug":55,"category":5,"name":56,"updated_at":34},"data-labeling","Data Labeling",{"slug":15,"category":5,"name":16,"updated_at":44},{"slug":18,"category":5,"name":19,"updated_at":44},{"slug":60,"category":5,"name":61,"updated_at":44},"experiment-tracking","Experiment Tracking"]