← all builds

kurt-switch live demo

Native JS re-implementation of kurtosis-switched 4-bit quantization. 200 rows × 64 dims synthetic (gaussian + outliers). Each row picks a codebook by its kurtosis, then gets a closed-form least-squares scale.

Adaptive MSE
–
Uniform-16 MSE (baseline)
–
MSE reduction
–
Win rate (rows adaptive wins)
–

MSE per kurtosis bin (green = adaptive, grey = uniform)

How it works

1. Stats: per row compute excess kurtosis mean(z^4)-3, skew, outlier fraction (|z|>3). 2. Switch rule: kurtosis > target (slider) or outlier-frac > 0.02 → odd16 companded grid (fine near zero); |skew| > 1 → shifted grid; else uniform16. 3. Scale: closed-form LS s = (x·c)/(c·c) with assign→rescale→reassign→rescale. Mirrors kurt_switch/core.py: compute_row_stats, select_codebook, quantize_row.

Code folder: github.com/DastanZar/kurt-switch · portfolio card