Views
No views yet
| Quant | Size | KLD | PPL | GPU Requirement Hint |
|---|---|---|---|---|
| 2.00 bpw h6 | 61.054 GiB | 0.42365 | 9.31452 | 3x24 GB w/ 49152 FP16 context |
| 2.10 bpw h6 (optimized) | 57.292 GiB | 0.36355 | 9.20850 | 3x24GB w/ 40960 FP16 context |
| 2.50 bpw h6 (optimized) | 67.838 GiB | 0.30152 | 8.88802 | 4x24GB w/ 90112 FP16 context |
| 3.00 bpw h6 | 81.613 GiB | 0.17263 | 8.58626 | 4x24GB w/ 16384 FP16 context |
| 3.06 bpw h6 (optimized) | 82.656 GiB | 0.15648 | 8.66856 | 4x24GB w/ 12288 FP16 context |
| 3.50 bpw h6 (optimized) | 94.328 GiB | 0.12513 | 8.58743 | 5x24 GB w/ 49152 FP16 context |
| 4.00 bpw h6 | 108.087 GiB | 0.07882 | 8.45404 | 6x24GB w/ 49152 FP16 context |
| 5.00 bpw h6 | 134.561 GiB | - | - | 5x24GB + 1x32GB w/ 24576 FP16 context (will not load for me with 6x24GB) |










python convert.py -w [path/to/work_area] -i [path/to/source_model] -o [path/to/output_model] -b [bitrate] -hb [head bitrate]path/to/work_area is a folder where the script can save intermediate checkpoints as it works. If the process crashes, you can pass the --resume flag to pick up from where it left off.path/to/source_model folder containing the source model you downloadedpath/to/output_model destination folder for your completed quant (will be created if it does not exist)bitrate The average number of bits to use for each weight. Needs to be a float (pass 4.0 if you want just 4 even).head bitrate Number of bits to use for attention head weights. 6 is usually most useful here. 8 is generally considered overkill, but may be useful in some situations.util/measure.py that will compare two exllamav3 models module by module against the original model. The goal is to see which modules are the most affected by the decrease in precision involved in going from a larger quant to a smaller quant.python util/measure.py -l [level] -d [device] -ms [max_sys_memory] -i [path/to/quant1] [path/to/quant2] -r [path/to/original_model] -o [path/to/measurement.json]level is an integer between 0 and 3 that determines the resolution of the measurement. 0 is fastest but least granular, 2 is default, 3 is most granular and slowest.device is the index of the CUDA device that will perform the workmax_sys_memory is the amount of memory that can be used for state data to speed things up, in GiBpath/to/quant1 and path/to/quant2 are the paths to the two quants to comparepath/to/original_model is the path to the original modelpath/to/measurement.json is the path to the resulting json measurement fileutil/optimize.py to create optimized quants that draw modules from both quants where appropriate to get the best result for a given bitrate.python util/optimize.py -i [path/to/quant1] [path/to/quant2] -o [path/to/resulting_model] -m [path/to/measurement.json] -b [target_bitrate]path/to/quant1 and path/to/quant2 are paths to the two source modelspath/to/resulting_model is the output pathtarget_bitrate is the target bitrate as a number a decimal pointeval/spec/wiki2_llama3_large.json.1{
2 "tokenize_fn": "transformers",
3 "tokenizer_dir": "path/to/full_model",
4 "dataset": "wiki2",
5 "eval_stride": 512,
6 "eval_len": 2048,
7 "max_rows": 100
8}eval/compare_q_logits.py as follows:python eval/compare_q_logits.py -m [path/to/full_model] -o [path/to/output_logits.safetensors] -d [path/to/dataset_spec.json] -rpb [rows_per_batch] -dev [device_index]path/to/full_model is the path to the modelpath/to/output_logits.safetensors is the path to the output logits filepath/to/dataset_spec.json is the path to the dataset spec file described aboverows_per_batch - I would run out of memory without this parameter. I set it to 32768.device_index - optional CUDA device index1[
2 {
3 "load_fn": "exllamav3",
4 "fwd_fn": "exllamav3",
5 "label": "EXL3 2.0bpw H6",
6 "model_dir": "path/to/MiniMaxAI_MiniMax-M2.5-2.0bpw-h6-exl3"
7 },
8 {
9 "load_fn": "exllamav3",
10 "fwd_fn": "exllamav3",
11 "label": "EXL3 2.1bpw H6 (optimized)",
12 "model_dir": "path/to/MiniMaxAI_MiniMax-M2.5-2.1bpw-h6-exl3"
13 }
14]python eval/compare_q.py -d [path/to/dataset_spec.json] -m [path/to/model_spec.json] -lf [path/to/logits.safetensors] -p [-kld] -t [chart_title]path/to/dataset_spec.json is the path to the dataset spec file described abovepath/to/model_spec.json is the path to the model spec file described abovepath/to/logits.safetensors is the path to the full model's logits, created above-kld the script creates a perplexity chart by default, add this if you want K/L-d insteadchart_title the chart title in the resulting plotplt.show(). I hacked in an extra arg and a plt.savefig() call instead.