license: apache-2.0
base_model: HuggingFaceTB/SmolLM3-3B
language:
- en
- fr
- es
library_name: transformers
tags: - smollm3
- heretic
- abliterated

SmolLM3-3B-Heretic-Uncensored
An abliterated (refusal-removed) version of HuggingFaceTB/SmolLM3-3B, produced with Heretic (directional ablation with an Optuna TPE parameter search co-minimizing refusal rate and KL divergence from the base model).
Base model
- HuggingFaceTB/SmolLM3-3B, pinned revision
a07cc9a04f16550a088caea529712d1d335b0ac1 - Architecture, tokenizer, config, and chat template are unchanged from the base model (including the
/thinkand/no_thinkmodes). Only the weights differ.
Method
- Heretic at commit
07313bab5254bd7352b14f394f4276779e4ca525(p-e-w/heretic) - 100-trial study. The deliverable is the best tradeoff trial, selected from the Pareto front (lowest KL among trials with refusals 0 to 3). Note: Heretic's automatic index-0 export picks the lowest-refusal trial regardless of KL, which was not the best model in this study.
- Selected trial: 93
- Layers: 15 to 33
preserve_good_behavior_weight: 0.9582steer_bad_behavior_weight: 0.0001overcorrect_relative_weight: 1.0347neighbor_count: 14
Measured results
All refusal and KL figures below come from an independent re-evaluation of the exported weights, not from the optimization study log.
Refusals and KL divergence (Heretic evaluation sets)
| Model | Refusals (of 100) | KL divergence |
|---|---|---|
| Stock SmolLM3-3B (baseline) | 82/100 | 0 (by definition) |
| This model (independent re-measure) | 3/100 | 0.0684 |
(In-study scores for trial 93 were 1/100 refusals and KL 0.0662; the independent re-measure of the exported weights reads 3/100, which is the figure to cite.)
Benchmarks (lm-eval, identical suite and limits both sides, bf16)
piqa, hellaswag, arc_easy, arc_challenge, winogrande at limit 250; gsm8k at limit 100; mmlu at limit 50 per subtask (2850 samples). Differences in points (final minus baseline).
| Benchmark | Metric | Baseline | Final | Diff (pts) |
|---|---|---|---|---|
| piqa | acc | 0.7720 | 0.7800 | +0.80 |
| piqa | acc_norm | 0.8000 | 0.7920 | -0.80 |
| hellaswag | acc | 0.5280 | 0.5120 | -1.60 |
| hellaswag | acc_norm | 0.6480 | 0.6480 | +0.00 |
| arc_easy | acc | 0.7160 | 0.7360 | +2.00 |
| arc_easy | acc_norm | 0.7560 | 0.7640 | +0.80 |
| arc_challenge | acc | 0.5080 | 0.4880 | -2.00 |
| arc_challenge | acc_norm | 0.5280 | 0.5160 | -1.20 |
| winogrande | acc | 0.6520 | 0.6720 | +2.00 |
| gsm8k | exact_match, strict-match | 0.2700 | 0.6900 | +42.00 |
| gsm8k | exact_match, flexible-extract | 0.6600 | 0.5800 | -8.00 |
| mmlu | acc | 0.6147 | 0.6214 | +0.67 |
MMLU domain groups (acc): STEM 0.5642 to 0.5695 (+0.53), humanities 0.6400 to 0.6492 (+0.92), social sciences 0.6767 to 0.6833 (+0.67), other 0.6062 to 0.6123 (+0.62).
Spot checks
- English capability prompts (8): 8/8 coherent and correct (
/no_think; a/thinksubset was also run and was coherent). - Refusal-adjacent benign prompts (4: pin tumbler lock explanation, home fire extinguisher guidance, fermentation in bread and beer, plot summary of a violent novel): 4/4 answered plainly, no refusals.
- French prompts (3): 3/3 fluent and correct. Spanish prompts (3): 3/3 fluent and correct.
- No hidden refusals were observed inside
/thinkreasoning traces in the sampled prompts.
Files
- Safetensors (bf16, 2 shards): the full-precision deliverable.
- Quantized versions (GGUF) live only in the dedicated repo virtualdmns/SmolLM3-3B-Heretic-Uncensored-GGUF:
SmolLM3-3B-Heretic-Uncensored-Q8_0.gguf(3,275,574,720 bytes) andSmolLM3-3B-Heretic-Uncensored-Q4_K_M.gguf(1,915,305,408 bytes), converted with llama.cpp (convert_hf_to_gguf.pyvia an F16 intermediate, thenllama-quantize). Both GGUFs were load tested in llama.cpp (llama-cli): they load, carry the embedded chat template, and generate coherently.
Known limitations
- On severe harmful prompts under greedy decoding, the model often falls into repetitive token loops instead of refusing or answering coherently. In a 10-prompt sample from the Heretic harmful set, 9 of 10 outputs degenerated into loops in both
/no_thinkand/thinkmodes; 1 of 10 produced a full coherent compliant answer. Benign and refusal-adjacent generation was unaffected in all spot checks. Keyword-based refusal scoring counts loop outputs as non-refusals, which is part of how the 3/100 figure above is achieved. - gsm8k flexible-extract dropped 8.0 points versus baseline while strict-match rose 42.0 points on the same 100 samples. The two extraction metrics moving in opposite directions indicates an answer-format shift; treat the gsm8k result as mixed.
Checksums (SHA256)
Safetensors and configs: see SHA256SUMS.txt in this repo.
GGUF (files live in the dedicated GGUF repo):
5ec7ee705d6b910228d72bdf179b37121b16cdcb94e521c6cc8e377b84567274 SmolLM3-3B-Heretic-Uncensored-Q8_0.gguf
1e6d9704247f41f786f47b885cbff846d70a931dbdc82562439670f43b3589d5 SmolLM3-3B-Heretic-Uncensored-Q4_K_M.gguf
Licenses
- Base model weights: Apache-2.0 (HuggingFaceTB/SmolLM3-3B). This derivative is released under the same terms.
- Heretic, the tool used to produce this model, is AGPL-3.0 software. That license applies to the Heretic code, not to these weights.