Gradient Noise Scale and Critical Batch Size
There is a batch size past which adding more data per step stops meaningfully improving the gradient estimate — the gradient noise scale predicts exactly where that point sits, so bigger batches beyond it buy speed, not accuracy.
Prerequisites: Batch Size and Generalization, Stochastic Gradient Descent
Training with a bigger batch always reduces the noise in a gradient estimate, but that does not mean bigger is always better — past a certain point, halving the noise stops translating into meaningfully faster convergence, because the remaining noise was never the bottleneck to begin with. The gradient noise scale is a single number that predicts roughly where that turning point sits, before you spend the compute finding out the hard way.
The analogy: how big a poll actually needs to be
Polling 50 people to estimate an election result gives a noisy read; polling 500 tightens it up substantially. But polling 50,000 people barely improves on polling 5,000 in any way that changes a close decision — past some sample size, the population's genuine variability, not sample size, dominates how precise you can get, and more respondents mostly cost money without buying much more certainty. Batch size in training plays the same role as sample size in a poll: a bigger batch gives a less noisy estimate of the true full-dataset gradient, but only up to the point where the underlying "how much do individual gradients disagree with each other" sets a floor that more data per step can't push through efficiently.
The gradient noise scale, defined
The gradient noise scale compares how much individual training examples' gradients disagree (the trace of their covariance, ) to how large the true underlying gradient actually is ():
In words: the numerator measures how noisy a single example's gradient typically is relative to the average, and the denominator measures how big the true signal (the gradient you'd get by averaging over the whole dataset) actually is. A large means individual gradients are noisy relative to the signal, so a large batch is needed to average that noise down enough to see the true direction clearly; a small means individual gradients already mostly agree, so small batches are already informative and bigger batches add little.
Worked example 1: computing noise scale from two sample gradients
Two training examples produce per-example gradients (for a single scalar parameter) of and . The mean gradient is , so . The variance across examples is , so in this toy one-parameter case. That gives — a small ratio, meaning individual gradients are already fairly consistent with the true direction here, so small batches would already give a usably clean signal, and there is little to gain from batching them up further.
Worked example 2: doubling batch size below versus above the critical point
Suppose a real training run has an estimated . Doubling batch size from 64 to 128 — both still well below 256 — roughly halves the noise in the gradient estimate and correspondingly allows close to twice as many useful steps to be taken per unit of wall-clock time, since noise was the binding constraint: near-linear speedup. Doubling batch size from 1,024 to 2,048 — both already well above 256 — buys almost no additional convergence speed per step, because the gradient estimate was already precise enough that noise was no longer the bottleneck; the extra compute in the larger batch is mostly wasted relative to simply running more, smaller-batch steps in the same time.
The jitter visible in a noisy descent path is a direct visual of gradient noise — increasing batch size smooths that jitter, but only up to the point where the path was already about as smooth as the underlying loss surface allows.
The gradient noise scale estimates the batch size below which larger batches give a near-linear speedup (noise is the bottleneck) and above which larger batches give rapidly diminishing returns (the true gradient signal, not noise, is the bottleneck) — it turns "how big should my batch be" from a guess into an estimate.
What this means in practice
This is the practical basis for choosing batch sizes in large-scale training: teams estimate early in a training run and scale batch size (and data-parallel hardware) up to roughly that point to get the best return on additional compute, since scaling further mostly burns extra hardware for negligible extra convergence speed per unit of data processed.
The common mistake is assuming "bigger batch size is always more compute-efficient" because it always reduces gradient variance in isolation. Past the critical batch size implied by , that variance reduction stops mattering — the total number of optimizer steps needed to converge barely drops even as each step gets more expensive, so total training compute for the same result actually goes up, not down, once batch size is pushed well past .
Related concepts
Practice in interviews
Further reading
- McCandlish, Kaplan, Amodei et al., An Empirical Model of Large-Batch Training (2018)