🚀 Llamacpp imatrix Quantizations of pixtral-12b by mistral-community
This project provides quantized versions of the pixtral-12b
model by the mistral-community
. It uses llama.cpp
for quantization, enabling users to run the model more efficiently on various hardware.
Metadata
Property |
Details |
Quantized By |
bartowski |
Pipeline Tag |
image-text-to-text |
Base Model |
mistral-community/pixtral-12b |
Base Model Relation |
quantized |
License |
apache-2.0 |
🚀 Quick Start
- Quantization: Using llama.cpp release b5173 for quantization.
- Original Model: You can find the original model here.
- Running the Model:
- Run the quantized models in LM Studio.
- Run them directly with llama.cpp, or any other llama.cpp based project.
✨ Features
Prompt Format
No prompt format found, check the original model page.
What's New
Fixed mmproj
files with fixes from the mainline: PR 13208.
📦 Installation
Download a File
You can download a specific file from the following table:
Filename |
Quant type |
File Size |
Split |
Description |
pixtral-12b-bf16.gguf |
bf16 |
24.50GB |
false |
Full BF16 weights. |
pixtral-12b-Q8_0.gguf |
Q8_0 |
13.02GB |
false |
Extremely high quality, generally unneeded but max available quant. |
pixtral-12b-Q6_K_L.gguf |
Q6_K_L |
10.38GB |
false |
Uses Q8_0 for embed and output weights. Very high quality, near perfect, recommended. |
pixtral-12b-Q6_K.gguf |
Q6_K |
10.06GB |
false |
Very high quality, near perfect, recommended. |
pixtral-12b-Q5_K_L.gguf |
Q5_K_L |
9.14GB |
false |
Uses Q8_0 for embed and output weights. High quality, recommended. |
pixtral-12b-Q5_K_M.gguf |
Q5_K_M |
8.73GB |
false |
High quality, recommended. |
pixtral-12b-Q5_K_S.gguf |
Q5_K_S |
8.52GB |
false |
High quality, recommended. |
pixtral-12b-Q4_K_L.gguf |
Q4_K_L |
7.98GB |
false |
Uses Q8_0 for embed and output weights. Good quality, recommended. |
pixtral-12b-Q4_1.gguf |
Q4_1 |
7.80GB |
false |
Legacy format, similar performance to Q4_K_S but with improved tokens/watt on Apple silicon. |
pixtral-12b-Q4_K_M.gguf |
Q4_K_M |
7.48GB |
false |
Good quality, default size for most use cases, recommended. |
pixtral-12b-Q3_K_XL.gguf |
Q3_K_XL |
7.15GB |
false |
Uses Q8_0 for embed and output weights. Lower quality but usable, good for low RAM availability. |
pixtral-12b-Q4_K_S.gguf |
Q4_K_S |
7.12GB |
false |
Slightly lower quality with more space savings, recommended. |
pixtral-12b-IQ4_NL.gguf |
IQ4_NL |
7.10GB |
false |
Similar to IQ4_XS, but slightly larger. Offers online repacking for ARM CPU inference. |
pixtral-12b-Q4_0.gguf |
Q4_0 |
7.09GB |
false |
Legacy format, offers online repacking for ARM and AVX CPU inference. |
pixtral-12b-IQ4_XS.gguf |
IQ4_XS |
6.74GB |
false |
Decent quality, smaller than Q4_K_S with similar performance, recommended. |
pixtral-12b-Q3_K_L.gguf |
Q3_K_L |
6.56GB |
false |
Lower quality but usable, good for low RAM availability. |
pixtral-12b-Q3_K_M.gguf |
Q3_K_M |
6.08GB |
false |
Low quality. |
pixtral-12b-IQ3_M.gguf |
IQ3_M |
5.72GB |
false |
Medium-low quality, new method with decent performance comparable to Q3_K_M. |
pixtral-12b-Q3_K_S.gguf |
Q3_K_S |
5.53GB |
false |
Low quality, not recommended. |
pixtral-12b-Q2_K_L.gguf |
Q2_K_L |
5.45GB |
false |
Uses Q8_0 for embed and output weights. Very low quality but surprisingly usable. |
pixtral-12b-IQ3_XS.gguf |
IQ3_XS |
5.31GB |
false |
Lower quality, new method with decent performance, slightly better than Q3_K_S. |
pixtral-12b-IQ3_XXS.gguf |
IQ3_XXS |
4.95GB |
false |
Lower quality, new method with decent performance, comparable to Q3 quants. |
pixtral-12b-Q2_K.gguf |
Q2_K |
4.79GB |
false |
Very low quality but surprisingly usable. |
pixtral-12b-IQ2_M.gguf |
IQ2_M |
4.44GB |
false |
Relatively low quality, uses SOTA techniques to be surprisingly usable. |
pixtral-12b-IQ2_S.gguf |
IQ2_S |
4.14GB |
false |
Low quality, uses SOTA techniques to be usable. |
Downloading using huggingface-cli
Click to view download instructions
First, make sure you have huggingface-cli
installed:
pip install -U "huggingface_hub[cli]"
Then, you can target the specific file you want:
huggingface-cli download bartowski/mistral-community_pixtral-12b-GGUF --include "mistral-community_pixtral-12b-Q4_K_M.gguf" --local-dir ./
If the model is bigger than 50GB, it will have been split into multiple files. In order to download them all to a local folder, run:
huggingface-cli download bartowski/mistral-community_pixtral-12b-GGUF --include "mistral-community_pixtral-12b-Q8_0/*" --local-dir ./
You can either specify a new local-dir
(mistral-community_pixtral-12b-Q8_0
) or download them all in place (./
).
💡 Usage Tips
Embed/output weights
Some of these quants (e.g., Q3_K_XL, Q4_K_L) use the standard quantization method with the embeddings and output weights quantized to Q8_0 instead of the normal default.
ARM/AVX information
Previously, you would download Q4_0_4_4/4_8/8_8
, and their weights would be interleaved in memory to improve performance on ARM and AVX machines by loading more data in one pass.
Now, there is "online repacking" for weights. Details can be found in this PR. If you use Q4_0
and your hardware would benefit from repacking weights, it will do it automatically on the fly.
As of llama.cpp
build b4282, you will not be able to run the Q4_0_X_X
files and will instead need to use Q4_0
.
Additionally, if you want slightly better quality, you can use IQ4_NL
thanks to this PR, which will also repack the weights for ARM (only the 4_4 for now). The loading time may be slower, but it will result in an overall speed increase.
Click to view Q4_0_X_X information (deprecated)
I'm keeping this section to show the potential theoretical uplift in performance from using the Q4_0
with online repacking.
Click to view benchmarks on an AVX2 system (EPYC7702)
model |
size |
params |
backend |
threads |
test |
t/s |
% (vs Q4_0) |
qwen2 3B Q4_0 |
1.70 GiB |
3.09 B |
CPU |
64 |
pp512 |
204.03 ± 1.03 |
100% |
qwen2 3B Q4_0 |
1.70 GiB |
3.09 B |
CPU |
64 |
pp1024 |
282.92 ± 0.19 |
100% |
qwen2 3B Q4_0 |
1.70 GiB |
3.09 B |
CPU |
64 |
pp2048 |
259.49 ± 0.44 |
100% |
qwen2 3B Q4_0 |
1.70 GiB |
3.09 B |
CPU |
64 |
tg128 |
39.12 ± 0.27 |
100% |
qwen2 3B Q4_0 |
1.70 GiB |
3.09 B |
CPU |
64 |
tg256 |
39.31 ± 0.69 |
100% |
qwen2 3B Q4_0 |
1.70 GiB |
3.09 B |
CPU |
64 |
tg512 |
40.52 ± 0.03 |
100% |
qwen2 3B Q4_K_M |
1.79 GiB |
3.09 B |
CPU |
64 |
pp512 |
301.02 ± 1.74 |
147% |
qwen2 3B Q4_K_M |
1.79 GiB |
3.09 B |
CPU |
64 |
pp1024 |
287.23 ± 0.20 |
101% |
qwen2 3B Q4_K_M |
1.79 GiB |
3.09 B |
CPU |
64 |
pp2048 |
262.77 ± 1.81 |
101% |
qwen2 3B Q4_K_M |
1.79 GiB |
3.09 B |
CPU |
64 |
tg128 |
18.80 ± 0.99 |
48% |
qwen2 3B Q4_K_M |
1.79 GiB |
3.09 B |
CPU |
64 |
tg256 |
24.46 ± 3.04 |
83% |
qwen2 3B Q4_K_M |
1.79 GiB |
3.09 B |
CPU |
64 |
tg512 |
36.32 ± 3.59 |
90% |
qwen2 3B Q4_0_8_8 |
1.69 GiB |
3.09 B |
CPU |
64 |
pp512 |
271.71 ± 3.53 |
133% |
qwen2 3B Q4_0_8_8 |
1.69 GiB |
3.09 B |
CPU |
64 |
pp1024 |
279.86 ± 45.63 |
100% |
qwen2 3B Q4_0_8_8 |
1.69 GiB |
3.09 B |
CPU |
64 |
pp2048 |
320.77 ± 5.00 |
124% |
qwen2 3B Q4_0_8_8 |
1.69 GiB |
3.09 B |
CPU |
64 |
tg128 |
43.51 ± 0.05 |
111% |
qwen2 3B Q4_0_8_8 |
1.69 GiB |
3.09 B |
CPU |
64 |
tg256 |
43.35 ± 0.09 |
110% |
qwen2 3B Q4_0_8_8 |
1.69 GiB |
3.09 B |
CPU |
64 |
tg512 |
42.60 ± 0.31 |
105% |
Q4_0_8_8
offers a nice bump to prompt processing and a small bump to text generation.
Which file should I choose?
Click here for details
A great write-up with charts showing various 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.
- Fastest Performance: If you want your model running as fast as possible, aim to fit the whole thing on your GPU's VRAM. Choose a quant with a file size 1 - 2GB smaller than your GPU's total VRAM.
- Maximum Quality: If you want the absolute maximum quality, add both your system RAM and your GPU's VRAM together, then choose a quant with a file size 1 - 2GB smaller than that total.
📄 License
This project is licensed under the Apache 2.0 License.