williamliao commited on
Commit
0310835
·
verified ·
1 Parent(s): 92ef947

Upload folder using huggingface_hub

Browse files
Files changed (3) hide show
  1. .gitattributes +11 -35
  2. Gemma-4-31B-NVFP4.gguf +3 -0
  3. README.md +384 -0
.gitattributes CHANGED
@@ -1,35 +1,11 @@
1
- *.7z filter=lfs diff=lfs merge=lfs -text
2
- *.arrow filter=lfs diff=lfs merge=lfs -text
3
- *.bin filter=lfs diff=lfs merge=lfs -text
4
- *.bz2 filter=lfs diff=lfs merge=lfs -text
5
- *.ckpt filter=lfs diff=lfs merge=lfs -text
6
- *.ftz filter=lfs diff=lfs merge=lfs -text
7
- *.gz filter=lfs diff=lfs merge=lfs -text
8
- *.h5 filter=lfs diff=lfs merge=lfs -text
9
- *.joblib filter=lfs diff=lfs merge=lfs -text
10
- *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
- *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
- *.model filter=lfs diff=lfs merge=lfs -text
13
- *.msgpack filter=lfs diff=lfs merge=lfs -text
14
- *.npy filter=lfs diff=lfs merge=lfs -text
15
- *.npz filter=lfs diff=lfs merge=lfs -text
16
- *.onnx filter=lfs diff=lfs merge=lfs -text
17
- *.ot filter=lfs diff=lfs merge=lfs -text
18
- *.parquet filter=lfs diff=lfs merge=lfs -text
19
- *.pb filter=lfs diff=lfs merge=lfs -text
20
- *.pickle filter=lfs diff=lfs merge=lfs -text
21
- *.pkl filter=lfs diff=lfs merge=lfs -text
22
- *.pt filter=lfs diff=lfs merge=lfs -text
23
- *.pth filter=lfs diff=lfs merge=lfs -text
24
- *.rar filter=lfs diff=lfs merge=lfs -text
25
- *.safetensors filter=lfs diff=lfs merge=lfs -text
26
- saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
- *.tar.* filter=lfs diff=lfs merge=lfs -text
28
- *.tar filter=lfs diff=lfs merge=lfs -text
29
- *.tflite filter=lfs diff=lfs merge=lfs -text
30
- *.tgz filter=lfs diff=lfs merge=lfs -text
31
- *.wasm filter=lfs diff=lfs merge=lfs -text
32
- *.xz filter=lfs diff=lfs merge=lfs -text
33
- *.zip filter=lfs diff=lfs merge=lfs -text
34
- *.zst filter=lfs diff=lfs merge=lfs -text
35
- *tfevents* filter=lfs diff=lfs merge=lfs -text
 
1
+ *.gguf filter=lfs diff=lfs merge=lfs -text
2
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.pt filter=lfs diff=lfs merge=lfs -text
5
+ *.pth filter=lfs diff=lfs merge=lfs -text
6
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
7
+ *.onnx filter=lfs diff=lfs merge=lfs -text
8
+ *.zip filter=lfs diff=lfs merge=lfs -text
9
+ *.7z filter=lfs diff=lfs merge=lfs -text
10
+ *.tar filter=lfs diff=lfs merge=lfs -text
11
+ *.tar.gz filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Gemma-4-31B-NVFP4.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ce8e40ba5ce80b3925a7c1e2dbf7177f2fc328284f0f66e2eb81da19a3be07aa
3
+ size 22132161664
README.md CHANGED
@@ -1,3 +1,387 @@
1
  ---
2
  license: apache-2.0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
  license: apache-2.0
3
+ base_model:
4
+ - RedHatAI/gemma-4-31B-it-NVFP4
5
+ - google/gemma-4-31B-it
6
+ base_model_relation: quantized
7
+ library_name: llama.cpp
8
+ tags:
9
+ - gguf
10
+ - llama.cpp
11
+ - gemma4
12
+ - gemma
13
+ - dense
14
+ - nvfp4
15
+ - fp4
16
+ - llm-compressor
17
+ - compressed-tensors
18
+ - mtp
19
+ - speculative-decoding
20
+ - assistant-model
21
+ pipeline_tag: image-text-to-text
22
  ---
