🚀 Llamacpp imatrix Quantizations of Absolute_Zero_Reasoner-Coder-7b by andrewzh
This project provides Llama.cpp imatrix quantizations of the Absolute_Zero_Reasoner-Coder-7b model. It enables more efficient use of the model on various hardware platforms, offering multiple quantization types to balance between quality and resource consumption.
✨ Features
- Multiple Quantization Types: Offers a wide range of quantization types, such as bf16, Q8_0, Q6_K_L, etc., to meet different quality and resource requirements.
- Easy to Use: Can be run in LM Studio or directly with Llama.cpp and other Llama.cpp-based projects.
- Online Repacking: Supports online repacking of weights for better performance on ARM and AVX machines.
🚀 Quick Start
Running the Model
- LM Studio: You can run the quantized models in LM Studio.
- Llama.cpp: Run them directly with Llama.cpp, or any other Llama.cpp-based project.
Prompt Format
{system_prompt}
{prompt}
📦 Installation
Downloading using huggingface-cli
Click to view download instructions
First, make sure you have hugginface-cli installed:
pip install -U "huggingface_hub[cli]"
Then, you can target the specific file you want:
huggingface-cli download bartowski/andrewzh_Absolute_Zero_Reasoner-Coder-7b-GGUF --include "andrewzh_Absolute_Zero_Reasoner-Coder-7b-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/andrewzh_Absolute_Zero_Reasoner-Coder-7b-GGUF --include "andrewzh_Absolute_Zero_Reasoner-Coder-7b-Q8_0/*" --local-dir ./
You can either specify a new local-dir (andrewzh_Absolute_Zero_Reasoner-Coder-7b-Q8_0) or download them all in place (./)
💻 Usage Examples
Download a file (not the whole branch)
🔧 Technical Details
Embed/output weights
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.
ARM/AVX information
Previously, you would download Q4_0_4_4/4_8/8_8, and these would have their weights interleaved in memory in order to improve performance on ARM and AVX machines by loading up more data in one pass.
Now, however, there is something called "online repacking" for weights. details 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 to get slightly better quality for , you can use IQ4_NL thanks to this PR which will also repack the weights for ARM, though only the 4_4 for now. The loading time may be slower but it will result in an overall speed incrase.
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