Instructions to use alexwkleung/Mellum2.1-12B-A2.5B-Thinking-Abliterated-GGUF with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use alexwkleung/Mellum2.1-12B-A2.5B-Thinking-Abliterated-GGUF with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf alexwkleung/Mellum2.1-12B-A2.5B-Thinking-Abliterated-GGUF:Q4_K_M # Run inference directly in the terminal: llama cli -hf alexwkleung/Mellum2.1-12B-A2.5B-Thinking-Abliterated-GGUF:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf alexwkleung/Mellum2.1-12B-A2.5B-Thinking-Abliterated-GGUF:Q4_K_M # Run inference directly in the terminal: llama cli -hf alexwkleung/Mellum2.1-12B-A2.5B-Thinking-Abliterated-GGUF:Q4_K_M
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf alexwkleung/Mellum2.1-12B-A2.5B-Thinking-Abliterated-GGUF:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf alexwkleung/Mellum2.1-12B-A2.5B-Thinking-Abliterated-GGUF:Q4_K_M
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf alexwkleung/Mellum2.1-12B-A2.5B-Thinking-Abliterated-GGUF:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf alexwkleung/Mellum2.1-12B-A2.5B-Thinking-Abliterated-GGUF:Q4_K_M
Use Docker
docker model run hf.co/alexwkleung/Mellum2.1-12B-A2.5B-Thinking-Abliterated-GGUF:Q4_K_M
- LM Studio
- Jan
- vLLM
How to use alexwkleung/Mellum2.1-12B-A2.5B-Thinking-Abliterated-GGUF with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "alexwkleung/Mellum2.1-12B-A2.5B-Thinking-Abliterated-GGUF" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "alexwkleung/Mellum2.1-12B-A2.5B-Thinking-Abliterated-GGUF", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/alexwkleung/Mellum2.1-12B-A2.5B-Thinking-Abliterated-GGUF:Q4_K_M
- Ollama
How to use alexwkleung/Mellum2.1-12B-A2.5B-Thinking-Abliterated-GGUF with Ollama:
ollama run hf.co/alexwkleung/Mellum2.1-12B-A2.5B-Thinking-Abliterated-GGUF:Q4_K_M
- Unsloth Desktop
- Pi
How to use alexwkleung/Mellum2.1-12B-A2.5B-Thinking-Abliterated-GGUF with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf alexwkleung/Mellum2.1-12B-A2.5B-Thinking-Abliterated-GGUF:Q4_K_M
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "alexwkleung/Mellum2.1-12B-A2.5B-Thinking-Abliterated-GGUF:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use alexwkleung/Mellum2.1-12B-A2.5B-Thinking-Abliterated-GGUF with Docker Model Runner:
docker model run hf.co/alexwkleung/Mellum2.1-12B-A2.5B-Thinking-Abliterated-GGUF:Q4_K_M
- Lemonade
How to use alexwkleung/Mellum2.1-12B-A2.5B-Thinking-Abliterated-GGUF with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull alexwkleung/Mellum2.1-12B-A2.5B-Thinking-Abliterated-GGUF:Q4_K_M
Run and chat with the model
lemonade run user.Mellum2.1-12B-A2.5B-Thinking-Abliterated-GGUF-Q4_K_M
List all available models
lemonade list
- Hermes Agent
How to use alexwkleung/Mellum2.1-12B-A2.5B-Thinking-Abliterated-GGUF with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf alexwkleung/Mellum2.1-12B-A2.5B-Thinking-Abliterated-GGUF:Q4_K_M
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default alexwkleung/Mellum2.1-12B-A2.5B-Thinking-Abliterated-GGUF:Q4_K_M
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use alexwkleung/Mellum2.1-12B-A2.5B-Thinking-Abliterated-GGUF with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf alexwkleung/Mellum2.1-12B-A2.5B-Thinking-Abliterated-GGUF:Q4_K_M
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "alexwkleung/Mellum2.1-12B-A2.5B-Thinking-Abliterated-GGUF:Q4_K_M" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
Mellum2.1-12B-A2.5B-Thinking-Abliterated โ GGUF
An abliterated build of
JetBrains/Mellum2.1-12B-A2.5B-Thinking
(12B total / ~2.5B active MoE, 64 experts top-8, a code-focused thinking model). It was produced with
Heretic and quantized with llama.cpp. Every claim below is
measured against a stock baseline built through the same pipeline.
Modification notice. These weights are a modified derivative. Directional ablation altered 662 tensors to reduce refusals (see What changed). Nothing else was retrained. JetBrains did not produce, endorse, or review this build, and its behavior is not theirs.
Read this first
This is an escape hatch for over-refusal, not an uncensored model. Abliteration removes a refusal direction from the residual stream; it adds no knowledge. This build knows what stock Mellum knows and nothing more. What changed is its willingness to say it. If stock answers your prompt, use stock.
It is partial. Refusals dropped from ~all to roughly a third of the held-out set (below), and the drop is uneven by topic. Expect some requests to still be refused.
The hazard worth naming: refusals double as hedging. Remove them and you get a model answering fluently in domains where it is unreliable, with none of the cues that used to mark the boundary. Factual reliability is unchanged; only the signalling is gone. You are accountable for what you generate and for applicable law.
Measurements
All on Q4_K_M against a stock Q4_K_M produced by the same converter and quantizer (sha256
51e4c081โฆ5fa8f; not byte-identical to JetBrains' own Q4_K_M, which is why it was built rather than
reused).
Refusals and GSM8K use temp 1.0 / top-p 0.95 / top-k 20, seeded per item so both builds see the same
randomness. Refusals use mlabonne/harmful_behaviors
test[60:], the 44 prompts Heretic's optimiser never saw (it scored test[:60]). They are classified
by Heretic's marker list on the answer text, reasoning excluded.
Refusals (lower = complies more):
| regime | stock | abliterated |
|---|---|---|
enable_thinking: false |
43/44 | 14/44 |
enable_thinking: true |
44/44 | 17/44 |
- Non-degenerate. None of the compliances loops or is empty. The median answer is 2โ3k characters. Reading the openers, a handful are benign substitutions or safety-framed rewrites of the request, so the marker count slightly overstates compliance.
- Uneven by topic. Misinformation and weapons/violence prompts mostly comply now, and cyber prompts about two-thirds of the time. Fraud/theft is mixed. Drugs stayed refused in both regimes (0/2), a small sample but a consistent one.
- Answers to these prompts are longer. With thinking off they run ~3x stock's length (1041 vs 336 tokens), because the model now writes the answer it used to decline.
GSM8K, paired, n=100, enable_thinking: false:
| correct | truncated (1536 tokens) | |
|---|---|---|
| stock | 90/100 | 10 |
| abliterated | 89/100 | 10 |
Discordant pairs split 4/3 (McNemar exact p = 1.000), so no math regression is detectable. Abliteration damage tends to land in math reasoning, which is why this is the check that matters. n=100 rules out a large regression, not a 2โ3 pp one. The truncations are the base model being verbose, not the ablation: both builds hit the cap equally.
Coding (3 tasks, one sampled run each, thinking on, card sampling): no regression seen. Both
builds made the same correct fix to an interval-merging bug and wrote a sound async httpx retry
refactor. On an ISO-8601 duration parser, stock thought past an 8192-token cap without answering while
the abliterated build answered. One run each, so treat that as anecdote, not a difference.
Unmeasured: MMLU, long context, non-English, agentic/tool-calling loops.
A note on "thinking off"
enable_thinking: false makes the template emit a closed <think>\n\n</think> block, but on
non-trivial prompts Mellum opens a new think block itself and reasons anyway. Stock did this on
41/44 of the prompts above. That is base-model behavior and applies to this build equally. Read
"thinking off" as "not prompted to think", and budget max_tokens accordingly.
Files
| file | size |
|---|---|
Mellum2.1-12B-A2.5B-Thinking-Abliterated-Q4_K_M.gguf |
7.52 GiB |
Mellum2.1-12B-A2.5B-Thinking-Abliterated-Q5_K_M.gguf |
8.58 GiB |
Mellum2.1-12B-A2.5B-Thinking-Abliterated-Q6_K.gguf |
10.13 GiB |
Mellum2.1-12B-A2.5B-Thinking-Abliterated-Q8_0.gguf |
12.04 GiB |
All quantized from one bf16 GGUF, without an imatrix (Q4_K_M and up don't require one). build/ holds
the search record, not model files: the log (run.log), the list of modified tensors
(heretic_deltas.json), and the full Optuna study journal (heretic-study.jsonl, all 100 trials).
Usage
Needs a llama.cpp recent enough to know the mellum architecture (built and tested at
d7bd3bfc). The sampling is JetBrains' card values:
llama-server -m Mellum2.1-12B-A2.5B-Thinking-Abliterated-Q4_K_M.gguf \
-ngl 99 -c 32768 -fa on --jinja \
--temp 0.6 --top-p 0.95 --top-k 20
Thinking is on by default; pass "chat_template_kwargs": {"enable_thinking": false} per request to
skip the prompted think block (see the note above). Send a large max_tokens, or none. This
model reasons at length, and a small budget is consumed inside <think>, returning empty content with
finish_reason: "length".
What changed
From the merge-time delta list, computed on the bf16 weights before quantization:
| tensor type | changed | layers |
|---|---|---|
routed-expert down_proj |
640 | 12โ21, all 64 experts in each |
attention o_proj |
22 | 6โ27 |
| everything else (norms, embeddings, q/k/v, router, experts' gate/up) | 0 | โ |
Layers 0โ5 are untouched.
Reproducing
Stock Heretic silently abliterates attention only on this model. Transformers 5 loads Mellum's
experts as one fused module with 3D gate_up_proj / down_proj parameters. Heretic 1.4 iterates
layer.mlp.experts inside a suppress(Exception), which fails on a fused module, so the experts are
skipped without a word. PEFT 0.21 separately strips per-expert targets from target_modules for
models with a checkpoint conversion mapping. Either drop alone leaves a run that changes only the 28
o_proj modules while reporting success. On any MoE, check Heretic's "Abliterable components"
line: mlp.down_proj should be in the thousands (1792 here), not missing.
This build split the fused experts back into per-expert Linears named like the checkpoint tensors.
It verified fused vs. unfused logits on the real weights (KL 0.0009), bypassed the PEFT rewrite for
those modules, and merged the LoRA deltas straight onto the original per-expert safetensors. The
search itself is stock Heretic 1.4.0 (transformers 5.19.0, peft 0.21.2) with that patch loaded
in-process. Run bare, the command below reproduces the attention-only failure, not this build:
heretic JetBrains/Mellum2.1-12B-A2.5B-Thinking \
--response-prefix $'<think>\n\n</think>\n\n' \
--seed 1234 --max-batch-size 128 --max-response-length 64 \
--n-trials 100 --n-startup-trials 40 \
--good-evaluation-prompts '{"dataset":"mlabonne/harmless_alpaca","split":"test[:60]","column":"text"}' \
--bad-evaluation-prompts '{"dataset":"mlabonne/harmful_behaviors","split":"test[:60]","column":"text"}'
--response-prefix is byte-identical to the served enable_thinking: false prompt, so scoring
happens in that regime rather than on reasoning text. Abliteration is not bit-reproducible
(the TPE search lands on a different trial each run). The selected trial was 62: 7/60 refusals
@ KL 0.1162, from a baseline of 53/60, per-layer directions. Its parameters, from the study journal
(Heretic's trial 62 is Optuna trial number 61; min_weight is shown as Heretic reports it, i.e. the
stored fraction ร max_weight):
attn.o_proj : max_weight 1.21318130 max_weight_position 19.66037967 min_weight 0.93951503 min_weight_distance 14.02125443
mlp.down_proj : max_weight 1.35222106 max_weight_position 16.43450663 min_weight 0.69089782 min_weight_distance 5.35777097
Verifying
2f27b1e83390e6f259cebe1f8f0e343ef990b5ec938abd99bb4c33ba1c1fc7af Mellum2.1-12B-A2.5B-Thinking-Abliterated-Q4_K_M.gguf
6167587537cabd009e3e97b59cca9c25292926c28027e4c47d1cba20f66c349d Mellum2.1-12B-A2.5B-Thinking-Abliterated-Q5_K_M.gguf
bef15ed028f483e18cb58ecaf64672a73b52a9056d7edde797624cc1cbccfe9c Mellum2.1-12B-A2.5B-Thinking-Abliterated-Q6_K.gguf
6e7d2cbb6f320006c5ce841834ab53cd9ac85dacab480fd358e14407257a340f Mellum2.1-12B-A2.5B-Thinking-Abliterated-Q8_0.gguf
License
Apache-2.0, inherited from JetBrains/Mellum2.1-12B-A2.5B-Thinking, whose repo declares
apache-2.0 in its metadata but ships no LICENSE file (nor does any JetBrains Mellum repo). The
LICENSE here is the canonical Apache License 2.0 text from apache.org, unmodified. No NOTICE file
exists upstream, so none is propagated. As required by ยง4(b), this card states that the files were
modified (see the notice at the top). Abliteration and quantization change nothing about the license.
Credits
- JetBrains: the Mellum2.1 base model
- p-e-w/heretic: the abliteration method and tooling
- ggml-org/llama.cpp: conversion and quantization
- mlabonne: the prompt sets used for directions and scoring
Tested setup
I've run the Q4_K_M quant via llama.cpp in Reika on an M2 MacBook Air (16GB) at 24k context, with the default f16 KV cache. This was general use and a few informal evals, not a benchmark.
Supporting my work
If these quants are useful to you, consider supporting them via Ko-fi. It goes toward local hardware for quantizing and testing larger models. I also build Reika, a coding agent CLI designed around small local models first.
- Downloads last month
- 1,939
4-bit
5-bit
6-bit
8-bit
Model tree for alexwkleung/Mellum2.1-12B-A2.5B-Thinking-Abliterated-GGUF
Base model
JetBrains/Mellum2-12B-A2.5B-Base