This is a decision model: it reads a state (text or JSON) together with a schema of typed questions, and returns a probability for every allowed option of every question in a single forward pass. It does not generate text. There is no chat, no completion endpoint and no prompt format to follow.
llama.cpp serves it through the /v1/systemone endpoint of llama-server (the TypeSafe System One API); the request and response shapes are documented in the llama-server README. For example:
curl http://127.0.0.1:8080/v1/systemone \
-H "Content-Type: application/json" \
-d '{
"state": "Customer message: I was charged twice for my order last week and nobody has replied.",
"questions": {
"route": {
"type": "choice",
"instructions": "Which team should handle this?",
"criteria": {"billing": null, "shipping": null, "technical": null}
},
"angry": {
"type": "noul",
"instructions": "Is the customer angry?"
},
"urgency": {
"type": "score",
"instructions": "How urgent is this?",
"criteria": ["can wait", "this week", "today", "right now"]
}
}
}'
Decision head. The decision head (the tensors that turn the backbone's final hidden states into answers) is stored at Q8_0 in every quantized file here. It is a small part of the model, it is the part that produces the answers, and nothing below can measure what quantizing it would cost.
No imatrix. An importance matrix cannot be computed for this model: llama.cpp's imatrix tool calibrates on the token probabilities a model produces as it generates text, and a decision model produces none, so there is nothing to calibrate against. Every quantized file here is therefore a static quant, made without an imatrix. The files below 4 bits per weight (Q3_K_L, Q3_K_M, IQ3_M, Q3_K_S and Q2_K) will lose noticeably more quality than an imatrix quant of the same size usually does — prefer Q4_K_M or larger. The formats that cannot be made at all without an imatrix (IQ1, IQ2, IQ3_XS, IQ3_XXS and Q2_K_S) are not offered. Perplexity and KL-divergence cannot be measured for the same reason, so the descriptions in the file table are the usual guidance for each format, not measurements of this model.
Don't know which to choose? Grab Q4_K_M (6.04GB) - usually a good mix of size and performance. Download instructions available here
Medium-low quality, new method with decent performance comparable to Q3_K_M. Made without an imatrix: expect a larger quality loss than usual at this size.
Some of these quants (Q3_K_XL, Q4_K_L etc) are the standard quantization method with the embeddings and output weights quantized to Q8_0 instead of what they would normally default to.
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 Q4_0_4_4/4_8/8_8 files; those are long gone. Online repacking now covers Q4_0, IQ4_NL, and most K-quants, so no special quant choice is needed for CPU inference.
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 'QX_K_X', like Q5_K_M.
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 IQX_X, like IQ3_M. 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.