Low-bit quantization of LFM2.5-2.6B (DavidAU Turbo-Brilliance BF16 GGUF): research checkpoint archive
This is the private archive of every checkpoint from the study reported in
hotocooo/lfm25-gsq-replication-diagnosis. It holds the quantized codes, dequantized weights, and the
Fisher / K-FAC statistics. The report has the methods, findings and the timestamped change log. This card says what
each file is and how to load it.
Status: research artifacts, not release models. Several runs here are deliberately broken or withdrawn, and they are labelled below. The numbers are single-seed unless the table says otherwise. Nothing here is a claim that one method beats another; that needs the report's pre-registered protocol (3 seeds, exact bytes, zero-shot accuracy). Every file was sha256-verified against the local copy before that copy was deleted.
The quantized file is DavidAU's Turbo-Brilliance BF16 GGUF, not a Liquid release:
DavidAU/LFM2.5-2.6B-Qwen3.8-Turbo-Brilliance-Power-X12-NEO-MAX-GGUF,
file LFM2.5-2.6B-Q3.8-TBrilliance-BF16.gguf at revision ba98a160, sha256 c86cd3c3f4f9fd71....
Lineage per its card: LiquidAI/LFM2.5-2.6B-Base → LiquidAI/LFM2.5-2.6B → DavidAU "Turbo-Brilliance". Measured:
246 / 266 tensors are bit-identical to LiquidAI/LFM2.5-2.6B@654f9463, and the 20 F32 short-conv kernels match up to
10,412 subnormals that our GGUF→HF conversion flushed to 0. So the weights are Liquid's instruct weights (report,
Finding 6). We converted it to HF safetensors and checked it against llama.cpp. Liquid's weights are under the LFM Open License v1.0, while
DavidAU's card says apache-2.0; everything here follows the upstream lfm1.0 terms. The converted BF16 model is
archived at models/lfm25-tb-hf/ once uploaded.
Runs
KL = mean per-token KL(BF16 ‖ quant), second half of each 2048-token window; ± = SE over per-window means. b/w = bits per quantized-linear weight, exact for TRQ (codes + block scales + dead-row masks [+ e2e row scales]), 2-bit codes + one BF16 scale per 128 weights for GSQ/GPTQ. "e2e" = end-to-end KL scale/norm fine-tune with the codes frozen (the GSQ paper's final stage).
| Run | Method | Stage | b/w | KL wiki | KL FineWeb-Edu | PPL wiki | Status |
|---|---|---|---|---|---|---|---|
b2_gptq_fp_block_s0 |
GPTQ | block | 2.125 | 1.396 | 1.347 | 47.0 | reference (GPTQ, block stage only) |
b2_gsq_fp_block_rot_s0_fp32 |
GSQ | block | 2.125 | 1.430 ± 0.016 | 1.367 ± 0.033 | 78.2 | control (GSQ on the Hadamard-rotated model) |
b2_gsq_fp_block_s0_bf16lr1e-4 |
GSQ | block | 2.125 | 1.758 | 1.836 | 86.8 | INVALID: BF16 logits frozen under Lion (Finding 2) |
b2_gsq_fp_block_s0_deadrowbug |
GSQ | block | 2.125 | 1.880 | 1.786 | 85.3 | INVALID: dead-row bug (Finding 1); kept as the negative result |
b2_gsq_fp_block_s0_fp32 |
GSQ | block | 2.125 | 1.493 ± 0.015 | 1.513 ± 0.037 | 90.4 | current |
b2_gsq_fp_block_s0_fp32/e2e |
GSQ | block + e2e | 2.125 | 0.932 ± 0.011 | 0.776 ± 0.016 | 29.2 | current |
b2_gsq_fp_block_s1_fp32 |
GSQ | block | 2.125 | 1.537 ± 0.016 | 1.387 ± 0.035 | 101.1 | current |
b2_gsq_fp_block_s1_fp32/e2e |
GSQ | block + e2e | 2.125 | 0.969 ± 0.011 | 0.777 ± 0.016 | 34.4 | current |
b2_gsq_fp_block_s2_fp32 |
GSQ | block | 2.125 | 1.418 ± 0.015 | 1.243 ± 0.031 | 80.9 | current |
b2_gsq_fp_block_s2_fp32/e2e |
GSQ | block + e2e | 2.125 | 0.940 ± 0.011 | 0.767 ± 0.016 | 27.3 | current |
b2_trellisL12_s0 |
TRQ (trellis L=12) | block | 2.001 | 0.625 ± 0.009 | 0.495 ± 0.017 | 29.9 | current |
b2_trellisL12_s0/e2e |
TRQ (trellis L=12) | block + e2e | 2.007 | 0.526 ± 0.007 | 0.446 ± 0.013 | 21.8 | current |
b2_trellisL12_s0_colsignRHT |
TRQ (trellis L=12) | block | 2.001 | 0.715 | 0.560 | 35.9 | WITHDRAWN: Hadamard signs on columns, not random (Finding 4) |
b2_trellisL12_s1 |
TRQ (trellis L=12) | block | 2.001 | 0.620 ± 0.009 | 0.490 ± 0.017 | 25.6 | current |
b2_trellisL12_s1/e2e |
TRQ (trellis L=12) | block + e2e | 2.007 | 0.529 ± 0.008 | 0.424 ± 0.013 | 20.5 | current |
b2_trellisL12_s2 |
TRQ (trellis L=12) | block | 2.001 | 0.621 ± 0.009 | 0.479 ± 0.014 | 29.3 | current |
b2_trellisL12_s2/e2e |
TRQ (trellis L=12) | block + e2e | 2.007 | 0.532 ± 0.008 | 0.416 ± 0.013 | 19.6 | current |
b3_gsq_fp_block_s0_fp32 |
GSQ | block | 3.125 | 0.502 ± 0.007 | 0.483 ± 0.025 | 42.6 | current |
b3_trellisL12_s0 |
TRQ (trellis L=12) | block | 3.001 | 0.215 ± 0.004 | 0.158 ± 0.009 | 26.0 | current |
b4_gsq_fp_block_s0_fp32 |
GSQ | block | 4.125 | 0.280 ± 0.004 | 0.156 ± 0.008 | 36.1 | current |
b4_trellisL12_s0 |
TRQ (trellis L=12) | block | 4.001 | 0.061 ± 0.001 | 0.038 ± 0.002 | 27.7 | current |
kfra1.9893_gauge_trellisL12_s0 |
TRQ (trellis L=12) | block | 1.991 | 0.583 ± 0.007 | 0.410 ± 0.010 | 34.3 | current |
kfra1.9893_gauge_trellisL12_s0/e2e |
TRQ (trellis L=12) | block + e2e | 1.997 | 0.584 ± 0.009 | 0.370 ± 0.011 | 18.8 | current |
kfra2.0_trellisL12_s0 |
TRQ (trellis L=12) | block | 2.002 | 0.571 ± 0.007 | 0.447 ± 0.014 | 29.3 | current |
kfra2.0_trellisL12_s0/e2e |
TRQ (trellis L=12) | block + e2e | 2.008 | 0.532 ± 0.008 | 0.377 ± 0.013 | 19.7 | current |
File formats
| File | Contents |
|---|---|
<run>/quant.pt (GSQ/GPTQ) |
{"codes": {"<layer>.<module>": int8 [out, in]}, "scales": {...: fp32 [out, in/128]}, "cfg": {...}}. Dequantize as codes * scales[:, col // 128]; the scales are rounded to BF16 at use, matching the in-run weights. Rotated runs (_rot_) live in the rotated basis: rebuild it with rotate.rotate_model (deterministic seed) before loading. |
<run>/quant.pt (TRQ) |
{"store": {"<layer>.<module>": {"states", "Wscale", "bits", "numel", "rel", ["row_bits"]}}, "norms": {...}, "cfg": {...}}: trellis states and scales, exact bit counts per tensor, KFRA per-row bit-widths. |
<run>/weights.safetensors |
Dequantized BF16 linears + tuned RMSNorm gains; this is what the evaluation loads. |
<run>/e2e/weights.safetensors |
The same after the end-to-end stage; e2e/ft.json has the training KL curve and the extra bits counted. |
<run>/eval.json |
wiki and fwedu_eval: kl_mean, kl_win (per-window, for paired tests), kl_se_win, kl_p99, ppl, top1_agree. |
<run>/train.json, log.txt |
Config, per-layer held-out block MSE, timing, exact bit counts (TRQ). |
fisher.pt |
Diagonal empirical Fisher of the BF16 model on the calibration split (code/fisher.py in the report repo). |
kfac_g.pt |
K-FAC output-side factors G (sampled-label gradients) per quantizable linear, used by KFRA. |
trellis_rho_L12.json |
Measured normalized MSE of the L=12 trellis at 1-4 bits (KFRA's distortion model). |
Loading
# code from the report repo (code/): evalkit.py, load_run.py
from huggingface_hub import snapshot_download
from evalkit import load_model
from load_run import apply_run
d = snapshot_download("hotocooo/lfm25-quant-research-checkpoints", allow_patterns=["b2_trellisL12_s0/*"])
model = load_model() # BF16 LFM2.5-2.6B (models/lfm25-tb-hf)
apply_run(model, f"{d}/b2_trellisL12_s0") # weights.safetensors if present, else codes x scales
For an e2e checkpoint, load <run>/e2e/weights.safetensors with model.load_state_dict(sd, strict=False) after
apply_run.
Model tree for hotocooo/lfm25-quant-research-checkpoints
Base model
LiquidAI/LFM2.5-2.6B-Base