Switch the dtype to FP8, keep the same sensitivity thresholds, assume the model behaves identically. That is the assumption that quietly breaks an operational anomaly detector. FP8 is a real efficiency lever, but it is not a drop-in swap for a system whose whole value depends on where a borderline score lands relative to a tuned threshold. The mechanics of FP8 training are well understood by now. What is less appreciated — and where we see teams get burned — is that reduced numerical precision does not just make training cheaper; it shifts the score distribution your anomaly system was calibrated against. If you retrain in FP8 and carry over the FP16 thresholds unchanged, you may have silently re-tuned the detector without re-validating it. The compute you saved can come straight back out of your alert quality. How does FP8 training work? FP8 is an 8-bit floating-point representation used for the numerically heavy parts of training — the matrix multiplications in forward and backward passes — while a higher-precision copy of the weights is kept for the optimizer update. The idea is not new; it is the same mixed-precision playbook that made FP16 and BF16 standard, pushed one step further down the bit budget. NVIDIA’s Hopper and Blackwell tensor cores implement FP8 matmul natively, and the Transformer Engine library wires it into PyTorch by casting eligible operations to FP8 while managing scaling factors behind the scenes. In practice, “training in FP8” almost never means every tensor is FP8. It means a carefully chosen subset of operations runs at 8 bits, master weights and reductions stay higher-precision, and a per-tensor scaling factor keeps values inside the narrow range 8 bits can represent. The throughput win comes from moving less data and hitting faster tensor-core paths. On Hopper-class hardware, FP8 training can roughly halve the training compute and memory footprint versus FP16 (per NVIDIA’s published Transformer Engine guidance) — a market-direction framing at the architecture level, not a guarantee for any specific anomaly model. For an anomaly-detection model that must be periodically re-baselined against drift, that halving matters because it shortens the retraining cycle. But the operationally relevant outcome is not throughput. It is whether the FP8 checkpoint still scores normal and anomalous inputs the way the higher-precision baseline did. What are the FP8 numeric formats, and where is each used? FP8 is not one format. The two variants in common use trade exponent bits against mantissa bits differently, and they are used at different points in the training step. Format Bit layout Dynamic range Precision Typical use in training E4M3 4 exponent, 3 mantissa Narrower Higher Forward-pass activations and weights, where relative precision matters more than range E5M2 5 exponent, 2 mantissa Wider Lower Backward-pass gradients, which span a wider dynamic range and tolerate coarser mantissa The split is deliberate. Gradients during backpropagation can span many orders of magnitude, so they need the extra exponent bits of E5M2 to avoid underflow. Activations and weights cluster in a tighter band, so E4M3 spends its bits on mantissa precision instead. This is why “FP8 training” done properly uses both formats depending on the tensor’s role, coordinated by per-tensor scaling that keeps each cast inside the representable range. When people report FP8 instability, the root cause is frequently a scaling or format-assignment problem, not FP8 itself. None of this is exotic to a team that has done mixed-precision work. The reason it deserves attention in an anomaly-detection context is that these format boundaries are where the score-distribution shift is born. How does moving to FP8 change the score distribution and thresholds? An anomaly detector produces a score — a reconstruction error, a likelihood, a distance in latent space — and a threshold turns that continuous score into an alert. The detector’s entire behaviour lives in the shape of the score distribution near that threshold. Precision changes the quantisation of borderline values, and borderline values are exactly the ones that decide whether you alert. Consider the mechanism. A reconstruction-based detector trained in FP32 might place a genuinely anomalous sample at a score of 0.812 and a marginal-but-normal sample at 0.804, with the threshold at 0.808. Retrain the same architecture in FP8 and the learned weights differ slightly; the two samples might now land at 0.809 and 0.807. The model has not become worse in any global sense — but the ordering and spacing near the decision boundary moved, and the old threshold now flips one of those decisions. Multiply that across a validation set and the false-positive rate drifts. This is the divergence point the naive approach misses. FP8 is not wrong; the assumption that the threshold is precision-invariant is wrong. The score distribution an anomaly system is calibrated against is a property of the trained model, and the trained model changed. The sensitivity thresholds tuned on the FP16 or FP32 checkpoint may no longer hold against the FP8 one, and there is no way to know without measuring. Tuning those thresholds is a first-class task in its own right — the same discipline that governs choosing a hyperparameter optimizer for anomaly-detection sensitivity applies just as much when the trigger for re-tuning is a precision change rather than a data change. What calibration and validation evidence must be re-verified? Treat the FP8 checkpoint as a new model that has to earn its place in the pipeline, because that is what it is. The operational-anomaly validation lens is unforgiving here: an FP8 checkpoint must pass the same sensitivity-calibration and false-positive validation as the higher-precision model before it enters the anomaly pipeline. Carrying over the artefacts from the FP16 run is exactly the silent-mis-tuning failure this article exists to name. Re-verification checklist for an FP8 anomaly checkpoint Score distribution comparison — Plot the FP8 score distribution against the FP16/FP32 baseline on the same validation set. Divergence near the threshold matters far more than divergence in the tails. Sensitivity-threshold re-calibration — Re-derive the operating threshold from the FP8 scores. Do not assume the old value transfers. False-positive rate against documented tolerance — Confirm the FP8 false-positive rate matches the baseline within the tolerance recorded in your validation artefact. This is the pass/fail gate. Drift-telemetry baseline reset — Re-establish the baseline statistics the live drift monitor compares against. FP8 changes the reference, not just the model. Versioned calibration evidence — Store the FP8 calibration run as its own artefact, linked to the FP8 checkpoint, so the evidence is traceable. Versioning sensitivity-calibration evidence as a first-class artefact is what keeps this auditable rather than tribal. The gate is not “does FP8 train faster” — it obviously does. The gate is “does the FP8 detector’s false-positive rate and sensitivity threshold match the higher-precision baseline within the documented tolerance.” That is a benchmark-class check against a named validation set, and it is the only evidence that justifies promotion. Where this gate sits relative to the rest of the lifecycle is a question our writeup on where reliability gates belong at each stage of an ML pipeline treats directly; the FP8 re-calibration gate is a special case of the same principle. How do FP8 precision shifts show up in drift telemetry? This is the subtle part. A live anomaly system usually monitors its own health through drift telemetry — the running distribution of scores, alert rates, and input statistics compared against a baseline captured at deployment. If you swap in an FP8 checkpoint but leave the baseline untouched, the telemetry will report drift that is not real drift. It is the precision change masquerading as data change. The failure mode is a false drift signal that erodes trust in the monitoring itself. On-call engineers see the alert-rate baseline move, investigate, find no upstream data change, and eventually start discounting the drift monitor. That is worse than the original problem, because now a genuine future drift event lands on a monitor nobody believes. The fix is procedural: whenever precision changes, re-establish the drift-telemetry baseline against the FP8 checkpoint as part of promotion, and record that the reset happened. The telemetry pipeline that feeds those baselines — the kind of training-telemetry capture that flows into drift monitoring — should log the precision regime alongside the metrics so the reset is triggered automatically, not remembered by someone. In our experience across reliability engagements, the teams that get this right are the ones who treat “precision changed” as a first-class event in the same category as “training data changed” — both invalidate the calibrated baseline, and both demand re-verification (observed pattern; not a benchmarked rate). FAQ What matters most about fp8 training in practice? FP8 training runs the heavy matrix multiplications of forward and backward passes at 8-bit precision while keeping master weights and reductions higher-precision, with per-tensor scaling factors holding values inside the narrow representable range. Native support exists on NVIDIA Hopper and Blackwell tensor cores via the Transformer Engine library. In practice it can roughly halve training compute and memory versus FP16, which shortens retraining cycles — but the operationally relevant question is whether the resulting model still scores inputs the way the higher-precision baseline did. What are the FP8 numeric formats (E4M3 and E5M2) and where is each used during training? E4M3 uses 4 exponent and 3 mantissa bits, favouring precision over range, and is typically used for forward-pass activations and weights. E5M2 uses 5 exponent and 2 mantissa bits, favouring dynamic range, and is used for backward-pass gradients that span many orders of magnitude. The split is deliberate: gradients need the wider range to avoid underflow, while activations cluster tightly enough to spend bits on mantissa precision instead. How does moving to FP8 affect the score distribution and sensitivity thresholds of an anomaly-detection model? Reduced precision changes how borderline scores quantise, and borderline scores are exactly the ones that decide whether the detector alerts. Slightly different learned weights shift the ordering and spacing of scores near the decision boundary, so thresholds tuned on an FP16 or FP32 model may flip decisions on the FP8 model. The detector is not globally worse, but the assumption that a threshold is precision-invariant is wrong, so the false-positive rate can drift without any change in the data. What calibration and validation evidence must be re-verified when a model is retrained in FP8 rather than FP16 or FP32? Treat the FP8 checkpoint as a new model: re-compare its score distribution against the baseline, re-derive the sensitivity threshold, confirm the false-positive rate falls within the documented tolerance, reset the drift-telemetry baseline, and version the calibration run as its own linked artefact. Carrying over the FP16 calibration artefacts unchanged is the silent-mis-tuning failure. The pass/fail gate is whether the FP8 detector’s false-positive rate and threshold match the higher-precision baseline within tolerance. How do FP8-induced precision shifts show up in the drift telemetry an operational anomaly system monitors? If the FP8 checkpoint replaces the higher-precision one but the deployment-time drift baseline is left untouched, the telemetry reports the precision change as if it were data drift. This false drift signal erodes trust in the monitor, so a genuine future drift event may be ignored. The fix is to re-establish the drift baseline against the FP8 checkpoint at promotion and log the precision regime so the reset is triggered rather than remembered. When is FP8 training worth adopting for anomaly models, and when does the compute saving not justify the re-calibration cost? FP8 is worth adopting when retraining cycles are frequent enough that halving compute meaningfully shortens re-baselining, and when the FP8 detector passes the same sensitivity and false-positive validation as the higher-precision baseline within tolerance. It is not worth it when re-calibration evidence shows the FP8 model pushes the score distribution outside tolerance — at that point the compute saving is a net loss in alert quality. The decision hinges on the re-calibration result, not the throughput number. Where the efficiency lever actually pays off FP8 is a legitimate efficiency lever for anomaly models, and for teams retraining often against drift, halving the training footprint is a real operational gain. The catch is that the saving is only banked if the precision effects are captured in the same reliability artefacts that keep the detector trustworthy — the sensitivity calibration, the false-positive tolerance, the drift baseline. Skip that and you have not saved compute; you have traded it for a silently mis-tuned detector and a drift monitor telling you things that are not true. The cleaner way to hold this is to make the validation gate, not the dtype, the thing that decides promotion. Our broader take on [reliability for production AI systems](production AI reliability) frames precision changes as one more event that invalidates a calibrated baseline — no different in kind from a data shift. If your validation harness already re-verifies sensitivity calibration whenever the model changes, FP8 slots in as a routine efficiency choice. If it does not, FP8 is where you will discover the harness was never really enforcing calibration at all.