bartowski/kai-os_Carnice-V3-GGUF
Llamacpp imatrix Quantizations of Carnice-V3 by kai-os
Using <a href="https://github.com/ggml-org/llama.cpp/">llama.cpp</a> release <a href="https://github.com/ggml-org/llama.cpp/releases/tag/b10603">b10603</a> for quantization.
Original model: https://huggingface.co/kai-os/Carnice-V3
Model details:
- Parameter count: 28B
- Input support: text, image (with mmproj file) - details
- Speculative decoding: yes (MTP) - details
- imatrix: yes - details
Prompt format
<|im_start|>system
Reasoning effort is set to xhigh. Please think carefully through the task, validate key assumptions, consider plausible alternatives, and prioritize correctness, consistency, and clarity in the final answer.
{system_prompt}<|im_end|>
<|im_start|>user
{prompt}<|im_end|>
<|im_start|>assistant
<think>Don't know which to choose? Grab Q4_K_M (17.77GB) - usually a good mix of size and performance. Download instructions available here
Available files:
Download a specific file:
hf download bartowski/kai-os_Carnice-V3-GGUF --include "kai-os_Carnice-V3-Q4_K_M.gguf" --local-dir ./Downloading using the Hugging Face CLI
<details> <summary>Click to view download instructions</summary>
First, make sure you have the Hugging Face CLI installed:
pip install -U "huggingface_hub[cli]"Download a specific file:
hf download bartowski/kai-os_Carnice-V3-GGUF --include "kai-os_Carnice-V3-Q4_K_M.gguf" --local-dir ./The files marked true in the Split column above are stored as multiple parts in a folder. To download all the parts to a local folder, run:
hf download bartowski/kai-os_Carnice-V3-GGUF --include "kai-os_Carnice-V3-bf16/*" --local-dir ./You can either specify a new local-dir (kai-os_Carnice-V3-bf16) or download them all in place (./)
</details>
How to run
These quants run with llama.cpp - installable in one line via llama.app:
curl -LsSf https://llama.app/install.sh | sh
llama-server -hf bartowski/kai-os_Carnice-V3-GGUF:Q4_K_Mllama-server includes a built-in chat web UI, served at http://localhost:8080 by default.
These quants were made with llama.cpp release b10603 - if this model's architecture is newly supported, you'll need that release or newer to run them.
They also work in: LM Studio · koboldcpp · ramalama · Jan AI · Text Generation Web UI · LoLLMs · Atomic Chat
Multimodal
This model supports image input. Alongside the quants, this repo includes the multimodal projector files mmproj-kai-os_Carnice-V3-f16.gguf and mmproj-kai-os_Carnice-V3-bf16.gguf, which pair with any quant above.
llama.cpp downloads the mmproj automatically when using -hf as shown above; if you're loading files manually, pass it with --mmproj.
MTP
This model has MTP (Multi-Token Prediction) layers, and they are included in these quants
MTP layers act as a built-in draft model, letting llama.cpp run speculative decoding for faster generation. To use them, add the following flag to your llama.cpp command:
--spec-type draft-mtpNote: the MTP layers are stored at Q40 in the imatrix quants (except for the Q80 quant), since imatrix calibration does not exercise them. Q4_0 is chosen for its speed which massively benefits MTP performance.
imatrix
All quants made using imatrix option, with a calibration corpus rendered through this model's own chat template. The corpus pairs plain prose with tool-calling and reasoning conversations (corpus source data), encoded exactly as this model sees them at inference and processed with --parse-special, so chat-format special tokens contribute to the importance matrix. The corpus rendered for this model is included in this repo: kai-os_Carnice-V3-calibration-v6.txt. The imatrix is available here: kai-os_Carnice-V3-imatrix.gguf.
<details> <summary>Calibration render details</summary>
{
"generator": "auto_quant_v2 calibration renderer",
"recipe": "calibration-v6",
"model": "Carnice-V3",
"encoder": "chat_template",
"chunk_size": 512,
"prose_chunks": 214,
"tool_chunks": 369,
"total_chunks": 583,
"tool_chunk_fraction": 0.633,
"n_conversations": 137,
"extension_convs_used": 0,
"conversation_token_lengths": [
604,
1667,
1297,
1559,
1185,
1404,
3220,
866,
1267,
1462,
1107,
2136,
921,
1293,
2829,
1313,
1160,
1026,
777,
758,
1402,
1098,
1447,
1242,
1912,
1538,
1694,
948,
1455,
1686,
1609,
1260,
1308,
1077,
1060,
1752,
1691,
1215,
517,
1950,
1451,
1166,
1438,
2042,
2130,
1355,
1649,
947,
2996,
1142,
2908,
827,
1064,
1010,
947,
738,
2530,
955,
1188,
1127,
1271,
1211,
966,
1259,
1223,
1628,
953,
1592,
2166,
881,
365,
1162,
3375,
2876,
749,
982,
1072,
1113,
1338,
1122,
1191,
835,
1250,
1111,
1331,
1586,
1443,
2106,
913,
698,
2806,
682,
1443,
1715,
1987,
1243,
683,
1396,
1168,
1769,
1884,
1755,
857,
1055,
1077,
2896,
780,
774,
803,
1452,
1092,
1617,
808,
392,
361,
2666,
1058,
1179,
1870,
2079,
2735,
2717,
856,
1020,
880,
999,
1279,
1039,
882,
1397,
870,
750,
1783,
1067,
957,
1356,
1519
],
"warnings": []
}</details>
Embed/output weights
Some of these quants (Q3KXL, Q4KL etc) are the standard quantization method with the embeddings and output weights quantized to Q8_0 instead of what they would normally default to.
ARM/AVX information
llama.cpp automatically "repacks" weights into an interleaved layout at load time for faster inference on ARM and AVX machines - details in this PR. This once required downloading special Q4044/48/88 files; those are long gone. Online repacking now covers Q40, IQ4_NL, and most K-quants, so no special quant choice is needed for CPU inference.
Which file should I choose?
<details> <summary>Click here for details</summary>
An older (early 2024) but still useful write-up with charts comparing quant performances is provided by Artefact2 here
The first thing to figure out is how big a model you can run. To do this, you'll need to figure out how much RAM and/or VRAM you have.
If you want your model running as FAST as possible, you'll want to fit the whole thing on your GPU's VRAM. Aim for a quant with a file size 1-2GB smaller than your GPU's total VRAM.
If you want the absolute maximum quality, add both your system RAM and your GPU's VRAM together, then similarly grab a quant with a file size 1-2GB Smaller than that total.
Hugging Face can also do this math for you: add your hardware in your Local Apps settings and the model page will show which files fit.
Next, you'll need to decide if you want to use an 'I-quant' or a 'K-quant'.
If you don't want to think too much, grab one of the K-quants. These are in format 'QXKX', like Q5KM.
If you want to get more into the weeds, you can check out this extremely useful feature chart:
But basically, if you're aiming for below Q4, and you're running cuBLAS (Nvidia) or rocBLAS (AMD), you should look towards the I-quants. These are in format IQXX, like IQ3M. These are newer and offer better performance for their size.
These I-quants can also be used on CPU, but will be slower than their K-quant equivalent, so speed vs performance is a tradeoff you'll have to decide.
</details>
Credits
Thank you kalomaze and Dampf for assistance in creating the imatrix calibration dataset.
Thank you ZeroWw for the inspiration to experiment with embed/output.
Want to support my work? Visit my ko-fi page here: https://ko-fi.com/bartowski
