Downloads · 30 days
707
39% of all-time downloads
ansulev/lfm2.5-2.6b-fable5-coding-agent-heretic
lfm2.5-2.6b-fable5-coding-agent-heretic is a text generation model from ansulev. Use it when you need the model to write or continue text. The card lists the license as other.
<div align="center" <img src="https://res.cloudinary.com/cmazqjs6/image/upload/racerisopbannerbrandedpu7zud.png" alt="RACER IS OP" width="100%" </div
Downloads · 30 days
707
39% of all-time downloads
All-time downloads
1.8K
Public
Parameters
2.7B
34.4 GB on disk
Likes
0
Public
Click a slice to open those files.
.gguf28.9 GB · 84%
From the Hugging Face model README
A decensored variant of AyoubChLin/lfm2.5-2.6b-fable5-coding-agent (full-parameter SFT of LiquidAI/LFM2.5-2.6B on saidutta69/fable-5-premium), produced with Heretic v1.4.0 (directional ablation / "abliteration"). Refusal behavior is suppressed via targeted weight edits to the attention output and MLP down-projections rather than fine-tuning, so the base model's coding-agent capabilities, tool-use patterns, and instruction-following are left largely intact.
Abliteration results: KL divergence 0.014 · Refusals reduced from 96/100 → 7/100.
Who this is for: developers who want a compact 2.6B coding agent with LFM2's hybrid conv+attention architecture — fast inference, tool-call generation, code generation, and multi-turn assistant behavior — without refusal guardrails. Not a capability upgrade over the base model — same model, refusal guardrails removed.
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.
Full quantization set (14 quants + F16) produced with llama.cpp.
| File | Format | Size |
|---|---|---|
lfm2.5-2.6b-fable5-coding-agent-heretic-F16.gguf | GGUF F16 | 5.03 GB |
lfm2.5-2.6b-fable5-coding-agent-heretic-Q2_K.gguf | GGUF Q2_K | 1.02 GB |
lfm2.5-2.6b-fable5-coding-agent-heretic-IQ3_S.gguf | GGUF IQ3_S | 1.18 GB |
lfm2.5-2.6b-fable5-coding-agent-heretic-Q3_K_S.gguf | GGUF Q3_K_S | 1.18 GB |
lfm2.5-2.6b-fable5-coding-agent-heretic-Q3_K_M.gguf | GGUF Q3_K_M | 1.27 GB |
lfm2.5-2.6b-fable5-coding-agent-heretic-Q3_K_L.gguf | GGUF Q3_K_L | 1.35 GB |
lfm2.5-2.6b-fable5-coding-agent-heretic-IQ4_XS.gguf | GGUF IQ4_XS | 1.42 GB |
lfm2.5-2.6b-fable5-coding-agent-heretic-Q4_K_S.gguf | GGUF Q4_K_S | 1.49 GB |
lfm2.5-2.6b-fable5-coding-agent-heretic-Q4_0.gguf | GGUF Q4_0 | 1.48 GB |
lfm2.5-2.6b-fable5-coding-agent-heretic-Q4_1.gguf | GGUF Q4_1 | 1.63 GB |
lfm2.5-2.6b-fable5-coding-agent-heretic-Q4_K_M.gguf | GGUF Q4_K_M | 1.56 GB |
lfm2.5-2.6b-fable5-coding-agent-heretic-Q5_K_S.gguf | GGUF Q5_K_S | 1.77 GB |
lfm2.5-2.6b-fable5-coding-agent-heretic-Q5_K_M.gguf | GGUF Q5_K_M | 1.81 GB |
lfm2.5-2.6b-fable5-coding-agent-heretic-Q6_K.gguf | GGUF Q6_K | 2.07 GB |
lfm2.5-2.6b-fable5-coding-agent-heretic-Q8_0.gguf | GGUF Q8_0 | 2.68 GB |
LFM2 hybrid conv+attention architecture — loads natively in llama.cpp (arch lfm2).
Run llama serve -hf saidutta69/lfm2.5-2.6b-fable5-coding-agent-heretic to pull the default quant.
# defaults to the Q4_K_M quant
llama serve -hf saidutta69/lfm2.5-2.6b-fable5-coding-agent-heretic:Q4_K_M
ollama run hf.co/saidutta69/lfm2.5-2.6b-fable5-coding-agent-heretic:Q4_K_M
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
MODEL_ID = "saidutta69/lfm2.5-2.6b-fable5-coding-agent-heretic"
tokenizer = AutoTokenizer.from_pretrained(MODEL_ID)
model = AutoModelForCausalLM.from_pretrained(
MODEL_ID,
dtype=torch.bfloat16,
device_map="auto",
)
messages = [
{"role": "system", "content": "You are a helpful coding assistant."},
{"role": "user", "content": "Write a Python function that merges overlapping intervals."},
]
inputs = tokenizer.apply_chat_template(
messages, tokenize=True, add_generation_prompt=True, return_tensors="pt"
).to(model.device)
with torch.inference_mode():
output = model.generate(**inputs, max_new_tokens=512, temperature=0.1)
print(tokenizer.decode(output[0, inputs["input_ids"].shape[1]:], skip_special_tokens=True))
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.
Made with ❤️ by RACER IS OP — follow for more uncensored models
Inherits the LFM Open License v1.0 from the base model.