What ML system design is
What it is
ML system design is planning everything around a machine learning model so that it helps a real product, reliably, for years:
- where the data comes from and how it is cleaned;
- how the labels (the right answers it learns from) are collected;
- which features (the facts it looks at) are computed, and when;
- how the model is trained, checked and released;
- how predictions reach the product fast enough and cheaply enough;
- how the system is watched and retrained as the world changes.
Why it matters
A model that scores well in a notebook is not yet useful to anyone:
- it needs fresh inputs every time it is asked something;
- its answers must arrive in milliseconds, or overnight, depending on the product;
- it slowly gets worse as people's behaviour changes, and nothing will crash to tell you.
Design is how you plan for all of that before it goes wrong.
In the real world: A team whose fraud model scored brilliantly offline launches it and finds it needs a customer's last hour of activity, which no system computes in time. The model is fine; the system around it was never designed.
Treating it as 'pick the best algorithm'. In an interview and at work, the model is usually the shortest part of the conversation; data, serving and monitoring are where designs succeed or fail.
Practise it: Design a Predictive Maintenance System, Design a Real-Time Anomaly Detection System, Design a Recommendation System, Design an Image Search System, Design a Real-Time Fraud Detection System, Design a Search Ranking System, Design an Ad Ranking System