Add k-quant GGMLs which are now working thanks to LostRuins PR
Browse files
README.md
CHANGED
@@ -31,15 +31,17 @@ GGML files are for CPU + GPU inference using [llama.cpp](https://github.com/gger
|
|
31 |
## Repositories available
|
32 |
|
33 |
* [4-bit GPTQ models for GPU inference](https://huggingface.co/TheBloke/WizardLM-13B-V1.1-GPTQ)
|
34 |
-
* [4, 5, and 8-bit GGML models for CPU+GPU inference](https://huggingface.co/TheBloke/WizardLM-13B-V1.1-GGML)
|
35 |
* [Unquantised fp16 model in pytorch format, for GPU inference and for further conversions](https://huggingface.co/WizardLM/WizardLM-13B-V1.1)
|
36 |
|
37 |
## Prompt template: Vicuna
|
38 |
|
39 |
```
|
40 |
A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user's questions.
|
41 |
-
|
|
|
42 |
ASSISTANT:
|
|
|
43 |
```
|
44 |
|
45 |
<!-- compatibility_ggml start -->
|
@@ -47,28 +49,43 @@ ASSISTANT:
|
|
47 |
|
48 |
### Original llama.cpp quant methods: `q4_0, q4_1, q5_0, q5_1, q8_0`
|
49 |
|
50 |
-
|
51 |
|
52 |
-
|
53 |
|
54 |
-
|
55 |
|
56 |
-
|
57 |
|
58 |
-
|
|
|
|
|
59 |
|
60 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
61 |
|
|
|
|
|
62 |
<!-- compatibility_ggml end -->
|
63 |
|
64 |
## Provided files
|
65 |
| Name | Quant method | Bits | Size | Max RAM required | Use case |
|
66 |
| ---- | ---- | ---- | ---- | ---- | ----- |
|
67 |
-
| wizardlm-13b-v1.1.ggmlv3.
|
68 |
-
| wizardlm-13b-v1.1.ggmlv3.
|
69 |
-
| wizardlm-13b-v1.1.ggmlv3.
|
70 |
-
| wizardlm-13b-v1.1.ggmlv3.
|
71 |
-
| wizardlm-13b-v1.1.ggmlv3.
|
|
|
|
|
|
|
|
|
|
|
72 |
|
73 |
**Note**: the above RAM figures assume no GPU offloading. If layers are offloaded to the GPU, this will reduce RAM usage and use VRAM instead.
|
74 |
|
@@ -77,11 +94,9 @@ This is being investigated by the llama.cpp team and may be fixed in future. You
|
|
77 |
I use the following command line; adjust for your tastes and needs:
|
78 |
|
79 |
```
|
80 |
-
./main -t 10 -ngl 32 -m wizardlm-13b-v1.1.ggmlv3.
|
81 |
```
|
82 |
-
|
83 |
-
|
84 |
-
If not able to fully offload to GPU, you should use more cores. Change `-t 10` to the number of physical CPU cores you have, or a lower number depending on what gives best performance.
|
85 |
|
86 |
Change `-ngl 32` to the number of layers to offload to GPU. Remove it if you don't have GPU acceleration.
|
87 |
|
|
|
31 |
## Repositories available
|
32 |
|
33 |
* [4-bit GPTQ models for GPU inference](https://huggingface.co/TheBloke/WizardLM-13B-V1.1-GPTQ)
|
34 |
+
* [2, 3, 4, 5, 6 and 8-bit GGML models for CPU+GPU inference](https://huggingface.co/TheBloke/WizardLM-13B-V1.1-GGML)
|
35 |
* [Unquantised fp16 model in pytorch format, for GPU inference and for further conversions](https://huggingface.co/WizardLM/WizardLM-13B-V1.1)
|
36 |
|
37 |
## Prompt template: Vicuna
|
38 |
|
39 |
```
|
40 |
A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user's questions.
|
41 |
+
|
42 |
+
USER: PROMPT
|
43 |
ASSISTANT:
|
44 |
+
|
45 |
```
|
46 |
|
47 |
<!-- compatibility_ggml start -->
|
|
|
49 |
|
50 |
### Original llama.cpp quant methods: `q4_0, q4_1, q5_0, q5_1, q8_0`
|
51 |
|
52 |
+
These are guaranteed to be compatible with any UIs, tools and libraries released since late May. They may be phased out soon, as they are largely superseded by the new k-quant methods.
|
53 |
|
54 |
+
### New k-quant methods: `q2_K, q3_K_S, q3_K_M, q3_K_L, q4_K_S, q4_K_M, q5_K_S, q6_K`
|
55 |
|
56 |
+
These new quantisation methods are compatible with llama.cpp as of June 6th, commit `2d43387`.
|
57 |
|
58 |
+
They are now also compatible with recent releases of text-generation-webui, KoboldCpp, llama-cpp-python, ctransformers, rustformers and most others. For compatibility with other tools and libraries, please check their documentation.
|
59 |
|
60 |
+
## Explanation of the new k-quant methods
|
61 |
+
<details>
|
62 |
+
<summary>Click to see details</summary>
|
63 |
|
64 |
+
The new methods available are:
|
65 |
+
* GGML_TYPE_Q2_K - "type-1" 2-bit quantization in super-blocks containing 16 blocks, each block having 16 weight. Block scales and mins are quantized with 4 bits. This ends up effectively using 2.5625 bits per weight (bpw)
|
66 |
+
* GGML_TYPE_Q3_K - "type-0" 3-bit quantization in super-blocks containing 16 blocks, each block having 16 weights. Scales are quantized with 6 bits. This end up using 3.4375 bpw.
|
67 |
+
* GGML_TYPE_Q4_K - "type-1" 4-bit quantization in super-blocks containing 8 blocks, each block having 32 weights. Scales and mins are quantized with 6 bits. This ends up using 4.5 bpw.
|
68 |
+
* GGML_TYPE_Q5_K - "type-1" 5-bit quantization. Same super-block structure as GGML_TYPE_Q4_K resulting in 5.5 bpw
|
69 |
+
* GGML_TYPE_Q6_K - "type-0" 6-bit quantization. Super-blocks with 16 blocks, each block having 16 weights. Scales are quantized with 8 bits. This ends up using 6.5625 bpw
|
70 |
+
* GGML_TYPE_Q8_K - "type-0" 8-bit quantization. Only used for quantizing intermediate results. The difference to the existing Q8_0 is that the block size is 256. All 2-6 bit dot products are implemented for this quantization type.
|
71 |
|
72 |
+
Refer to the Provided Files table below to see what files use which methods, and how.
|
73 |
+
</details>
|
74 |
<!-- compatibility_ggml end -->
|
75 |
|
76 |
## Provided files
|
77 |
| Name | Quant method | Bits | Size | Max RAM required | Use case |
|
78 |
| ---- | ---- | ---- | ---- | ---- | ----- |
|
79 |
+
| wizardlm-13b-v1.1.ggmlv3.q2_K.bin | q2_K | 2 | 5.67 GB| 8.17 GB | New k-quant method. Uses GGML_TYPE_Q4_K for the attention.vw and feed_forward.w2 tensors, GGML_TYPE_Q2_K for the other tensors. |
|
80 |
+
| wizardlm-13b-v1.1.ggmlv3.q3_K_S.bin | q3_K_S | 3 | 5.80 GB| 8.30 GB | New k-quant method. Uses GGML_TYPE_Q3_K for all tensors |
|
81 |
+
| wizardlm-13b-v1.1.ggmlv3.q3_K_M.bin | q3_K_M | 3 | 6.46 GB| 8.96 GB | New k-quant method. Uses GGML_TYPE_Q4_K for the attention.wv, attention.wo, and feed_forward.w2 tensors, else GGML_TYPE_Q3_K |
|
82 |
+
| wizardlm-13b-v1.1.ggmlv3.q3_K_L.bin | q3_K_L | 3 | 7.07 GB| 9.57 GB | New k-quant method. Uses GGML_TYPE_Q5_K for the attention.wv, attention.wo, and feed_forward.w2 tensors, else GGML_TYPE_Q3_K |
|
83 |
+
| wizardlm-13b-v1.1.ggmlv3.q4_K_S.bin | q4_K_S | 4 | 7.49 GB| 9.99 GB | New k-quant method. Uses GGML_TYPE_Q4_K for all tensors |
|
84 |
+
| wizardlm-13b-v1.1.ggmlv3.q4_K_M.bin | q4_K_M | 4 | 7.99 GB| 10.49 GB | New k-quant method. Uses GGML_TYPE_Q6_K for half of the attention.wv and feed_forward.w2 tensors, else GGML_TYPE_Q4_K |
|
85 |
+
| wizardlm-13b-v1.1.ggmlv3.q5_K_S.bin | q5_K_S | 5 | 9.07 GB| 11.57 GB | New k-quant method. Uses GGML_TYPE_Q5_K for all tensors |
|
86 |
+
| wizardlm-13b-v1.1.ggmlv3.q5_K_M.bin | q5_K_M | 5 | 9.33 GB| 11.83 GB | New k-quant method. Uses GGML_TYPE_Q6_K for half of the attention.wv and feed_forward.w2 tensors, else GGML_TYPE_Q5_K |
|
87 |
+
| wizardlm-13b-v1.1.ggmlv3.q6_K.bin | q6_K | 6 | 10.76 GB| 13.26 GB | New k-quant method. Uses GGML_TYPE_Q8_K - 6-bit quantization - for all tensors |
|
88 |
+
|
89 |
|
90 |
**Note**: the above RAM figures assume no GPU offloading. If layers are offloaded to the GPU, this will reduce RAM usage and use VRAM instead.
|
91 |
|
|
|
94 |
I use the following command line; adjust for your tastes and needs:
|
95 |
|
96 |
```
|
97 |
+
./main -t 10 -ngl 32 -m wizardlm-13b-v1.1.ggmlv3.q4_0.bin --color -c 2048 --temp 0.7 --repeat_penalty 1.1 -n -1 -p "### Instruction: Write a story about llamas\n### Response:"
|
98 |
```
|
99 |
+
Change `-t 10` to the number of physical CPU cores you have. For example if your system has 8 cores/16 threads, use `-t 8`.
|
|
|
|
|
100 |
|
101 |
Change `-ngl 32` to the number of layers to offload to GPU. Remove it if you don't have GPU acceleration.
|
102 |
|