STE-based quantization-aware training on TinyGPT-2 (2 layers, d=128, 500 steps, byte-level vocab). QF8 final val loss 2.5445 vs FP32's 2.5450 (−0.02%), while FP8 E4M3 gives 2.5478 (+0.11%). Small scale — validates format viability but not scaling behavior.