FP8 RL training switches off the penalty on garbled answers

1 day ago

Train an AI model with eight-bit numbers, and a hundred rounds in, it starts writing garbage. That format, FP8, stores every number in eight bits instead of sixteen, so the math runs faster and each number gets rounded more coarsely. The training is reinforcement learning. The model tries an answer, gets a grade, and gets nudged toward what scored well and away from what scored badly. The model is Qwen three from Alibaba, practising on math. Qwen three has eight billion parameters, the numbers a model adjusts as it learns. The standard sixteen-bit run, called BF16, stays steady. This paper traces the blow-up to rounding noise that switches off the penalty for garbled answers.

Ask

Ask about this presentation

Answers are generated from this presentation.

Chapters

  1. 0:008-bit AI training runs fine for 100 steps, then writes garbage
  2. 0:39The standard correction is on in every run, and the answers still turn to garbage
  3. 1:01The safety check stops pushing down a bad answer’s word once it has dropped 20%
  4. 1:37Rounding noise tips a bad answer’s words past the limit, and their penalty switches off
  5. 2:15The ratio multiplies the rounding error up to 2.9 times, and the lost penalties land on garbled answers
  6. 2:52Moving the limit to 0.6 stops the blow-up and lowers the training reward
  7. 3:11Calibrated Clipping sets the 8-bit limit to stop the same share of words full precision would
  8. 3:47On Qwen3 8B the fix lifts the finest 8-bit run from 54.1 to 58.6, level with full precision at 57.6
  9. 4:20On a second recipe, the fix wins back most of the drop and stays 3 to 4.4 points short
  10. 4:45The 1.5 times speed-up was measured with the fix’s full-precision checks left out
  11. 5:10On the two coarser roundings, the fix’s limits get stuck at the edges of their search range
  12. 5:35Read it for the diagnosis of why 8-bit training stops punishing garbage
Show transcript

8-bit AI training runs fine for 100 steps, then writes garbage

8-bit AI training runs fine for 100 steps, then writes garbage
Qwen3 8B on math · full-precision BF16 stays flat while three FP8 runs surge
Figure 1 from the paper: entropy, eval accuracy and clip fraction over 300 training steps for BF16, FP8 rollout with BF16 training, and tensorwise, rowwise and blockwise FP8
the blow-up
Tensorwise · Rowwise · Blockwise = three ways of setting the rounding, coarse to fine
FP8-Rollout-BF16-Train = 8 bits only for writing answers
Eval Accuracy = test score · Training Step = one round of grading and nudging
Clip Fraction = share of words the safety check stops pushing
BF16 · full precision, the flat blue line
Entropy = how scattered the word choices are
Figure 1 · Qwen3-8B-Base learning math (GRPO, DeepScaleR) · the first 300 of 500 training steps
Chen, Jiang, Wei, Zhong, Li, Zhang, Lin, Venkataraman · UW-Madison, ByteDance Seed
“Towards Full Pipeline FP8 Reinforcement Learning for LLMs” · arXiv 2609.22870 v1 · Sep 2026 · preprint

Train an AI model with eight-bit numbers, and a hundred rounds in, it starts writing garbage. That format, FP8, stores every number in eight bits instead of sixteen, so the math runs faster and each number gets rounded more coarsely. The training is reinforcement learning. The model tries an answer, gets a grade, and gets nudged toward what scored well and away from what scored badly. The model is Qwen three from Alibaba, practising on math. Qwen three has eight billion parameters, the numbers a model adjusts as it learns. The standard sixteen-bit run, called BF16, stays steady. This paper traces the blow-up to rounding noise that switches off the penalty for garbled answers.

The standard correction is on in every run, and the answers still turn to garbage

The standard correction is on in every run, and the answers still turn to garbage
8 bits only for writing answers trains fine · the break comes when learning goes to 8 bits too
top bracket · scrambled characters
lower bracket · a tidy ending
high-entropy = scattered word choices
TIS = the standard correction for the two copies disagreeing
Figure 8 · “an example of a high-entropy response containing garbled and fragmented tokens” · TIS on in every run (Sec. 3)
Chen, Jiang, Wei, Zhong, Li, Zhang, Lin, Venkataraman · UW-Madison, ByteDance Seed
“Towards Full Pipeline FP8 Reinforcement Learning for LLMs” · arXiv 2609.22870 v1 · Sep 2026 · preprint

In this kind of training, one copy of the model writes the answers and a second copy learns from the grades. Earlier work put only the writing copy in eight bits, and a standard correction handled the small disagreement between the two copies. That setup trains as steadily as full precision. This paper keeps the correction on in every run and puts the learning copy in eight bits too. The blow-up comes anyway.

