selimaktas commited on
Commit
f1a76e2
·
verified ·
1 Parent(s): f7869fb

Upload README.md with huggingface_hub

Browse files
Files changed (1) hide show
  1. README.md +29 -10
README.md CHANGED
@@ -18,11 +18,11 @@ Mixed-precision **INT4 (W4A16)** quantization of [`Qwen/Qwen3.8-27B`](https://hu
18
  built with [llm-compressor](https://github.com/vllm-project/llm-compressor) using
19
  **AWQ activation-aware scaling followed by GPTQ**.
20
 
21
- **21 GB, and measurably more faithful to the BF16 model than the official FP8 release**
22
  on high-confidence token agreement — at 8 GB less. Runs on anything Turing or newer
23
  (no FP8/FP4 hardware required).
24
 
25
- This is the size-optimised variant. A 23 GB sibling,
26
  [`Qwen3.8-27B-INT4-AWQ-GPTQ`](https://huggingface.co/TelperionAI/Qwen3.8-27B-INT4-AWQ-GPTQ),
27
  keeps the GDN projections at 8-bit and is more accurate again (0.93% vs 1.15% confident).
28
 
@@ -56,12 +56,12 @@ Against the BF16 base on 142,727 tokens of self-distilled thinking-mode output p
56
  | checkpoint | size ↓ | top-1 ↑ | near-tie ↓ | moderate ↓ | confident ↓ | certain ↓ | divmed ↑ | tok/s ↑ |
57
  |---|---:|---:|---:|---:|---:|---:|---:|---:|
58
  | `Qwen/Qwen3.8-27B-FP8` *(8-bit ref)* | 29 GB | 96.15% | 22.70% | 3.48% | 1.45% | 0.08% | 47 | 8711 |
59
- | **this model (GDN 4-bit)** | 21 GB | **95.88%** | **25.26%** | **3.60%** | **1.15%** | 0.13% | **51** | 4716 |
60
- | our 23 GB sibling (GDN 8-bit) | 23 GB | 96.30% | 22.29% | 3.52% | 0.93% | 0.09% | 48 | 4617 |
61
  | `cyankiwi/Qwen3.8-27B-AWQ-INT4` | **20 GB** | 94.35% | 33.74% | 5.59% | 1.35% | **0.12%** | 29 | 4787 |
62
 
63
- Bold marks the best value in each column **among the ~20–21 GB checkpoints**; the FP8 row and
64
- our own 23 GB sibling sit in different size classes and are shown for reference only.
65
 
66
  **Columns.** `top-1` is raw argmax agreement with BF16. The four bucket columns are
67
  *disagreement* rates, split by how confident the base model was at that position
@@ -76,7 +76,7 @@ damage. Do not rank quantizations of this model by perplexity.
76
 
77
  ### What the GDN precision costs
78
 
79
- Moving the GDN projections from 8-bit to 4-bit is what takes this build from 23 GB to 21 GB.
80
  It costs `confident` **0.93% → 1.15%** and `certain` **0.09% → 0.13%** — real but modest.
81
  Note the two are not a pure bit-width comparison: at 4-bit the GDN projections also move
82
  into GPTQ's error compensation, where at 8-bit they were plain round-to-nearest, so the
@@ -109,13 +109,32 @@ W4A16 needs only compute capability ≥ 7.5 (Turing), so this runs on 3090/4090/
109
  as well as Blackwell. Throughput above was measured on B300 and is not representative of
110
  Ampere, where Marlin INT4 is comparatively better tuned.
111
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
112
  ## Limitations
113
 
114
- - **21 GB is still tight on a single 24 GB card** once KV cache is accounted for.
115
  Quantizing `lm_head` would free a further ~1.3 GB but was not measured here.
116
  - **Throughput on Blackwell is ~2.3× below NVFP4.** This checkpoint trades speed for fidelity.
117
- - **The MTP head is not included** — `Qwen3_5ForConditionalGeneration` does not carry it in
118
- its state dict, so it is dropped during quantization. MTP speculative decoding is unavailable.
119
  - **Single evaluation corpus.** All numbers come from one self-distilled corpus. The margins
120
  over FP8 and cyankiwi are statistically solid but have not been replicated on a second
121
  distribution, nor on downstream task benchmarks.
 
18
  built with [llm-compressor](https://github.com/vllm-project/llm-compressor) using
19
  **AWQ activation-aware scaling followed by GPTQ**.
20
 
21
+ **22 GB, and measurably more faithful to the BF16 model than the official FP8 release**
22
  on high-confidence token agreement — at 8 GB less. Runs on anything Turing or newer
23
  (no FP8/FP4 hardware required).
24
 
25
+ This is the size-optimised variant. A 24 GB sibling,
26
  [`Qwen3.8-27B-INT4-AWQ-GPTQ`](https://huggingface.co/TelperionAI/Qwen3.8-27B-INT4-AWQ-GPTQ),
27
  keeps the GDN projections at 8-bit and is more accurate again (0.93% vs 1.15% confident).
28
 
 
56
  | checkpoint | size ↓ | top-1 ↑ | near-tie ↓ | moderate ↓ | confident ↓ | certain ↓ | divmed ↑ | tok/s ↑ |
57
  |---|---:|---:|---:|---:|---:|---:|---:|---:|
58
  | `Qwen/Qwen3.8-27B-FP8` *(8-bit ref)* | 29 GB | 96.15% | 22.70% | 3.48% | 1.45% | 0.08% | 47 | 8711 |
59
+ | **this model (GDN 4-bit)** | 22 GB | **95.88%** | **25.26%** | **3.60%** | **1.15%** | 0.13% | **51** | 4716 |
60
+ | our 24 GB sibling (GDN 8-bit) | 24 GB | 96.30% | 22.29% | 3.52% | 0.93% | 0.09% | 48 | 4617 |
61
  | `cyankiwi/Qwen3.8-27B-AWQ-INT4` | **20 GB** | 94.35% | 33.74% | 5.59% | 1.35% | **0.12%** | 29 | 4787 |
62
 
63
+ Bold marks the best value in each column **among the ~20–22 GB checkpoints**; the FP8 row and
64
+ our own 24 GB sibling sit in different size classes and are shown for reference only.
65
 
66
  **Columns.** `top-1` is raw argmax agreement with BF16. The four bucket columns are
67
  *disagreement* rates, split by how confident the base model was at that position
 
76
 
77
  ### What the GDN precision costs
78
 
79
+ Moving the GDN projections from 8-bit to 4-bit is what takes this build from 24 GB to 22 GB.
80
  It costs `confident` **0.93% → 1.15%** and `certain` **0.09% → 0.13%** — real but modest.
81
  Note the two are not a pure bit-width comparison: at 4-bit the GDN projections also move
82
  into GPTQ's error compensation, where at 8-bit they were plain round-to-nearest, so the
 
109
  as well as Blackwell. Throughput above was measured on B300 and is not representative of
110
  Ampere, where Marlin INT4 is comparatively better tuned.
111
 
112
+ ## Speculative decoding (MTP)
113
+
114
+ The model's **MTP (multi-token prediction) head is included**, in BF16, and works with
115
+ vLLM's `mtp` speculative decoding:
116
+
117
+ ```python
118
+ from vllm import LLM
119
+ llm = LLM("TelperionAI/Qwen3.8-27B-INT4-AWQ-GPTQ-gdn4", tensor_parallel_size=2,
120
+ speculative_config={"method": "mtp", "num_speculative_tokens": 2})
121
+ ```
122
+
123
+ `Qwen3_5ForConditionalGeneration` does not carry `mtp.*` in its state dict, so
124
+ llm-compressor never sees it and it is absent from most community quantizations of this
125
+ model — even though `config.json` declares `mtp_num_hidden_layers: 1`. It is grafted back
126
+ in here from the base checkpoint and excluded from quantization (`re:.*mtp.*` in
127
+ `quantization_config.ignore`; without that exclusion the quantization target regexes also
128
+ match `mtp.layers.0.mlp.*` and vLLM fails to load). Draft quality drives acceptance rate,
129
+ so it is kept at full precision rather than quantized.
130
+
131
+ Acceptance rate has not been measured; the head is verified to load and generate.
132
+
133
  ## Limitations
134
 
135
+ - **22 GB is still tight on a single 24 GB card** once KV cache is accounted for.
136
  Quantizing `lm_head` would free a further ~1.3 GB but was not measured here.
137
  - **Throughput on Blackwell is ~2.3× below NVFP4.** This checkpoint trades speed for fidelity.
 
 
138
  - **Single evaluation corpus.** All numbers come from one self-distilled corpus. The margins
139
  over FP8 and cyankiwi are statistically solid but have not been replicated on a second
140
  distribution, nor on downstream task benchmarks.