Production ML
Why most AI prototypes never reach production
A prototype that impresses in a meeting is a very different thing from a system people rely on. Teams often discover this gap after the budget is spent. These are the patterns we see most often, and what to do about each one.
1. Nobody defined "good"
If success is "it feels smart", you can't tell whether a change helped, and you can't tell when the system gets worse. Before building, write down the metric, the test data and the threshold that means "ship it". For a classifier that might be precision and recall on a held-out set. For an LLM assistant it might be the share of answers a reviewer marks correct on a fixed set of real questions.
2. The demo data isn't the real data
Prototypes are tuned on clean, friendly examples. Production traffic is messy: typos, empty fields, unusual formats, adversarial users. Test on a sample of real, unfiltered inputs as early as possible, even if it's only a few hundred.
3. Cost and latency were never counted
A model call that costs a few cents and takes six seconds is fine in a demo. At thousands of requests a day it becomes a budget line and a user-experience problem. Measure cost per request and p95 latency early, and look at caching, smaller models, batching and routing easy requests to cheaper models.
4. The model drifts and nobody notices
The world changes: customers behave differently, a data source changes format, a vendor updates a hosted model. Without monitoring, quality decays silently. Track input distributions, output quality and error rates in production, and set alerts.
5. There's no owner and no way to roll back
Someone has to be responsible for the system after launch. That includes the ability to ship a fix, to revert to the previous version in minutes, and to turn the feature off safely. Canary releases and clear rollback steps turn a scary deployment into a routine one.
6. Security and privacy arrive last
Asking "can we send this data to a third-party model?" after the build is expensive. Decide early what data the system may see, where it may run, and who may access what. Design for least privilege from the start.
A short checklist
- A written success metric and a fixed evaluation set
- Tested on real, messy inputs
- Cost per request and latency measured
- Monitoring and alerts for quality and drift
- A named owner, a rollback plan and a kill switch
- Data-handling decisions made and documented
If you're stuck between a promising demo and a dependable product, a short discovery sprint is often the fastest way to find which of these is the real blocker.