Why abliteration instead of fine-tuning
Fine-tuning a "helpful" persona on top of RLHF'd refusals fights the base model's training and tends to degrade coherence. Abliteration instead finds and edits the specific weight directions responsible for refusal, leaving the rest of the network (and its capabilities) untouched. See the Heretic repo and the original abliteration writeup for the mechanism.
Abliteration parameters
Table with columns: Parameter, Value| Parameter | Value |
|---|
| direction_index | per-layer |
| attn.o_proj.max_weight | 1.35 |
| attn.o_proj.max_weight_position | 18.92 |
| attn.o_proj.min_weight | 0.53 |
| attn.o_proj.min_weight_distance | 12.37 |
| mlp.down_proj.max_weight | 1.35 |
| mlp.down_proj.max_weight_position | 16.06 |
| mlp.down_proj.min_weight | 1.27 |
| mlp.down_proj.min_weight_distance | 3.18 |
Table with columns: Metric, This model, Original model (saidutta69/RaceBench-MiniCPM5)| Metric | This model | Original model (saidutta69/RaceBench-MiniCPM5) |
|---|
| KL divergence | 0.0284 | 0 (by definition) |
| Refusals | 2/100 | 39/100 |
The edit keeps the RaceBench reasoning trade-off (BBH gain at a math cost — see the parent card for the full table) while dropping refusals from 39 to 2 out of 100 adversarial prompts.
Made with ❤️ by RACER IS OP — follow for more uncensored models
Files
GGUF quantizations
Full quantization set (14 quants + F16) produced with llama.cpp.
Table with columns: File, Format, Size| File | Format | Size |
|---|
RaceBench-MiniCPM5-heretic-F16.gguf | GGUF F16 | 2.02 GB |
RaceBench-MiniCPM5-heretic-Q2_K.gguf | GGUF Q2_K | 463 MB |
RaceBench-MiniCPM5-heretic-IQ3_S.gguf | GGUF IQ3_S | 524 MB |
RaceBench-MiniCPM5-heretic-Q3_K_S.gguf | GGUF Q3_K_S | 523 MB |
MiniCPM5 architecture — loads natively in llama.cpp / Ollama / LM Studio / Jan.
Run llama serve -hf saidutta69/RaceBench-MiniCPM5-heretic to pull the default quant.
Quickstart
# llama.cpp
llama serve -hf saidutta69/RaceBench-MiniCPM5-heretic
from transformers import AutoModelForCausalLM, AutoTokenizer
model_id = "saidutta69/RaceBench-MiniCPM5-heretic"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype="auto",
device_map="auto",
)
messages = [{"role": "user", "content": "Who are you? Please briefly introduce yourself."}]
inputs = tokenizer.apply_chat_template(
messages,
tokenize=True,
add_generation_prompt=True,
enable_thinking=False,
return_dict=True,
return_tensors="pt",
).to(model.device)
outputs = model.generate(**inputs, max_new_tokens=128)
print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:], skip_special_tokens=True))
Also runnable via Ollama, LM Studio, Jan, vLLM, SGLang — see the "Use this model" widget above for copy-paste commands. For tool/function calling, SGLang is the recommended backend; MiniCPM5-family models emit XML-style tool calls that SGLang's built-in minicpm5 parser converts to OpenAI-compatible tool_calls.
Responsible use
Refusal suppression is deliberate and works as intended: this model will comply with requests the base model would refuse, including some it shouldn't. There is no safety filtering layered on top. You are responsible for how you deploy it — don't put this behind an unmoderated public-facing endpoint serving third parties. It inherits the parent's factual limitations and biases, and RaceBench's documented math regression applies here too.
License
Inherits the Apache 2.0 license from the base model (via openbmb/MiniCPM5-1B).
Made with ❤️ by RACER IS OP