The bill is bigger than the GPU
People focus on training cost ("we spent X on H100 hours"), but the real bill includes data labeling, evaluation, monitoring, drift detection, retraining, and the engineer time to keep all of that honest. A good rule of thumb: training compute is roughly a fifth to a tenth of the lifetime cost of a serious deep-learning system.
Inference cost is the line item that bites in production. A 7B model at 1000 requests per second is a non-trivial GPU bill that recurs forever. Quantization, distillation, batching, KV-cache reuse, and serving frameworks (vLLM, TGI) exist to make that number tolerable.
Hidden costs
Data quality — labels are noisy, distributions shift, splits leak. Most "the model is broken" debugging turns out to be data debugging in disguise. Carbon footprint — large training runs are real environmental decisions. Reproducibility — a checkpoint without code, data, and config is a bag of weights you cannot trust.
Make the cost legible
The cheap habit that prevents most disasters: log every training run with seed, code commit, dataset hash, hyperparameters, and final metrics. Rerun your eval suite weekly on a frozen test set. Surface drift like you would surface server errors. The cost of doing this is small. The cost of not doing it shows up the day someone asks why the model started behaving strangely.