I've shipped enough models from notebooks to know that the notebook is the least of it. Six checks I run before anything goes to a service:
- Snapshot the data. The exact table or file, with a hash. "It was in BigQuery" is not reproducible.
- Freeze an eval set. Not the test split from training — a small, ugly, real-world one.
- Check the input distribution. Compare the serving inputs to the training inputs; the drift is usually in the tail.
- Measure the serving path, not the model. p50 and p99 end to end.
- Write down the failure behavior. What returns when the model is uncertain, slow, or wrong?
- Plan the rollback. A model that can't be turned off in minutes is a liability.
None of this is novel. It's just the list I forget when I'm excited about the notebook.
What's on your pre-ship list?




