Tools of the field
Every abliterated model is built with someone's toolchain. This is the catalog of that toolchain: the 12 tools the practitioner-community has converged on across extract, ablate, heal, evaluate, and infra stages. Each entry names the maintainer, describes what the tool actually does, and points at the canonical way to use it. Where a tool has been contested by published critique (OBLITERATUS), the caveat is on the card, not hidden.
Read this page as a map, not a tutorial. The Practical how-to is the tutorial; the tool cards below tell you which tool to reach for at which stage.
Extract
TransformerLens
ActiveThe library the Arditi paper and most subsequent mechanistic-interpretability work is built on. Not an abliteration tool per se, but the substrate that makes hidden-state extraction, direction analysis, and layer-wise inspection ergonomic. If you are extending abliteration research - building multi-directional ablation, custom direction extractors, or measurement suites - this is where you work.
pip install transformer_lens; load a model with `HookedTransformer.from_pretrained("meta-llama/Llama-3-8B")`; hook into residual stream, attention patterns, or MLP activations at any layer. Extensive tutorial notebooks in the repo.
Not every base model is supported out of the box. Check the models list before assuming your target is available.
Ablate
abliterator
ReferenceThe earlier abliteration codebase that most 2024 English-language tutorials used before Heretic superseded automated runs. Notebook-format, exploratory in character. Its lasting contribution to the field is the FailSpy token trick - running extraction on the position of the first response token rather than the last input token, which produced cleaner directions on Llama-2 and Mistral. Many current tutorials still cite this trick as best practice.
Clone, open the notebook, walk through cells one at a time. Suited for practitioners who want to see the intermediate tensors and understand each step, not for batch runs.
For batch or Pareto-front exploration, use Heretic. This is the exploratory version.
Heretic
ActiveThe current state-of-the-art automated ablation tool. Runs dozens of ablation trials with different layer selections and directional weights, jointly minimising refusal rate and KL divergence versus the base model. Publishes the Pareto front and lets you pick the trial that fits your intended trade-off. Introduced the interpolated float direction-index (allowing direction position between integer layers) and standardised the practice of reporting both refusal count and KL divergence as first-class metrics.
Install with pip, point at a Hugging Face model, run `heretic --model <id> --n-trials 200`. Consumer hardware: 45 min for 8B, 60 min for 12B on RTX 3090. Does not support pure SSM or hybrid Mamba architectures as of current release.
The default n_trials=50 is fine for exploration but 200 is the point where the KL-versus-refusal Pareto front stops improving meaningfully. Korean-community skeptics have documented cases where automated tools degrade capability more than they remove refusal - read the /wiki/non-english-communities/ Korean section before treating any one-click abliteration as production-ready.
huihui-ai toolchain
ActiveNot a released public tool, but a documented internal toolchain built on Sumandora that adds two innovations: layer-window ablation (ablate only the middle 30-40 layers, leave earliest and latest untouched) and non-standard GGUF requantization (`llama-quantize --allow-requantize --tensor-type-file` promoting specific ablation-target tensors to higher precision). The techniques are documented in model cards and have spread outward. See /wiki/huihui-ai-models-explained/ for the full producer profile.
Not directly installable. Read the huihui-ai model cards for the parameters; port the ideas into your own Sumandora-based or Heretic-based pipeline.
OBLITERATUS
ContestedA GUI wrapper around the standard ablation pipeline that reached wider audiences than most CLI tools because of its one-click framing. Received substantive published critique from the Korean community (Jaehong on Wikidocs) summarising Hacker News concerns that it degraded core language ability rather than only refusals - the tool did not surface KL divergence as a first-class metric, which is what practitioners now use to catch that failure mode.
Not recommended as a production dependency without your own KL-versus-refusal validation. If you use it, run lm-evaluation-harness before and after and treat the outputs as a first pass rather than a finished model.
Read /wiki/non-english-communities/#korean and the Wikidocs critique at wikidocs.net/blog/@jaehong/8813 before adopting.
remove-refusals-with-transformers
ReferenceThe canonical open-source implementation of the direction-extraction and orthogonal-projection ablation described in the Arditi paper. Not a polished CLI tool - a working Python codebase you clone, understand, and adapt. The huihui-ai model cards credit this as the base implementation their extensions build on. If you want to know exactly what abliteration does at the tensor level, this is the codebase to read.
Clone the repo, edit the config to point at your base model and extraction pair, run the extraction script and then the ablation script. Expects familiarity with transformers, torch, and the Arditi method conceptually.
Not designed for one-command use. Not maintained as a package. Read the DeepWiki summary at deepwiki.com/Sumandora/remove-refusals-with-transformers alongside the source.
Heal
Axolotl (with mlabonne LazyAxolotl configs)
ActiveThe general-purpose LLM fine-tuning framework the abliteration community has standardised on for the heal stage. mlabonne publishes LazyAxolotl configs (chatml_dpo, orpo_llama3, etc.) that are ready to use with `rl: dpo` or `rl: orpo` and the reference orpo-dpo-mix-40k dataset. Also handles LoRA and QLoRA for the M4-hybrid recipe.
Install axolotl, download an mlabonne LazyAxolotl config as the template, edit the model_name to point at your abliterated base, run `accelerate launch -m axolotl.cli.train <config>.yml`. A full 40k ORPO pass on an 8B model takes a few GPU-hours.
Template mismatch is the most common failure mode. Gemma and Llama use different chat templates than ChatML - check the model card before using the reference config verbatim.
trl (Transformer Reinforcement Learning)
ActiveThe library that implements DPOTrainer, ORPOTrainer, and KTOTrainer. Axolotl uses trl internally; if you are running DPO healing without Axolotl, this is the direct path. Well-documented and stable.
pip install trl datasets accelerate bitsandbytes; `python -m trl dpo --model_name <base> --dataset_name mlabonne/orpo-dpo-mix-40k-flat --learning_rate 5e-7 --num_train_epochs 1 --bf16`.
Evaluate
lm-evaluation-harness
ActiveThe benchmark runner every abliteration release cites. Standard practice is to report MMLU, ARC, HellaSwag, GSM8K (which always lags) before and after ablation plus healing. Also implements TruthfulQA and Winogrande. Not opinionated about abliteration; it just runs benchmarks reproducibly.
pip install lm-eval; `lm_eval --model hf --model_args pretrained=<your-model> --tasks mmlu,arc_challenge,hellaswag,gsm8k --batch_size 8`. Takes a few hours on a single GPU for a full pass.
These benchmarks tell you if capability is preserved; they do not tell you if refusal was actually removed. Pair with an ASR/ORR judge panel and a KL comparison versus the base.
Fine-tune
mergekit
ActiveThe community-standard merging tool. Relevant to abliteration because M5 (merging with mergekit) is one of the eight methods in the classifier - practitioners merge an abliterated model back with its base or with a healed variant to recover capability while keeping the ablation. The mlabonne NeuralDaredevil pipeline uses mergekit to combine an abliterated Llama with the healed DPO variant.
Install mergekit, write a YAML config specifying models, merge method, and parameters, run `mergekit-yaml config.yml output/`. Requires enough disk for all input models simultaneously.
A merge can silently reintroduce refusal if the abliteration weight in the merge is low. Test on the same refusal probes you used to validate the ablation before publishing.
Infra
llama.cpp
ActiveThe reference GGUF quantization and inference engine. Every abliterated model that ships as a GGUF was quantised through llama.cpp. The Japanese community documented the Gemma CJK tokeniser problem here (multi-byte tokens dropping mid-completion on abliterated Gemma) and the standard workaround is a llama.cpp tokeniser patch plus generation parameters `temperature=1.0, top_k=64, top_p=0.95`.
Clone, build, use `llama-quantize` to convert HF safetensors to GGUF, use `llama-cli` or the server binary for inference.
Check the model card for tokeniser and generation parameter recommendations. Abliterated Gemma in particular is sensitive to defaults.
repeng
ActiveNot abliteration in the weight-editing sense - repeng generates control vectors from contrastive prompt pairs and applies them at inference. The relationship to abliteration: same difference-of-means extraction idea, applied as a runtime steering vector instead of a permanent weight edit. Useful for prototyping which directions might be worth ablating permanently, and for reversible experimentation on models you cannot re-download and modify.
pip install repeng; build a control vector from a prompt pair, apply it during generation with a strength coefficient. See the repo README for the canonical example.
A steering vector is not a permanent ablation. If you want the behaviour change to survive quantisation and redistribution, you need weight editing.
What is not here. Prompt-level jailbreak tools (running against served models, not editing weights) are out of scope for this catalog. So are the general-purpose LLM training frameworks (transformers, deepspeed, unsloth) that are used by everyone regardless of whether the target is abliteration. And tools that once mattered but have been superseded (older direction-extraction scripts pre-Sumandora) are omitted rather than marked deprecated, since keeping every historical tool would make the catalog less useful.
Missing one you use? If a working tool belongs here and is missing, the omission is not a judgment - it is a gap. Contact via the links in the site footer.