mrs83 commited on
Commit
bd05421
·
verified ·
1 Parent(s): 50c37c1

card: quantify quantization damage instead of listing the quants as equals

Browse files
Files changed (2) hide show
  1. README.md +17 -0
  2. benchmarks.json +22 -1
README.md CHANGED
@@ -27,6 +27,23 @@ speculative decoding — plain decoding is what the numbers below measure.
27
  | `gemma-4-E2B-it-OnlyText-Q6_K.gguf` | 3.8 GB |
28
  | `gemma-4-E2B-it-OnlyText-Q8_0.gguf` | 5.0 GB |
29
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
  ## Benchmarks
31
 
32
  Measured 2026-09-22 on a single AMD Radeon AI PRO R9700 (gfx1201, 34 GB) with
 
27
  | `gemma-4-E2B-it-OnlyText-Q6_K.gguf` | 3.8 GB |
28
  | `gemma-4-E2B-it-OnlyText-Q8_0.gguf` | 5.0 GB |
29
 
30
+ ### Quantization damage (vs the F16 master)
31
+
32
+ llama-perplexity --kl-divergence against the F16 master's logits (ctx 1024, 40 windows, 20440 scored tokens). `Same top-1` is the share of positions where the quant keeps the F16
33
+ file's top token; `KLD` is the divergence of the full distribution, whose median is
34
+ the tail-free summary (a mean over a heavy-tailed loss says more about the tail than
35
+ about the quant).
36
+
37
+ | Quant | Mean KLD | Median KLD | Same top-1 | Max KLD |
38
+ |---|---|---|---|---|
39
+ | `Q4_K_M` | 0.3924 | 0.1044 | 78.43% | 16.77 |
40
+ | `Q6_K` | 0.0352 | 0.0074 | 93.30% | 7.70 |
41
+ | `Q8_0` | 0.0077 | 0.0016 | 96.68% | 1.66 |
42
+
43
+ **`Q4_K_M` is not interchangeable with the others here.** It changes the
44
+ top-1 token on 21.6% of positions, against 3.3% for `Q8_0`, so choose from the `Same top-1` column
45
+ rather than by size alone.
46
+
47
  ## Benchmarks
48
 
49
  Measured 2026-09-22 on a single AMD Radeon AI PRO R9700 (gfx1201, 34 GB) with
benchmarks.json CHANGED
@@ -9,7 +9,8 @@
9
  },
10
  "protocol": {
11
  "baseline": "llama-bench -p 512,1024,2048 -n 128,256 -ngl 99 -fa on -r 3",
12
- "chat_control": "llama-cli -n 256 -ngl 99 -fa on -np 1 --temp 0 -st, ~90-token fixed instruction prompt (the no-draft decode control)"
 
13
  },
14
  "results": {
15
  "single": {
@@ -821,5 +822,25 @@
821
  "dual": {}
822
  },
823
  "ppl": {},
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
824
  "ppl_withheld": "Perplexity is not reported for this family, but not because the measurement is broken: llama-perplexity adds the leading BOS this architecture needs (llama.cpp forces it for gemma4), and an independent HF implementation of the same protocol agrees to within 0.08 PPL (160.9418 vs 160.8636) with identical tokenization, so the number is a faithful property of the checkpoint. It is withheld because raw-wikitext perplexity is not a meaningful quality signal for an instruct-only model: the median token is predicted well (1.88 nats, 44% top-1) while the mean is dominated by a heavy tail where the chat-tuned model is out of distribution on plain text, and the result is not monotone in quantization width. Upstream guidance is to measure the base checkpoint or chat-formatted data. The raw ppl-*.log files are still on disk. See docs/gemma4-plan.md."
825
  }
 
9
  },
10
  "protocol": {
11
  "baseline": "llama-bench -p 512,1024,2048 -n 128,256 -ngl 99 -fa on -r 3",
12
+ "chat_control": "llama-cli -n 256 -ngl 99 -fa on -np 1 --temp 0 -st, ~90-token fixed instruction prompt (the no-draft decode control)",
13
+ "quant_damage": "llama-perplexity --kl-divergence against the F16 master's logits (ctx 1024, 40 windows, 20440 scored tokens)"
14
  },
15
  "results": {
16
  "single": {
 
822
  "dual": {}
823
  },
824
  "ppl": {},
825
+ "quant_kl": {
826
+ "Q4_K_M": {
827
+ "mean_kld": 0.392409,
828
+ "median_kld": 0.104361,
829
+ "max_kld": 16.77215,
830
+ "same_top_p": 78.43
831
+ },
832
+ "Q6_K": {
833
+ "mean_kld": 0.035236,
834
+ "median_kld": 0.007383,
835
+ "max_kld": 7.702833,
836
+ "same_top_p": 93.302
837
+ },
838
+ "Q8_0": {
839
+ "mean_kld": 0.007666,
840
+ "median_kld": 0.001566,
841
+ "max_kld": 1.66493,
842
+ "same_top_p": 96.683
843
+ }
844
+ },
845
  "ppl_withheld": "Perplexity is not reported for this family, but not because the measurement is broken: llama-perplexity adds the leading BOS this architecture needs (llama.cpp forces it for gemma4), and an independent HF implementation of the same protocol agrees to within 0.08 PPL (160.9418 vs 160.8636) with identical tokenization, so the number is a faithful property of the checkpoint. It is withheld because raw-wikitext perplexity is not a meaningful quality signal for an instruct-only model: the median token is predicted well (1.88 nats, 44% top-1) while the mean is dominated by a heavy tail where the chat-tuned model is out of distribution on plain text, and the result is not monotone in quantization width. Upstream guidance is to measure the base checkpoint or chat-formatted data. The raw ppl-*.log files are still on disk. See docs/gemma4-plan.md."
846
  }