Static vs. Dynamic Training

Broadly speaking, there are two ways to train a model:

  • A static model is trained offline. That is, we train the model exactly once and then use that trained model for a while.
  • A dynamic model is trained online. That is, data is continually entering the system and we're incorporating that data into the model through continuous updates.

Static vs. Dynamic Training

Static Model -- Trained Offline

Static Model -- Trained Offline

Dynamic Model -- Trained Online

Static Model -- Trained Offline

  • Easy to build and test -- use batch train & test, iterate until good.

Dynamic Model -- Trained Online

Static Model -- Trained Offline

  • Easy to build and test -- use batch train & test, iterate until good.
  • Still requires monitoring of inputs

Dynamic Model -- Trained Online

Static Model -- Trained Offline

  • Easy to build and test -- use batch train & test, iterate until good.
  • Still requires monitoring of inputs
  • Easy to let this grow stale

Dynamic Model -- Trained Online

Static Model -- Trained Offline

  • Easy to build and test -- use batch train & test, iterate until good.
  • Still requires monitoring of inputs
  • Easy to let this grow stale

Dynamic Model -- Trained Online

  • Continue to feed in training data over time, regularly sync out updated version.
  • Use progressive validation rather than batch training & test.

Static Model -- Trained Offline

  • Easy to build and test -- use batch train & test, iterate until good.
  • Still requires monitoring of inputs
  • Easy to let this grow stale

Dynamic Model -- Trained Online

  • Continue to feed in training data over time, regularly sync out updated version.
  • Use progressive validation rather than batch training & test
  • Needs monitoring, model rollback & data quarantine capabilities
  • Will adapt to changes, staleness issues avoided

Video Lecture Summary

Broadly speaking, the following points dominate the static vs. dynamic training decision:

  • Static models are easier to build and test.
  • Dynamic models adapt to changing data. The world is a highly changeable place. Sales predictions built from last year's data are unlikely to successfully predict next year's results.

If your data set truly isn't changing over time, choose static training because it is cheaper to create and maintain than dynamic training. However, many information sources really do change over time, even those with features that you think are as constant as, say, sea level. The moral: even with static training, you must still monitor your input data for change.

For example, consider a model trained to predict the probability that users will buy flowers. Because of time pressure, the model is trained only once using a dataset of flower buying behavior during July and August. The model is then shipped off to serve predictions in production, but is never updated. The model works fine for several months, but then makes terrible predictions around Valentine's Day because user behavior during that holiday period changes dramatically.