File size: 5,767 Bytes
5eae6ef 4de9ffa 5eae6ef 4de9ffa 5eae6ef 4de9ffa dc2eccf fba5f84 ec4abe9 beec9f1 4de9ffa beec9f1 4de9ffa beec9f1 4de9ffa |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 |
---
quantized_by: ubergarm
pipeline_tag: text-generation
base_model: moonshotai/Kimi-K2-Instruct-0905
license: other
license_name: modified-mit
license_link: https://huggingface.co/moonshotai/Kimi-K2-Instruct-0905/blob/main/LICENSE
base_model_relation: quantized
tags:
- mla
- imatrix
- conversational
- ik_llama.cpp
---
## **WIP**
- [x] download fp8 safetensors
- [x] cast fp8 safetensors to bf16 safetensors
- [x] convert to bf16 GGUF
- [x] quantize Q8_0 without imatrix
- [x] calculate and upload imatrix from Q8_0 (note imatrix is missing data for a few tensors: https://huggingface.co/ubergarm/Kimi-K2-Instruct-0905-GGUF/discussions/1#68bc58de31fa67452e075b9f )
- [x] begin quantizing and releasing
- [x] IQ2_KS
- [ ] smol-IQ4_KSS
- [ ] smol-IQ2_KL
- [ ] etc...
Open a discussion if you have a specific target RAM+VRAM in mind for your rig and I'll see what I can do given the available quants. Cheers!
## `ik_llama.cpp` imatrix Quantizations of moonshotai/Kimi-K2-Instruct-0905
This quant collection **REQUIRES** [ik_llama.cpp](https://github.com/ikawrakow/ik_llama.cpp/) fork to support the ik's latest SOTA quants and optimizations! Do **not** download these big files and expect them to run on mainline vanilla llama.cpp, ollama, LM Studio, KoboldCpp, etc!
*NOTE* `ik_llama.cpp` can also run your existing GGUFs from bartowski, unsloth, mradermacher, etc if you want to try it out before downloading my quants.
Some of ik's new quants are supported with [Nexesenex/croco.cpp](https://github.com/Nexesenex/croco.cpp) fork of KoboldCPP.
These quants provide best in class perplexity for the given memory footprint.
## Big Thanks
Shout out to Wendell and the **Level1Techs** crew, the community [Forums](https://forum.level1techs.com/t/deepseek-deep-dive-r1-at-home/225826), [YouTube Channel](https://www.youtube.com/@Level1Techs)! **BIG thanks** for providing **BIG hardware** expertise and access to run these experiments and make these great quants available to the community!!!
Also thanks to all the folks in the quanting and inferencing community on [BeaverAI Club Discord](https://huggingface.co/BeaverAI) and on [r/LocalLLaMA](https://www.reddit.com/r/LocalLLaMA/) for tips and tricks helping each other run, test, and benchmark all the fun new models!
## Quant Collection
Compare with Perplexity of full size `Q8_0` TODO
Final estimate: PPL = TODO

### `smol-IQ4_KSS` TODO
Final estimate: PPL = TODO
<details>
<summary>π Secret Recipe</summary>
```bash
echo TODO
```
</details>
### `IQ3_KS` TODO
Final estimate: PPL = TODO
<details>
<summary>π Secret Recipe</summary>
```bash
echo TODO
```
</details>
### `IQ2_KL` TODO
Final estimate: PPL = TODO
<details>
<summary>π Secret Recipe</summary>
```bash
echo TODO
```
</details>
### `IQ2_KS` 289.820 GiB (2.425 BPW)
Final estimate: PPL = 3.2478 +/- 0.01721
<details>
<summary>π Secret Recipe</summary>
```bash
#!/usr/bin/env bash
custom="
## Attention [0-60] (GPU)
blk\..*\.attn_k_b\.weight=q8_0
blk\..*\.attn_v_b\.weight=q8_0
# Balance of attn tensors
blk\..*\.attn_kv_a_mqa\.weight=q8_0
blk\..*\.attn_q_a\.weight=q8_0
blk\..*\.attn_q_b\.weight=q8_0
blk\..*\.attn_output\.weight=q8_0
## First Single Dense Layer [0] (GPU)
blk\..*\.ffn_down\.weight=q8_0
blk\..*\.ffn_(gate|up)\.weight=q8_0
## Shared Expert [1-60] (GPU)
blk\..*\.ffn_down_shexp\.weight=q8_0
blk\..*\.ffn_(gate|up)_shexp\.weight=q8_0
## Routed Experts [1-60] (CPU)
blk\..*\.ffn_down_exps\.weight=iq2_kl
blk\..*\.ffn_(gate|up)_exps\.weight=iq2_ks
## Token embedding and output tensors (GPU)
token_embd\.weight=iq4_k
output\.weight=iq6_k
"
custom=$(
echo "$custom" | grep -v '^#' | \
sed -Ez 's:\n+:,:g;s:,$::;s:^,::'
)
numactl -N 1 -m 1 \
./build/bin/llama-quantize \
--custom-q "$custom" \
--imatrix /mnt/data/models/ubergarm/Kimi-K2-Instruct-0905-GGUF/imatrix-Kimi-K2-Instruct-0905-Q8_0.dat \
/mnt/data/models/ubergarm/Kimi-K2-Instruct-0905-GGUF/Kimi-K2-384x14B-Instruct-safetensors-0905-BF16-00001-of-00046.gguf \
/mnt/data/models/ubergarm/Kimi-K2-Instruct-0905-GGUF/Kimi-K2-Instruct-0905-IQ2_KS.gguf \
IQ2_KS \
192
```
</details>
### `IQ1_KT` TODO
Final estimate: PPL = TODO
<details>
<summary>π Secret Recipe</summary>
```bash
echo TODO
```
</details>
## Example Commands
### Hybrid (multiple) CUDA + CPU
```bash
# Two CUDA devices with enough VRAM to offload more layers
# Keep in mind Kimi-K2 starts at 1 unlike DeepSeek at 3 (first dense layers)
./build/bin/llama-server \
--model "$model"\
--alias ubergarm/Kimi-K2-Instruct-0905 \
--ctx-size 32768 \
-ctk q8_0 \
-fa -fmoe \
-mla 3 \
-ngl 99 \
-ot "blk\.(1|2|3)\.ffn_.*=CUDA0" \
-ot "blk\.(4|5|6)\.ffn_.*=CUDA1" \
-ot exps=CPU \
--parallel 1 \
--threads 48 \
--threads-batch 64 \
--host 127.0.0.1 \
--port 8080
```
### CPU-Only (no GPU)
```bash
# compile
cmake -B build -DGGML_CUDA=0 -DGGML_BLAS=0 -DGGML_VULKAN=0
cmake --build build --config Release -j $(nproc)
# run server
# single CPU of a dual socket rig configured one NUMA per socket
numactl -N 0 -m 0 \
./build/bin/llama-server \
--model "$model"\
--alias ubergarm/Kimi-K2-Instruct-0905 \
--ctx-size 98304 \
-ctk q8_0 \
-fa -fmoe \
-mla 3 \
--parallel 1 \
--threads 128 \
--threads-batch 192 \
--numa numactl \
--host 127.0.0.1 \
--port 8080
```
## References
* [ik_llama.cpp](https://github.com/ikawrakow/ik_llama.cpp)
|