It works in testing and fails on real data
The live data has drifted away from what the model was trained on, or the test set was contaminated by information the model would not have at prediction time.
Troubleshooting index
Reference works are organised by the name of the thing, which assumes you already know what to call it. This is the same 256 concepts indexed the other way round: 34 things that actually go wrong, and what explains each one.
The live data has drifted away from what the model was trained on, or the test set was contaminated by information the model would not have at prediction time.
Accuracy is the wrong measure when classes are unbalanced. A model that always predicts the majority class can score well and predict nothing.
Nothing changed in the model. The world changed, and the relationship the model learned no longer holds.
A model can be accurate and badly calibrated at the same time: its 90% is not really 90%.
Training on new data can overwrite what the model previously knew, particularly when the new set is narrow.
The model memorised rather than generalised. The classic failure, and the one most techniques exist to prevent.
They usually are. Something in the training data encodes the answer, or the split leaked information between train and test.
Gradients are dying before they reach the earlier layers, so those layers stop learning.
Usually the step size, sometimes the batch size, occasionally unnormalised inputs.
Labels are the expensive part. Several approaches sidestep needing more of them.
Training on model output compounds its errors across generations.
The same process produces true and false statements, and nothing internally distinguishes them.
Attention is unevenly distributed across a long context. Material in the middle is systematically underweighted.
Training on human preference rewards agreement, and the model has poor access to its own confidence.
The sampling settings. Too deterministic loops, too random wanders.
Asking in prose is unreliable. Constraining the output shape is not.
Generation is stochastic by default. That is a setting, not a defect.
More context is not always better. Irrelevant material competes with the relevant material.
Most failures blamed on generation are retrieval failures. The model can only read what it was given.
Nothing forces it to use the retrieved material, and nothing permits it to decline when the material is absent.
The chunking strategy is splitting on length rather than meaning.
Keyword matching without semantic representation, or embeddings that do not suit the domain.
No decomposition of the goal, no reflection on progress, and no stopping condition.
Permissions exceeded what the task required, and no approval gate stood in front of an irreversible action.
Working state is not persisted between steps, and the context window is not memory.
Instructions and data arrive in the same channel and the model cannot tell them apart.
Demos sample the common case. Multi-step work compounds small error rates into large ones.
Weights, overhead, and a context cache that grows with use all have to fit at once.
Token generation is bound by memory bandwidth rather than raw computation.
There is a floor. Below roughly four-bit, degradation accelerates sharply.
Repeated context is being reprocessed, or a larger model is doing work a smaller one could.
The benchmark may be in the training data, or measuring something narrower than your task.
No fixed test set, so every comparison is against a moving target.
The training data under-represents some groups, and aggregate accuracy hides the gap.
Why this page exists. Nobody arrives at a reference work knowing the name of their problem. They arrive with a system that is behaving badly and a description of the behaviour. Every entry above maps a description to the concepts that explain it, and links to the full treatment where one exists.
Nothing here is new writing. It is the existing corpus with a second index over it, which is the only kind of index worth adding: one that matches how people actually search.