The safety check stops pushing down a bad answer’s word once it has dropped 20%

The safety check stops pushing down a bad answer’s word once it has dropped 20%
The ratio compares each word’s probability now and before this round of updates
ratio = a word’s probability now, divided by its probability before this round
0.6
0.8
1.0
a badly graded answer’s word, pushed down
the push stops here for badly graded answers
a matching limit for good answers
ours · from Eq. 1 and 2 · GRPO uses PPO’s clipped update, lower limit 0.8
Chen, Jiang, Wei, Zhong, Li, Zhang, Lin, Venkataraman · UW-Madison, ByteDance Seed
“Towards Full Pipeline FP8 Reinforcement Learning for LLMs” · arXiv 2609.22870 v1 · Sep 2026 · preprint

The recipe here, GRPO, grades each answer against other answers to the same question. Its safety check comes from an older method called PPO. For every word in an answer, PPO compares two probabilities. The first is how likely the updated model makes that word. The second is how likely the same model made it before this round of updates. Dividing the first by the second gives the ratio. When an answer is graded worse than average, training pushes each of its words down. Once a word's ratio falls to zero point eight, a drop of twenty percent, PPO stops pushing it. Good answers get a matching limit on the way up.

Rounding noise tips a bad answer’s words past the limit, and their penalty switches off

Rounding noise tips a bad answer’s words past the limit, and their penalty switches off
The paper calls it over-clipping
1each probability is rounded a little
2the ratio divides one rounded number by another
3a true 0.82 reads as 0.79
4the push stops · the word keeps its probability
5garbled answers pile up
0.8 limit
0.82 · still pushed
0.79 · stopped
our example
our diagram · from Sec. 3 and Eq. 2 · the paper calls this over-clipping · the 0.82 and 0.79 are illustrative
Chen, Jiang, Wei, Zhong, Li, Zhang, Lin, Venkataraman · UW-Madison, ByteDance Seed
“Towards Full Pipeline FP8 Reinforcement Learning for LLMs” · arXiv 2609.22870 v1 · Sep 2026 · preprint

In full eight-bit training, both probabilities in the ratio come out of rounded math, each a little off. Dividing one rounded number by another stacks the two errors together. Take a word from a badly graded answer, with a true ratio of, say, zero point eight two. That word is still inside the limit, so training should keep pushing it down. Rounding noise can make the ratio read zero point seven nine instead. PPO reads that as a word that has already dropped enough, and stops pushing. The word escapes its penalty. The same slip repeats across many garbled answers, so the model never unlearns them. The garbled answers pile up until the run falls apart. The paper calls this over-clipping.

The ratio multiplies the rounding error up to 2.9 times, and the lost penalties land on garbled answers

The ratio multiplies the rounding error up to 2.9 times, and the lost penalties land on garbled answers
Figure 4 is the row-by-row run, late in training
bar names: one scale per table · per row · per block
Prob = one probability · Ratio = one divided by the other
NMAE = average rounding error, as a share of the true value
Figure 4 left panel, not shown: about 70% of wrongly stopped words sit at the lower limit
Proportion = share of those from garbled answers · steps 200 to 300: often 80 to 90%
Figure 3 · Figure 4, row-by-row FP8 run · 6.64% of garbled answers were graded above average (Sec. 3)
Chen, Jiang, Wei, Zhong, Li, Zhang, Lin, Venkataraman · UW-Madison, ByteDance Seed
“Towards Full Pipeline FP8 Reinforcement Learning for LLMs” · arXiv 2609.22870 v1 · Sep 2026 · preprint

The three FP8 runs round differently: one scale for a whole table of numbers, one for each row, or one for each small block. Smaller blocks round more precisely. In the ratio, the rounding error grows by one point six five times with the finest rounding, and by two point nine times with the coarsest. On the row-by-row run, late in training, about seventy percent of the wrongly stopped words sit at the lower limit, the punishment side. Most of those words, often eighty to ninety percent, come from the garbled answers. Only six point six four percent of the garbled answers were graded better than average, so nearly all of them were due a penalty.

Moving the limit to 0.6 stops the blow-up and lowers the training reward

