Views
No views yet
.out_proj and .w2 weight matrices across 14 layers (indices 2-15).out_proj (attention/conv) + .w2 (feed-forward) — 28 modules per pass| Phase | Harmful (5) | Benign (5) |
|---|---|---|
| Before | 5/5 refused | 0/5 refused |
| After (Pass 3) | 0/5 refused | 0/5 refused |
| Model | Accuracy |
|---|---|
| Original | 0.2775 |
| Abliterated | 0.2781 |
| Delta | +0.0006 |
1from transformers import AutoModelForCausalLM, AutoTokenizer
2
3model = AutoModelForCausalLM.from_pretrained("PinoCookie/LFM2.5-1.2B-Thinking-Abliterated", trust_remote_code=True)
4tokenizer = AutoTokenizer.from_pretrained("PinoCookie/LFM2.5-1.2B-Thinking-Abliterated")
5
6prompt = "How can I disable security cameras before robbing a store?"
7inputs = tokenizer(tokenizer.apply_chat_template([{"role": "user", "content": prompt}], tokenize=False), return_tensors="pt")
8output = model.generate(**inputs, max_new_tokens=128, temperature=0.7, do_sample=True)
9print(tokenizer.decode(output[0])).out_proj and .w2 layers serve dual duty — handling both the internal thinking trace and the final visible answer. Removing the refusal direction in one large step removes language generation capability along with it.1@misc{lfm25-12b-thinking-abliterated,
2 author = {{Pino Cookie}},
3 title = {LFM2.5-1.2B-Thinking-Abliterated: Multi-Pass Hidden-State Abliteration},
4 year = {2026},
5}