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:

  1. Snapshot the data. The exact table or file, with a hash. "It was in BigQuery" is not reproducible.
  2. Freeze an eval set. Not the test split from training — a small, ugly, real-world one.
  3. Check the input distribution. Compare the serving inputs to the training inputs; the drift is usually in the tail.
  4. Measure the serving path, not the model. p50 and p99 end to end.
  5. Write down the failure behavior. What returns when the model is uncertain, slow, or wrong?
  6. 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?