base_model: ressl/MiniMax-M3-uncensored base_model_relation: quantized license: other library_name: llama.cpp pipeline_tag: text-generation quantized_by: spiritfather tags:
- gguf
- minimax-m3
- uncensored
- abliterated
- imatrix
- llama.cpp
MiniMax-M3-uncensored — GGUF (imatrix quants)
[!Note] All credit for the model goes to ressl — abliteration (refusal removal) of
o_projand everydown_projacross all 60 layers, routers untouched — and MiniMaxAI for the base MiniMax-M3 (427B total / 10B active MoE, 128 experts, 4 active). These are quantizations only.
[!Important] The importance matrix and the per-tensor quant recipe are AesSedai's, taken verbatim from AesSedai/MiniMax-M3-GGUF (bartowski
calibration_datav5, 49 chunks). Each size here is tensor-for-tensor type-matched to their stock MiniMax-M3 quant of the same name, so the only difference from their files is the uncensored weights. Thank you.
[!Tip] Benchmarked on CaliperBench — a creative-writing benchmark scoring prose craft, roleplay and willingness rather than general intelligence. This build is read against the stock MiniMax-M3 served from the same AesSedai recipe.
imatrix (importance matrix) quants spend their bits where the calibration text says the model is sensitive; below Q5 they are usually preferable to a static quant of the same size. Files over 50 GB are split into shards with
llama-gguf-split— point llama.cpp at shard00001and it loads the whole set. Text-only; unpruned (all 128 experts kept).
Provided quants
PPL, the PPL-ratio column and KLD are measured against this model's own Q8_0 on wiki.test.raw (512-token chunks, llama-perplexity --no-repack), so they read as quantization loss of the uncensored weights, not a comparison to the stock model. 1-(Mean PPL(Q)/PPL(base)) is the PPL excess over that Q8_0 base (lower is better; Q8_0 is the reference at 0). The table fills in as each size lands.
| Quant | Size | Mixture (dense / gate exps / up exps / down exps) | PPL | 1-(Mean PPL(Q)/PPL(base)) | KLD vs Q8_0 |
|---|---|---|---|---|---|
| IQ4_XS | 189.13 GiB (3.81 BPW) | Q6_K / IQ3_S / IQ3_S / IQ4_XS | 4.5772 | +11.85% | 0.1685 |
| Q5_K_M | 295.21 GiB (5.95 BPW) | Q8_0 / Q5_K / Q5_K / Q6_K | 4.1219 | +0.73% | 0.0377 |
| Q4_K_M | 246.11 GiB (4.96 BPW) | Q8_0 / Q4_K / Q4_K / Q5_K | 4.2198 | +3.12% | 0.0680 |
| IQ3_S | 148.04 GiB (2.98 BPW) | Q6_K / IQ2_S / IQ2_S / IQ3_S | 5.2967 | +29.44% | 0.3703 |
| IQ2_S | 134.01 GiB (2.70 BPW) | Q6_K / IQ2_XS / IQ2_XS / IQ3_XXS | 5.7374 | +40.20% | 0.4698 |
| Q8_0 | 422.46 GiB (8.50 BPW) | Q8_0 (pure) | reference | 0.0000% | reference |
Loading (any current llama.cpp)
llama-server -m IQ4_XS/MiniMax-M3-uncensored-IQ4_XS-00001-of-00005.gguf -ngl 99 -fa on -c 32768 -ctk q8_0 -ctv q8_0 --jinja
The IQ4_XS fits a 256 GB Apple Silicon box.
Thinking: on by default in MiniMax-M3's template. For the non-thinking mode pass chat_template_kwargs: {"thinking_mode": "disabled"} per request.
Quant recipe
-
ressl/MiniMax-M3-uncensoredbf16 safetensors →Q8_0GGUF withconvert_hf_to_gguf.py(llama.cpp b10819). -
Each smaller size cut from that Q8_0 with
llama-quantize --allow-requantizeusing AesSedai'simatrix.ggufand their mixture: the ftype sets the dense tensors and--tensor-typeoverrides push only the routed experts down. Example for IQ4_XS:llama-quantize --allow-requantize --imatrix imatrix.gguf \ --tensor-type ffn_gate_exps=iq3_s --tensor-type ffn_up_exps=iq3_s --tensor-type ffn_down_exps=iq4_xs \ MiniMax-M3-uncensored-Q8_0.gguf MiniMax-M3-uncensored-IQ4_XS.gguf Q6_K -
Split into <50 GB shards with
llama-gguf-split.
License
Inherited from the base model MiniMaxAI/MiniMax-M3.