Moving the limit to 0.6 stops the blow-up and lowers the training reward
The model now gets punished too hard, so the limit has to move by the right amount
Figure 5 from the paper: entropy, reward and response length over 300 steps for BF16 and rowwise FP8 with the lower limit at 0.6; entropy stays flat, reward and length stay below BF16
no blow-up
clip_low=0.6 · lower limit moved from 0.8 to 0.6
Reward = the grade it earns while learning · step 300: about 0.55 against 0.65
Entropy stays flat, like full precision
Response Length = how long its answers run · shorter
Figure 5 · Qwen3-8B-Base, row-by-row FP8 with the lower limit at 0.6, against BF16 · reward is measured during training
Chen, Jiang, Wei, Zhong, Li, Zhang, Lin, Venkataraman · UW-Madison, ByteDance Seed
“Towards Full Pipeline FP8 Reinforcement Learning for LLMs” · arXiv 2609.22870 v1 · Sep 2026 · preprint

To test the lower limit as the cause, the authors dropped it from zero point eight to zero point six on the row-by-row run. The blow-up never came. The training reward, the grade the model earns while it learns, stayed below full precision. The authors read the lower reward as punishing too hard, so the limit has to land in the right place.

Calibrated Clipping sets the 8-bit limit to stop the same share of words full precision would

Calibrated Clipping sets the 8-bit limit to stop the same share of words full precision would
Rechecked every 20 training steps · on the finest rounding the lower limit sits near 0.54 to 0.66
1
lower limitstop the same share of badly graded words that full precision stops at 0.8
2
upper limitgive good and bad answers the same balance of pushes as full precision
timingevery 20 training steps · checked on a 16-bit copy that is not trained
red line = finest rounding · about 0.54 to 0.66
Lower Bound = the lower limit the fix set
Algorithm 1, Sec. 4 · inset: Figure 12, left panel, Qwen3-8B-Base · the fix is called Calibrated Clipping
Chen, Jiang, Wei, Zhong, Li, Zhang, Lin, Venkataraman · UW-Madison, ByteDance Seed
“Towards Full Pipeline FP8 Reinforcement Learning for LLMs” · arXiv 2609.22870 v1 · Sep 2026 · preprint

The paper's fix is called Calibrated Clipping. Every twenty rounds of training, the method runs the batch through a sixteen-bit copy of the model. The method counts the share of badly graded words that full precision would stop pushing at zero point eight. Then it sets the eight-bit limit to stop the same share. Noise pushes extra words past the old limit, so the new limit sits lower. With the finest rounding at eight billion parameters, the lower limit lands between about zero point five four and zero point six six. The method also sets the upper limit to give good and bad answers the same balance of pushes as full precision.

On Qwen3 8B the fix lifts the finest 8-bit run from 54.1 to 58.6, level with full precision at 57.6

On Qwen3 8B the fix lifts the finest 8-bit run from 54.1 to 58.6, level with full precision at 57.6
Average of eight math tests · at 32B, 53.4 against 51.9
coarsest
row-by-row
finest
plain 8-bit
46.1
47.0
54.1
with Calibrated Clipping
55.9
56.5
58.6
57.6
full precision (BF16)
inside the 1.8-point swing one setting change causes (Table 4)
Qwen2.5 32B · full precision 51.9 · plain 8-bit 49.0 to 50.8 · finest with the fix 53.4
Table 1 · GRPO · average of 8 math tests · best-scoring snapshot of each run · a single number per setting, no repeats or error bars
Chen, Jiang, Wei, Zhong, Li, Zhang, Lin, Venkataraman · UW-Madison, ByteDance Seed
“Towards Full Pipeline FP8 Reinforcement Learning for LLMs” · arXiv 2609.22870 v1 · Sep 2026 · preprint

On Qwen three at eight billion parameters, averaged over eight math tests, full precision scores fifty-seven point six. Plain eight-bit scores forty-six point one, forty-seven, and fifty-four point one, from the coarsest rounding to the finest. With Calibrated Clipping, the same three settings score fifty-five point nine, fifty-six point five, and fifty-eight point six. Each score is a single number, and the paper reports no repeats or error bars. Changing only how often the fix rechecks moves one score by almost two points, more than the finest rounding's one-point lead.

On a second recipe, the fix wins back most of the drop and stays 3 to 4.4 points short

On a second recipe, the fix wins back most of the drop and stays 3 to 4.4 points short
Qwen3 14B on AIME 2024 · full precision solves 50.9%
full precision (BF16)50.9%
plain 8-bit · three roundings35.7% to 41.6%
with Calibrated Clipping · three roundings46.5% to 47.9%
still 3 to 4.4 points short
0%20%40%60%
coding (Table 3, Qwen3 8B) · with the fix 47.88 to 48.75 against 49.61
Table 2 · DAPO recipe · Qwen3-14B-Base · AIME 2024, a US high-school math competition · averaged over 32 tries per problem
Chen, Jiang, Wei, Zhong, Li, Zhang, Lin, Venkataraman · UW-Madison, ByteDance Seed
“Towards Full Pipeline FP8 Reinforcement Learning for LLMs” · arXiv 2609.22870 v1 · Sep 2026 · preprint

