LFM2.5-2.6B-Uncensored-GGUF
Decensored (abliterated) build of
LiquidAI/LFM2.5-2.6B,
quantized for
llama.cpp.
Refusal directions were removed with
Heretic v1.4.0, which runs a
TPE search over per-layer ablation strengths for the attention output and MLP down projections,
co-optimizing refusal rate against KL divergence from the original model. No fine-tuning or
retraining is involved, so the base model's capabilities are preserved apart from the measured
distribution shift below.
Results
- Refusals on 100 harmful prompts: 97/100 -> 7/100
- KL divergence on harmless prompts: 0.0181 (lower is closer to the original)
- Search: 400 trials, exported trial 78, seed 260805, base revision
dca1825886789bd40b94368f53b1d9ada4c94598
A KL divergence this low means behaviour on ordinary prompts is essentially unchanged; the edit is
targeted at refusal behaviour.
Verified on the quantized build
The numbers above come from Heretic, which scores bf16 weights with the reasoning block
suppressed. Because quantization can partially restore refusal behaviour, the shipped
Q4_K_M was re-tested the way you would actually run it - served through llama-server
with --jinja, reasoning enabled, judging the answer after </think>:
- 3/39 refusals (8%) on 39 prompts from the same
mlabonne/harmful_behaviors test split, temperature 0, same keyword markers Heretic scored with. One further response ran out of tokens mid-reasoning and was excluded.
The refusal rate survives quantization essentially unchanged, and a control prompt confirms
general capability is intact (a correct, fluent three-sentence explanation of a Kalman filter,
with ~1.5k characters of reasoning before it).
Architecture note
LFM2.5 is a hybrid: 30 layers, 22 double-gated short-convolution blocks interleaved with 8 GQA
attention blocks, 128k context. You need a recent llama.cpp build - older ones fail with
unknown architecture 'lfm2'.
This is a reasoning model. The chat template appends <think> to every generation prompt and
there is no flag to disable it, so the model always reasons before answering. Give it room -
a 100-token cap will return an empty answer because the model is still inside the reasoning block.
Budget 400+ tokens, and use --jinja so llama.cpp parses the block into reasoning_content
instead of leaking it into the reply.
Files
LFM2.5-2.6B-Uncensored-BF16.gguf - BF16, 5.40 GB
LFM2.5-2.6B-Uncensored-Q2_K.gguf - Q2_K, 1.09 GB
LFM2.5-2.6B-Uncensored-Q3_K_L.gguf - Q3_K_L, 1.45 GB
LFM2.5-2.6B-Uncensored-Q3_K_M.gguf - Q3_K_M, 1.37 GB
LFM2.5-2.6B-Uncensored-Q3_K_S.gguf - Q3_K_S, 1.27 GB
LFM2.5-2.6B-Uncensored-Q4_K_M.gguf - Q4_K_M, 1.67 GB
LFM2.5-2.6B-Uncensored-Q4_K_S.gguf - Q4_K_S, 1.60 GB
LFM2.5-2.6B-Uncensored-Q5_K_M.gguf - Q5_K_M, 1.94 GB
LFM2.5-2.6B-Uncensored-Q5_K_S.gguf - Q5_K_S, 1.90 GB
LFM2.5-2.6B-Uncensored-Q6_K.gguf - Q6_K, 2.22 GB
LFM2.5-2.6B-Uncensored-Q8_0.gguf - Q8_0, 2.87 GB
Q4_K_M is the size/quality sweet spot. Q8_0 or BF16 if you want near-lossless and have the RAM.
Usage
1# Chat in the terminal
2llama-cli -m LFM2.5-2.6B-Uncensored-Q4_K_M.gguf -ngl 99 --jinja
3
4# OpenAI-compatible server
5llama-server -m LFM2.5-2.6B-Uncensored-Q4_K_M.gguf -ngl 99 --ctx-size 8192 --jinja
Always pass --jinja so the model's own chat template is used.
Caveats
This model has had its refusal behaviour removed. It will attempt to answer requests that the
original model declines, and it has no safety guardrails. You are responsible for how you use it.
Abliteration can also make a model more compliant with any framing, including incorrect premises,
so verify factual output as you would with any small model.
Inherits the
LFM Open License v1.0
from the base model.