23
+
24
+ # gemma-4-31B-it-NVFP4-GGUF
25
+
26
+ GGUF conversion of **RedHatAI/gemma-4-31B-it-NVFP4** for use with **llama.cpp**.
27
+
28
+ > **This is an NVFP4-quantized standalone Gemma 4 target model.**
29
+ >
30
+ > It can run by itself. The speculative-decoding benchmark below pairs it with a compatible **Gemma 4 31B Assistant/MTP draft model**.
31
+
32
+ ## Model Details
33
+
34
+ * **Source model:** `RedHatAI/gemma-4-31B-it-NVFP4`
35
+ * **Base model:** `google/gemma-4-31B-it`
36
+ * **Format:** GGUF
37
+ * **Quantization:** NVIDIA NVFP4 / FP4
38
+ * **Quantization framework:** Red Hat AI LLM Compressor / compressed-tensors
39
+ * **Architecture:** Gemma 4 31B dense multimodal instruction model
40
+ * **Input:** Text and image
41
+ * **Output:** Text
42
+ * **Purpose:** Local inference and Assistant/MTP speculative decoding with llama.cpp
43
+
44
+ The upstream checkpoint quantizes the weights and activations of linear operators inside the transformer blocks to NVFP4. The vision tower, embedding layers, and output head remain at their original precision.
45
+
46
+ The upstream model card specifies:
47
+
48
+ * FP4 weight quantization with `group_size = 16`
49
+ * FP4 activation quantization with local per-group scaling
50
+ * Approximately 75% lower disk and GPU-memory requirements than the unquantized 16-bit checkpoint
51
+ * Release date: 2026-04-04
52
+ * Model version: 1.0
53
+
54
+ This repository contains the complete target model. The compatible Assistant/MTP draft model used for speculative decoding is separate.
55
+
56
+ ## Compatibility
57
+
58
+ A recent version of **llama.cpp** with Gemma 4, NVFP4, multimodal, and Assistant/MTP support is required.
59
+
60
+ Tested with:
61
+
62
+ * Windows
63
+ * NVIDIA GeForce RTX 5070 Ti 16 GB
64
+ * NVIDIA GeForce RTX 5060 Ti 16 GB
65
+ * llama.cpp CUDA backend
66
+ * A compatible Gemma 4 31B Assistant GGUF draft model
67
+ * `--spec-type draft-mtp`
68
+
69
+ Older llama.cpp builds may fail to recognize the `nvfp4` tensor type, load the Assistant architecture, or initialize the target and draft KV caches correctly.
70
+
71
+ Performance varies with the llama.cpp build, target and draft quantizations, GPU split, context size, KV-cache format, prompt, sampling settings, and other runtime options.
72
+
73
+ > The benchmark below is text-only. Image input requires a compatible multimodal projector and llama.cpp multimodal support.
74
+
75
+ ## Usage
76
+
77
+ Replace the Assistant filename below with your compatible Gemma 4 31B Assistant GGUF.
78
+
79
+ ### llama-server
80
+
81
+ ```bash
82
+ llama-server \
83
+ -m gemma-4-31B-it-NVFP4.gguf \
84
+ -md gemma-4-31B-it-assistant.gguf \
85
+ --spec-type draft-mtp \
86
+ --spec-draft-n-max 5 \
87
+ --flash-attn on \
88
+ -ngl 99
89
+ ```
90
+
91
+ ### llama-cli
92
+
93
+ ```bash
94
+ llama-cli \
95
+ -m gemma-4-31B-it-NVFP4.gguf \
96
+ -md gemma-4-31B-it-assistant.gguf \
97
+ --spec-type draft-mtp \
98
+ --spec-draft-n-max 5 \
99
+ --flash-attn on \
100
+ -ngl 99
101
+ ```
102
+
103
+ ### Multi-GPU example
104
+
105
+ ```bash
106
+ llama-server \
107
+ -m gemma-4-31B-it-NVFP4.gguf \
108
+ -md gemma-4-31B-it-assistant.gguf \
109
+ --spec-type draft-mtp \
110
+ --spec-draft-n-max 5 \
111
+ --split-mode layer \
112
+ --tensor-split 1,1 \
113
+ --flash-attn on \
114
+ -ngl 99
115
+ ```
116
+
117
+ The target and Assistant models must use compatible tokenizer, vocabulary, and Gemma 4 architecture assumptions.
118
+
119
+ An even tensor split is only a starting point. The best split depends on GPU speed, available VRAM, PCIe topology, context length, and placement of the target model, Assistant model, and KV caches.
120
+
121
+ ## Suggested Settings
122
+
123
+ Based on the mixed-task benchmark below:
124
+
125
+ * **`n_max = 5`** gave the highest aggregate throughput of the tested settings.
126
+ * **`n_max = 2`** gave the highest aggregate acceptance rate and remained the best choice for creative writing and other high-entropy output.
127
+ * **`n_max = 3`** was a strong balanced setting with substantially less draft work than `n_max = 5`.
128
+ * **`n_max = 4`** improved most structured tasks and remained a reasonable general-purpose compromise.
129
+ * **`n_max = 5`** was best for code, JSON, repeated patterns, mathematical reasoning, and long reasoning.
130
+ * Creative writing degraded steadily as draft depth increased.
131
+
132
+ Recommended maximum-throughput setting:
133
+
134
+ ```text
135
+ --spec-draft-n-max 5
136
+ ```
137
+
138
+ Recommended balanced setting:
139
+
140
+ ```text
141
+ --spec-draft-n-max 3
142
+ ```
143
+
144
+ For role-play, creative writing, open-ended conversation, or other high-entropy generation:
145
+
146
+ ```text
147
+ --spec-draft-n-max 2
148
+ ```
149
+
150
+ ## Conversion
151
+
152
+ Converted from the original Hugging Face compressed-tensors checkpoint using a recent `convert_hf_to_gguf.py` from llama.cpp:
153
+
154
+ ```bash
155
+ python convert_hf_to_gguf.py \
156
+ /path/to/gemma-4-31B-it-NVFP4 \
157
+ --outfile gemma-4-31B-it-NVFP4.gguf \
158
+ --outtype auto \
159
+ --verbose
160
+ ```
161
+
162
+ Do not pass a conventional GGUF quantization type such as `q4_k_m` when the goal is to preserve the original NVFP4 tensors.
163
+
164
+ The conversion repackages the compressed-tensors NVFP4 checkpoint into a GGUF-compatible representation rather than requantizing it into a K-quant.
165
+
166
+ The compatible Assistant model must be converted separately. No target-model weights were retrained by this conversion.
167
+
168
+ ## File Size
169
+
170
+ The converted GGUF may differ in size from the original Hugging Face checkpoint.
171
+
172
+ The conversion does not copy the original safetensors byte-for-byte. NVFP4 tensors are repacked into GGML-compatible layouts, and GGUF stores the scale metadata required by llama.cpp. The vision tower, embeddings, output head, and other tensors that remain at higher precision also contribute to the file size.
173
+
174
+ A larger GGUF does not mean the model was converted to FP16 or to a conventional Q4 format.
175
+
176
+ Windows reports file sizes using binary units even though File Explorer labels them as `GB`. The same file can therefore appear smaller in Windows than on Hugging Face.
177
+
178
+ File size is not the same as runtime VRAM usage. Additional memory is needed for:
179
+
180
+ * the Assistant draft model
181
+ * target and draft KV caches
182
+ * CUDA context
183
+ * compute buffers
184
+ * graph workspace
185
+ * multimodal projector, when used
186
+
187
+ ## Verifying the GGUF
188
+
189
+ The converted target can be checked with `llama-gguf`:
190
+
191
+ ```powershell
192
+ .\llama-gguf.exe E:\HF_MODELS\gemma-4-31B-it-NVFP4.gguf r
193
+ ```
194
+
195
+ A successful conversion should show NVFP4 transformer tensors and their associated scale tensors. The vision tower, embeddings, and output head may remain in higher-precision formats.
196
+
197
+ Example:
198
+
199
+ ```text
200
+ tensor: name = blk.0.ffn_down.weight, type = nvfp4
201
+ tensor: name = blk.0.ffn_down.scale, type = f32
202
+ tensor: name = blk.0.ffn_down.input_scale, type = f32
203
+ ```
204
+
205
+ This confirms that the checkpoint was not converted into a conventional Q4 type and is not an empty metadata-only GGUF.
206
+
207
+ ## Benchmark
208
+
209
+ Benchmarked using **mtp-bench** with a compatible Gemma 4 31B Assistant model and:
210
+
211
+ ```text
212
+ --spec-type draft-mtp
213
+ ```
214
+
215
+ ### Aggregate Results — Assistant/MTP
216
+
217
+ | `n_max` | Draft acceptance | Predicted tokens | Draft tokens | Accepted tokens | Wall time | Effective batch throughput |
218
+ | ------: | ---------------: | ---------------: | -----------: | --------------: | --------: | -------------------------: |
219
+ | 2 | **78.2%** | 1,979 | 1,534 | 1,199 | 37.27 s | 53.10 tok/s |
220
+ | 3 | 71.6% | 1,979 | 1,874 | 1,341 | 32.96 s | 60.04 tok/s |
221
+ | 4 | 65.6% | 2,016 | 2,206 | 1,447 | 31.35 s | 64.31 tok/s |
222
+ | 5 | 60.2% | 2,016 | 2,495 | 1,501 | **30.18 s** | **66.80 tok/s** |
223
+
224
+ Effective batch throughput is calculated as total predicted tokens divided by total wall time.
225
+
226
+ Per-request `tok/s` can be higher because aggregate wall time may include prompt processing, request transitions, and benchmark overhead.
227
+
228
+ The predicted-token totals differ slightly because some generated responses terminated at different lengths. The `n_max = 4` and `n_max = 5` runs both generated 2,016 tokens and can be compared directly.
229
+
230
+ These tests do not include a non-speculative baseline and therefore should not be interpreted as direct speedup ratios over standard decoding.
231
+
232
+ ## Detailed Assistant Results
233
+
234
+ ### `n_max = 2`
235
+
236
+ ```text
237
+ code_python pred= 192 draft= 138 acc= 121 rate=0.877 tok/s=61.6
238
+ code_cpp pred= 192 draft= 147 acc= 117 rate=0.796 tok/s=58.4
239
+ explain_concept pred= 192 draft= 170 acc= 105 rate=0.618 tok/s=50.2
240
+ summarize pred= 48 draft= 38 acc= 30 rate=0.789 tok/s=56.5
241
+ qa_factual pred= 172 draft= 146 acc= 99 rate=0.678 tok/s=53.2
242
+ translation pred= 16 draft= 12 acc= 10 rate=0.833 tok/s=57.5
243
+ creative_short pred= 34 draft= 38 acc= 14 rate=0.368 tok/s=39.7
244
+ stepwise_math pred= 192 draft= 138 acc= 122 rate=0.884 tok/s=62.8
245
+ json_output pred= 192 draft= 129 acc= 126 rate=0.977 tok/s=65.7
246
+ long_reasoning pred= 192 draft= 147 acc= 117 rate=0.796 tok/s=58.3
247
+ repeat_pattern pred= 192 draft= 127 acc= 127 rate=1.000 tok/s=67.7
248
+ code_completion pred= 173 draft= 126 acc= 110 rate=0.873 tok/s=61.7
249
+ long_code_review pred= 192 draft= 178 acc= 101 rate=0.567 tok/s=46.4
250
+
251
+ Aggregate:
252
+ requests: 13
253
+ predicted tokens: 1979
254
+ draft tokens: 1534
255
+ accepted tokens: 1199
256
+ acceptance rate: 0.7816
257
+ total wall time: 37.27 s
258
+ ```
259
+
260
+ ### `n_max = 3`
261
+
262
+ ```text
263
+ code_python pred= 192 draft= 168 acc= 135 rate=0.804 tok/s=71.7
264
+ code_cpp pred= 192 draft= 178 acc= 131 rate=0.736 tok/s=67.3
265
+ explain_concept pred= 192 draft= 225 acc= 116 rate=0.516 tok/s=53.7
266
+ summarize pred= 48 draft= 48 acc= 33 rate=0.688 tok/s=62.6
267
+ qa_factual pred= 172 draft= 171 acc= 114 rate=0.667 tok/s=63.3
268
+ translation pred= 16 draft= 15 acc= 11 rate=0.733 tok/s=64.1
269
+ creative_short pred= 34 draft= 54 acc= 16 rate=0.296 tok/s=39.7
270
+ stepwise_math pred= 192 draft= 168 acc= 134 rate=0.798 tok/s=70.5
271
+ json_output pred= 192 draft= 144 acc= 142 rate=0.986 tok/s=80.7
272
+ long_reasoning pred= 192 draft= 177 acc= 131 rate=0.740 tok/s=65.8
273
+ repeat_pattern pred= 192 draft= 143 acc= 143 rate=1.000 tok/s=83.8
274
+ code_completion pred= 173 draft= 147 acc= 124 rate=0.844 tok/s=73.5
275
+ long_code_review pred= 192 draft= 236 acc= 111 rate=0.470 tok/s=48.6
276
+
277
+ Aggregate:
278
+ requests: 13
279
+ predicted tokens: 1979
280
+ draft tokens: 1874
281
+ accepted tokens: 1341
282
+ acceptance rate: 0.7156
283
+ total wall time: 32.96 s
284
+ ```
285
+
286
+ ### `n_max = 4`
287
+
288
+ ```text
289
+ code_python pred= 192 draft= 199 acc= 141 rate=0.709 tok/s=77.7
290
+ code_cpp pred= 192 draft= 201 acc= 140 rate=0.697 tok/s=77.3
291
+ explain_concept pred= 192 draft= 273 acc= 122 rate=0.447 tok/s=57.5
292
+ summarize pred= 48 draft= 56 acc= 33 rate=0.589 tok/s=70.0
293
+ qa_factual pred= 192 draft= 229 acc= 133 rate=0.581 tok/s=66.8
294
+ translation pred= 16 draft= 16 acc= 11 rate=0.688 tok/s=71.3
295
+ creative_short pred= 32 draft= 64 acc= 16 rate=0.250 tok/s=39.0
296
+ stepwise_math pred= 192 draft= 189 acc= 143 rate=0.757 tok/s=77.1
297
+ json_output pred= 192 draft= 157 acc= 151 rate=0.962 tok/s=91.2
298
+ long_reasoning pred= 192 draft= 213 acc= 137 rate=0.643 tok/s=67.9
299
+ repeat_pattern pred= 192 draft= 155 acc= 152 rate=0.981 tok/s=94.2
300
+ code_completion pred= 192 draft= 168 acc= 149 rate=0.887 tok/s=86.5
301
+ long_code_review pred= 192 draft= 286 acc= 119 rate=0.416 tok/s=49.0
302
+
303
+ Aggregate:
304
+ requests: 13
305
+ predicted tokens: 2016
306
+ draft tokens: 2206
307
+ accepted tokens: 1447
308
+ acceptance rate: 0.6559
309
+ total wall time: 31.35 s
310
+ ```
311
+
312
+ ### `n_max = 5`
313
+
314
+ ```text
315
+ code_python pred= 192 draft= 219 acc= 147 rate=0.671 tok/s=83.2
316
+ code_cpp pred= 192 draft= 235 acc= 144 rate=0.613 tok/s=78.4
317
+ explain_concept pred= 192 draft= 331 acc= 124 rate=0.375 tok/s=53.2
318
+ summarize pred= 48 draft= 60 acc= 37 rate=0.617 tok/s=76.0
319
+ qa_factual pred= 192 draft= 270 acc= 136 rate=0.504 tok/s=63.2
320
+ translation pred= 16 draft= 20 acc= 12 rate=0.600 tok/s=66.7
321
+ creative_short pred= 32 draft= 80 acc= 16 rate=0.200 tok/s=35.8
322
+ stepwise_math pred= 192 draft= 200 acc= 150 rate=0.750 tok/s=83.1
323
+ json_output pred= 192 draft= 169 acc= 157 rate=0.929 tok/s=100.6
324
+ long_reasoning pred= 192 draft= 238 acc= 142 rate=0.597 tok/s=74.8
325
+ repeat_pattern pred= 192 draft= 165 acc= 158 rate=0.958 tok/s=104.6
326
+ code_completion pred= 192 draft= 183 acc= 154 rate=0.842 tok/s=97.9
327
+ long_code_review pred= 192 draft= 325 acc= 124 rate=0.382 tok/s=52.8
328
+
329
+ Aggregate:
330
+ requests: 13
331
+ predicted tokens: 2016
332
+ draft tokens: 2495
333
+ accepted tokens: 1501
334
+ acceptance rate: 0.6016
335
+ total wall time: 30.18 s
336
+ ```
337
+
338
+ ## Observations
339
+
340
+ * `n_max = 5` delivered the highest effective aggregate throughput at approximately **66.80 tok/s**.
341
+ * Relative to `n_max = 2`, `n_max = 5` improved aggregate throughput by approximately **25.8%**.
342
+ * Relative to the previously tested lower-quality Assistant pairing at `n_max = 2`, the final Assistant pairing and `n_max = 5` improved throughput from approximately **48.60 tok/s** to **66.80 tok/s**.
343
+ * `n_max = 5` reached **104.6 tok/s** on repeated-pattern generation.
344
+ * JSON output reached **100.6 tok/s**.
345
+ * Code completion reached **97.9 tok/s**.
346
+ * Code and stepwise mathematics exceeded **78 tok/s**.
347
+ * Creative writing did not benefit from deeper drafting and declined from **39.7 tok/s** at `n_max = 2` to **35.8 tok/s** at `n_max = 5`.
348
+ * Open-ended explanation, factual QA, and translation showed diminishing returns or regressions at `n_max = 5`.
349
+ * Increasing from `n_max = 4` to `n_max = 5` improved aggregate throughput by approximately **3.9%**, while aggregate acceptance fell from **65.6%** to **60.2%**.
350
+
351
+ The benchmark shows a clear task-dependent trade-off: structured and predictable output benefits from deeper drafting, while high-entropy natural-language generation generally favors a shorter draft.
352
+
353
+ ## Upstream Accuracy
354
+
355
+ The upstream Red Hat AI model card reports strong recovery relative to the unquantized `google/gemma-4-31B-it`, including approximately:
356
+
357
+ * 99.0–99.6% recovery on IFEval
358
+ * 99.9% on GSM8K Platinum
359
+ * 98.9% on MMLU-Pro
360
+ * 95.2% on MATH-500
361
+ * 98.7% on AIME 2025
362
+ * 98.9% on GPQA Diamond
363
+ * 98.9% on LiveCodeBench v6
364
+
365
+ These are upstream vLLM evaluation results and are separate from the local llama.cpp throughput benchmark above.
366
+
367
+ ## Notes
368
+
369
+ * This GGUF preserves the NVFP4 transformer tensors from Red Hat AI's compressed-tensors checkpoint; it is not equivalent to `Q4_K_M`, `Q4_K_S`, or an Unsloth dynamic quant.
370
+ * Mixed tensor types are expected because the vision tower, embeddings, and output head are not quantized to NVFP4.
371
+ * Runtime memory requirements depend on the full target model, the separate Assistant model, both KV caches, multimodal components, and compute buffers.
372
+ * The upstream checkpoint targets vLLM. llama.cpp support is a separate community implementation and may behave differently.
373
+ * Assistant/MTP speculative decoding accelerates token generation but does not provide the same benefit to prompt prefill.
374
+ * Very short generations, especially the translation test in these runs, are sensitive to run-to-run variance.
375
+ * Results are specific to the tested hardware, model files, llama.cpp build, prompts, sampling configuration, and context settings.
376
+
377
+ ## Credits
378
+
379
+ * **Google DeepMind** — Gemma 4 and `google/gemma-4-31B-it`
380
+ * **Red Hat AI** — NVFP4 quantization, LLM Compressor, and `RedHatAI/gemma-4-31B-it-NVFP4`
381
+ * **ggml-org** — llama.cpp, GGUF, NVFP4 inference support, and Gemma 4 Assistant/MTP support
382
+
383
+ ## License
384
+
385
+ The source checkpoint is distributed under the **Apache License 2.0**.
386
+
387
+ Users should review the upstream `RedHatAI/gemma-4-31B-it-NVFP4` and `google/gemma-4-31B-it` model cards and applicable terms before redistribution or commercial use.