A second recipe, DAPO, trains Qwen three at fourteen billion parameters. On AIME, a hard American high-school math competition, full precision solves fifty point nine percent of the problems. Plain eight-bit solves thirty-five point seven to forty-one point six percent. With the fix, eight-bit solves forty-six point five to forty-seven point nine percent. The fix wins back most of the drop and still stops three to four and a half points short.

The 1.5 times speed-up was measured with the fix’s full-precision checks left out

The 1.5 times speed-up was measured with the fix’s full-precision checks left out
The finest rounding, the one that matched full precision, runs 1.1 to 1.2 times as fast
“The offline TorchAO benchmark isolates training-phase throughput and excludes periodic BF16 reference passes.”
Throughput (TPS) = training speed, in word pieces per second
TorchAO = PyTorch’s number-format toolkit · reference passes = the fix’s 16-bit checks
4K · 8K · 16K = answer length in word pieces · OOM = ran out of memory
red 1.1 and 1.2 = finest rounding · level with full precision at 8B
Figure 7 and its caption · plain 8-bit training speed against BF16 · Qwen3 8B, Qwen3 14B, Qwen2.5 32B
Chen, Jiang, Wei, Zhong, Li, Zhang, Lin, Venkataraman · UW-Madison, ByteDance Seed
“Towards Full Pipeline FP8 Reinforcement Learning for LLMs” · arXiv 2609.22870 v1 · Sep 2026 · preprint

The paper's speed claim, up to one and a half times faster training, comes from a separate test of plain eight-bit training. The figure's caption says that test leaves out the full-precision checks. The introduction calls the fix's extra cost negligible, and the paper reports no full training time with the fix switched on. The finest rounding, the one that came out level with full precision, is also the slowest, at one point one to one point two times as fast.

On the two coarser roundings, the fix’s limits get stuck at the edges of their search range

On the two coarser roundings, the fix’s limits get stuck at the edges of their search range
Qwen3 8B · lower limit on the 0.5 floor, upper limit on the 2.0 ceiling
Lower Bound · Upper Bound = the two limits the fix set, step by step
right panel · orange and green on 2.00: the ceiling
left panel · orange and green on 0.50: the floor of its search range
32B: the same floor from about step 200 (Figure 14)
Figure 12 · Qwen3-8B-Base, GRPO · the fix searches 0.5 to 0.9 for the lower limit and 1.2 to 2.0 for the upper (Sec. 4)
Chen, Jiang, Wei, Zhong, Li, Zhang, Lin, Venkataraman · UW-Madison, ByteDance Seed
“Towards Full Pipeline FP8 Reinforcement Learning for LLMs” · arXiv 2609.22870 v1 · Sep 2026 · preprint

The fix still needs a sixteen-bit copy of the model for its checks. On the two coarser roundings at eight billion parameters, the lower limit slides to zero point five, the bottom of its search range, and stays there. The upper limit climbs to two, the top of its range. From then on, the edges of the range set both limits, and the match to full precision stops steering them. Every model in the paper is a Qwen, from eight to thirty-two billion parameters, tested on math and one coding set.

Read it for the diagnosis of why 8-bit training stops punishing garbage

Read it for the diagnosis of why 8-bit training stops punishing garbage
Qwen models from 8B to 32B · no code linked
Read it
Section 3 · the diagnosis, with two checks to run on your own training
the fix levels the finest rounding with full precision at 8B
no code linked · a single number per setting · full training time with the fix unmeasured
Fanchao Chen, Ziheng Jiang, Ziyun Wei, Zheng Zhong, Du Li, Chi Zhang, Haibin Lin, Shivaram Venkataraman
University of Wisconsin-Madison · ByteDance Seed
“Towards Full Pipeline FP8 Reinforcement Learning for LLMs”
arXiv 2609.22870 v1 · 19 September 2026 · preprint, not peer reviewed
Chen, Jiang, Wei, Zhong, Li, Zhang, Lin, Venkataraman · UW-Madison, ByteDance Seed
“Towards Full Pipeline FP8 Reinforcement Learning for LLMs” · arXiv 2609.22870 v1 · Sep 2026 · preprint

Read it if you train models with low-precision numbers. Section three gives two measurements to repeat on your own training: how often the check stops pushing, and how far the ratio drifts from full precision. Hold off on implementing it, because the paper links no code. The paper is by Fanchao Chen and seven co-authors, a preprint on arXiv, the open archive for research papers, posted before peer review.