Ornith-1.5-122B — ROCmFPX Q4 GGUF
ornith-ai/Ornith-1.5-122B quantized to two 4-bit ROCmFPX types. ROCmFPX is a llama.cpp fork with AMD-oriented low-bit weight types for Vulkan and HIP/ROCm.
Q4_0_ROCMFP4, balanced: the closest 4-bit file to the original. Start here.Q4_0_ROCMFP4_STRIX: the recipe ROCmFPX tuned for speed on AMD Strix Halo (Ryzen AI Max,gfx1151); smaller, a bit less exact.
Download one variant, not the whole repo. The repo holds both versions (146 GB together); you need only one:
balanced is 80 GB, Strix is 65 GB, plus 0.9 GB for image input. Each is split into parts below 50 GB; point
llama.cpp at the first part and it loads the rest. Image input works with the included F16 vision projector
(--mmproj).
# balanced (80 GB)
hf download Harsha001/Ornith-1.5-122B-ROCmFPX --include "*Q4_0_BALANCED-*" "mmproj*" --local-dir Ornith-1.5-122B
# or Strix (65 GB)
hf download Harsha001/Ornith-1.5-122B-ROCmFPX --include "*Q4_0_STRIX-*" "mmproj*" --local-dir Ornith-1.5-122B
Memory on a 128 GB Strix Halo: the GPU can only use the share of memory given to it. Give it 96 GB (in the BIOS on Windows, or through the GTT/TTM limit on Linux): then either variant fits with room for context. With a 64/64 split neither fits with usable context (Strix would leave about 3 GB).
These files only load in the ROCmFPX fork. Stock llama.cpp, LM Studio and Ollama do not know these types.
Files
| File | Size | Variant |
|---|---|---|
Ornith-1.5-122B-ROCmFP4-Q4_0_BALANCED-00001-of-00002.gguf |
44.7 GB | balanced |
Ornith-1.5-122B-ROCmFP4-Q4_0_BALANCED-00002-of-00002.gguf |
35.3 GB | balanced |
Ornith-1.5-122B-ROCmFP4-Q4_0_STRIX-00001-of-00002.gguf |
44.8 GB | Strix |
Ornith-1.5-122B-ROCmFP4-Q4_0_STRIX-00002-of-00002.gguf |
20.5 GB | Strix |
mmproj-Ornith-1.5-122B-f16.gguf |
0.9 GB | image input, for both |
The files are named ROCmFP4-Q4_0_BALANCED and ROCmFP4-Q4_0_STRIX so that Hugging Face's size panel counts the two
versions separately; it reads both full type names as the same label. The weights inside are Q4_0_ROCMFP4 and
the Q4_0_ROCMFP4_STRIX recipe, unchanged.
Measured quality
Measured against the BF16 model (228 GB) on WikiText-2 test, 12 chunks of 512 tokens, CPU backend. KLD is the mean KL divergence of the token distribution from BF16 (lower is better). Same top is how often the quant picks the same next token as BF16.
| Model | PPL | KLD | Same top |
|---|---|---|---|
| BF16 (original) | 4.8585 | 0 | 100% |
Q4_0_ROCMFP4 (balanced, 80 GB) |
5.2165 | 0.1769 | 84.41% |
Q4_0_ROCMFP4_STRIX (Strix, 65 GB) |
5.3642 | 0.2406 | 81.57% |
Q4_K_M (yardstick only, not published here, 70 GB) |
5.1149 | 0.1564 | 84.58% |
This model is more sensitive to 4-bit quantization than most: even the standard Q4_K_M, made from the same BF16
weights and importance matrix, moves clearly away from BF16. Twelve chunks is a small sample, so take the numbers
as a guide (± about 0.01 on KLD).
How this was made
convert_hf_to_gguf.py --no-mtp --outtype bf16from the ROCmFPX fork (fb08d7c). The multi-token-prediction head is left out, because the fork does not use it for decoding.- Importance matrix: bartowski's
Ornith-1.5-122B-imatrix.gguf(573 chunks × 512 tokens of his calibration set v6). Computing our own from the 228 GB BF16 model on a CPU with 121 GB of RAM would take about 12 hours. Thanks to bartowski. llama-quantize --imatrixfrom ROCmFPX (fb08d7c), from the BF16 weights, one run per type.- Perplexity and KL divergence on the CPU backend. The fork's CUDA kernels for these types are not correct on NVIDIA, so no GPU numbers are used.
- Each file was checked with a short chat prompt and an image prompt before upload.
Run
git clone https://github.com/charlie12345/ROCmFPX && cd ROCmFPX
cmake -B build -DGGML_VULKAN=ON # or -DGGML_HIP=ON -DAMDGPU_TARGETS=gfx1151
cmake --build build --target llama-server -j
build/bin/llama-server -m Ornith-1.5-122B-ROCmFP4-Q4_0_BALANCED-00001-of-00002.gguf --mmproj mmproj-Ornith-1.5-122B-f16.gguf -ngl 999 -fa on --jinja
License
MIT, same as the base model. All credit for the model goes to Ornith AI.