Compressed checkpoint: 3,450,632,192 bytes = 0.3564 of the bf16 reference
(9,682,900,992 bytes), measured with count_total_size (numel * itemsize over the
state dict), which eval_submission.py documents as the graded quantity.
Model: Qwen/Qwen3.5-4B. Domain: math.
Result
math accuracy
retention vs bf16
this submission
0.8590
0.9140
bf16 reference
0.9399
1.0000
Per evaluation set:
set
accuracy
retention
gsm8k
0.8621
1.0000
math500
0.8684
0.9167
math_hard
0.7959
0.8478
mmlu_pro_math
0.9697
1.0000
Measured on our own frozen benchmark (four math sets, 16384 new tokens, greedy),
not on the hidden set.
Where the checkpoint is
artifact.pt (3.45 GB) is in the HuggingFace repo, not here — GitHub caps files
at 100 MB. code.py loads it from its own directory.
This recipe is post-training only, so code.pycan rebuild the checkpoint from
the base model. It ships the measured one anyway: GPTQ is not bit-reproducible
across runs — two builds of this recipe from identical source differ in 602 of
834 stored tensors, because the Hessian is measured on freshly drawn calibration
text and GPU reductions do not re-associate the same way twice. Shipping the
artifact means the graded checkpoint is exactly the one the numbers above
describe, and saves ~200 GPU-minutes of recompression.
Recipe
stage
modules
format
1
all attention and FFN projections (q/k/v/o_proj, in_proj_qkv, in_proj_z, out_proj, gate/up/down_proj)
RHT + GPTQ, 6-bit, group 128
2
embed_tokens (tied to lm_head)
RTN, 8-bit, group 128
Calibration: 128 sequences from the eval-shaped mixture (50% competition maths,
25% grade-school, 25% multiple choice), matching the format split of the four
graded sets rather than free-form derivations alone.
A random Hadamard transform is applied per weight block before quantisation and
inverted at restore, so GPTQ's error compensation runs in an incoherent basis
where outliers are spread across channels instead of concentrated in a few.
Track 2 relevance: every stage is a uniform grouped-affine integer code with
a fixed group size. Dequantisation is a scale-and-shift over contiguous groups
and the Hadamard transform is a butterfly — both are standard fused-dequant GEMM
kernel shapes, so nothing here relies on data-dependent lookup or irregular
sparsity that would block a CUDA speedup.
1{2"id":"gen4-h40-rht-gptq-6bit",3"track":2,4"needs":{5"gpus":1,6"gpu_mem_gb":40,7"est_minutes":200,8"disk_gb":259},10"stages":[11{12"op":"quant_rht_gptq",13"params":{14"bits":6,15"group":128,16"seed":117},18"select":{19"layers":"all",20"modules":[21"down_proj",22"gate_proj",23"in_proj_qkv",24"in_proj_z",25"k_proj",26"o_proj",27"out_proj",28"q_proj",29"up_proj",30"v_proj"31]32}33},34{35"op":"quant_rtn",36"params":{37"bits":8,38"group":12839},40"select":{41"layers":"all",42"modules":[43"embed_tokens"44]45}46}47],48"train":{49"mode":"calib",50"calib_samples":128,51"calib_source":"mix"52},53"hypothesis":"The 40% head ranks by ACCURACY ALONE, so the best entry is the most accurate recipe still measuring <= 0.4 -- and our banked control wastes the head. It spends 6.3 bits on plain round-to-nearest (int8 everywhere, int4 on the FFN) and scores 0.863. RHT+GPTQ at 6 bits with an 8-bit embedding lands at 0.356, comfortably inside, while using the algorithm measured 23.7x better than RTN at matched bytes (job 279735) and the rotation measured to help most where compensation is already working. This should be close to lossless, and it is the cheapest remaining experiment that can improve our single best banked result.",54"citations":[]55}