Harsha001 commited on
Commit
39ae095
·
0 Parent(s):

Flint ROCmFPX GGUF

Browse files
.gitattributes ADDED
@@ -0,0 +1,41 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
36
+ flint-Q8_0_ROCMFPX.gguf filter=lfs diff=lfs merge=lfs -text
37
+ flint-Q6_0_ROCMFPX.gguf filter=lfs diff=lfs merge=lfs -text
38
+ flint-Q4_0_ROCMFP4_STRIX.gguf filter=lfs diff=lfs merge=lfs -text
39
+ flint-Q4_0_ROCMFP4_FAST.gguf filter=lfs diff=lfs merge=lfs -text
40
+ flint-Q4_0_ROCMFP4_Q8ATTN.gguf filter=lfs diff=lfs merge=lfs -text
41
+ flint-Q4_0_ROCMFP4_FAST_Q8ATTN.gguf filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,105 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ base_model: RecursiveSI/flint
4
+ base_model_relation: quantized
5
+ pipeline_tag: text-generation
6
+ library_name: gguf
7
+ tags: [gguf, rocmfpx, rocmfp4, amd, rocm, strix-halo, quantized, moe, coding, agentic, flint]
8
+ ---
9
+
10
+ # Flint — ROCmFPX GGUF
11
+
12
+ > **Update 2026-10-24: much better 4-bit files. Please download again.** If you downloaded
13
+ > `flint-Q4_0_ROCMFP4_STRIX.gguf` or `flint-Q4_0_ROCMFP4_FAST.gguf`, replace it with one of the new 4-bit files below.
14
+ > They are about three times closer to the original model (KLD 0.18 instead of 0.54) and now beat a stock `Q4_K_M`
15
+ > while being smaller. The 8-bit and 6-bit files did not change.
16
+
17
+ [RecursiveSI/flint](https://huggingface.co/RecursiveSI/flint), Recursive's 39.8B mixture-of-experts model for coding
18
+ agents (about 2.5B active per token), quantized to the [ROCmFPX](https://github.com/charlie12345/ROCmFPX) formats, a
19
+ llama.cpp fork with low-bit weight types for AMD GPUs (Vulkan and HIP/ROCm).
20
+
21
+ **Start with `Q4_0_ROCMFP4_Q8ATTN`** (23.3 GB). It is closer to BF16 than a stock `Q4_K_M` of the same model while
22
+ being smaller. Use `Q6_0_ROCMFPX` or `Q8_0_ROCMFPX` if you have the memory.
23
+
24
+ > These files need [HarshaVardhan3002/ROCmFPX](https://github.com/HarshaVardhan3002/ROCmFPX) at commit `b130d4995`
25
+ > or newer. Stock llama.cpp, LM Studio, Ollama and other ROCmFPX builds do not load them. **These files have not been
26
+ > tested on AMD hardware yet.**
27
+ >
28
+ > Not an official release of Recursive. All credit for the model goes to its authors.
29
+
30
+ ## Files and measured quality
31
+
32
+ Measured against the BF16 model (perplexity 19.1433) on WikiText-2 test, 40 chunks of 512 tokens.
33
+ **KLD** is the mean KL divergence of the next-token distribution from BF16 (lower is better). **Same top** is how
34
+ often the quant picks the same next token as BF16.
35
+
36
+ | File | Size | PPL | KLD | Same top | |
37
+ |---|---:|---:|---:|---:|---|
38
+ | `flint-Q8_0_ROCMFPX.gguf` | 41.1 GB | 19.1675 | 0.0747 | 91.02% | 8-bit, closest to BF16 |
39
+ | `flint-Q6_0_ROCMFPX.gguf` | 32.9 GB | 19.7449 | 0.0917 | 89.63% | 6-bit, almost as close as 8-bit |
40
+ | `flint-Q4_0_ROCMFP4_Q8ATTN.gguf` | 23.3 GB | 18.891 | 0.1777 | 84.96% | **Recommended 4-bit** (see below) |
41
+ | `flint-Q4_0_ROCMFP4_FAST_Q8ATTN.gguf` | 22.1 GB | 18.722 | 0.2071 | 84.23% | speed-first 4-bit: experts with one scale per block |
42
+
43
+ For comparison, a stock llama.cpp `Q4_K_M` of the same model (23 GB), scored the same way, measured PPL 19.92,
44
+ KLD 0.2449, same top 82.94%. Both 4-bit files here are closer to BF16 and smaller.
45
+
46
+ The 4-bit rows were measured in a second run with a fresh BF16 reference (perplexity 19.2141; the same method gives
47
+ KLD 0.0284 for the BF16 model itself, which is the floor of this measurement). The 8-bit and 6-bit rows come from the
48
+ first run.
49
+
50
+ ### The 4-bit recipe
51
+
52
+ Flint has 256 small experts per layer, and they hold about 95% of the weights. The rest (attention, the shared
53
+ expert, the two dense layers at the start, and the output layer) is only about 2B weights, but measurements showed
54
+ that putting it at 4-bit caused most of the loss: with the experts kept at BF16 and everything else at 4-bit, KLD was
55
+ already 0.473. So both 4-bit files keep all of that at `Q8_0_ROCMFPX` (token embedding `Q6_K`) and only the routed
56
+ experts are 4-bit: dual-scale `Q4_0_ROCMFP4` in the recommended file, single-scale `Q4_0_ROCMFP4_FAST` in the speed
57
+ file. This costs about 1 GB over an all-4-bit file.
58
+
59
+ These replace the first 4-bit files (2026-10-24): `Q4_0_ROCMFP4_STRIX` (21.3 GB, KLD 0.5360) and
60
+ `Q4_0_ROCMFP4_FAST` (21.2 GB, KLD 0.5428), which also kept attention and the output layer at 4-bit.
61
+
62
+ Not published: `Q3_0_ROCMFPX` (22.1 GB, KLD 0.5523) is far behind the 4-bit files;
63
+ `Q2_0_ROCMFPX` does not work on this model.
64
+
65
+ ## Why these files need a newer build
66
+
67
+ Flint's weights are about 20 times smaller than those of most models. ROCmFPX stores one small scale per block of 32
68
+ weights, and that scale has a fixed smallest step, so on Flint many blocks lost most of their precision: a first 8-bit
69
+ file had KLD 3.9 (same top 33%) ([ROCmFPX#118](https://github.com/charlie12345/ROCmFPX/issues/118)).
70
+
71
+ These files were made with an opt-in fix in `llama-quantize` (`LLAMA_ROCMFPX_TENSOR_SCALE=1`): each weight tensor (each
72
+ expert for mixture-of-experts tensors) is multiplied by a power of two before quantizing, and the inverse factor is
73
+ stored as a small extra `.scale` tensor that llama.cpp already applies to the matmul output. The factor is a power of
74
+ two, so the scaling itself loses nothing. The files therefore contain extra tensors that older builds reject.
75
+
76
+ ## How these were made
77
+
78
+ 1. `convert_hf_to_gguf.py --outtype bf16`.
79
+ 2. Importance matrix from the BF16 model on the GPU over a general calibration text (`calibration_datav3`), 512-token
80
+ chunks.
81
+ 3. `LLAMA_ROCMFPX_TENSOR_SCALE=1 llama-quantize --imatrix`, one run per type, from
82
+ [HarshaVardhan3002/ROCmFPX](https://github.com/HarshaVardhan3002/ROCmFPX) `b130d4995`. The 4-bit files use
83
+ `Q4_0_ROCMFP4_STRIX` with `--tensor-type "attn_(q|k|v|output)=q8_0_rocmfpx" --tensor-type "_shexp=q8_0_rocmfpx"
84
+ --tensor-type "blk\.[01]\.ffn_(gate|up|down)\.=q8_0_rocmfpx" --output-tensor-type q8_0_rocmfpx`, plus
85
+ `--tensor-type "_exps=q4_0_rocmfp4"` for the recommended file.
86
+ 4. Quality: the BF16 reference ran on an NVIDIA GPU with stock BF16 kernels. Each quant was expanded back to F16
87
+ (`llama-quantize --allow-requantize ... F16`), which keeps its stored weights and scales, and scored on the same GPU
88
+ with stock F16 kernels. The fork's own CUDA kernels for these types are not correct on NVIDIA, so they were not
89
+ used.
90
+ AMD GPU kernels compute the same math in a different order, so results on an AMD GPU can differ slightly.
91
+
92
+ ## Run
93
+
94
+ ```bash
95
+ git clone https://github.com/HarshaVardhan3002/ROCmFPX && cd ROCmFPX
96
+ cmake -B build -DGGML_VULKAN=ON # or -DGGML_HIP=ON -DAMDGPU_TARGETS=gfx1151 (gfx1100 for RX 7900)
97
+ cmake --build build --target llama-server -j
98
+ build/bin/llama-server -m flint-Q4_0_ROCMFP4_Q8ATTN.gguf -ngl 999 -fa on --jinja --temp 1.0 --top-p 0.95 --top-k 20
99
+ ```
100
+
101
+ Sampling settings are the ones Recursive used for its evaluations.
102
+
103
+ ## License
104
+
105
+ Apache-2.0, same as the base model.
flint-Q4_0_ROCMFP4_FAST_Q8ATTN.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2a34f637851fd86e0ddbd4bc91f624553c7daa2b735ac0cbfad044fe63af145b
3
+ size 22118466656
flint-Q4_0_ROCMFP4_Q8ATTN.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c5cd952ee8fcf53d1c6e77548571e4d26222402d5d3fdfe459f3e75860f0c7bd
3
+ size 23301260384
flint-Q6_0_ROCMFPX.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7aae5f2e50510a7da77dd3627a037d01f0e858cadd6f6dfc0e84b4e54a20eb4a
3
+ size 32901758048
flint-Q8_0_ROCMFPX.gguf ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7221b8960dd6af2118c7c3104ab47deefde0c59649bcfe3bb6d1ed44efa90584
3
+ size 41108028512