TOOLS

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

Active
Neel Nanda et al. · Python
Mechanistic interpretability toolkit - hidden state inspection

The 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.

Use it

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.

Caveats

Not every base model is supported out of the box. Check the models list before assuming your target is available.

Ablate

abliterator

Reference
FailSpy · Python (notebook) · Used in 1 recipe
Jupyter notebook for layerwise ablation exploration

The 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.

Use it

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.

Caveats

For batch or Pareto-front exploration, use Heretic. This is the exploratory version.

Heretic

Active
p-e-w (Piotr Węgrzyn) · Python · Used in 4 recipes
Automated end-to-end abliteration with Optuna TPE hyperparameter search

The 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.

Use it

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.

Caveats

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

Active
huihui-ai (anonymous Chinese producer) · Python + shell
Layer-window ablation and GGUF requantization pipeline

Not 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.

Use it

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

Contested
contested (see caveats) · Python (GUI)
One-click GUI abliteration wrapper

A 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.

Use it

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.

Caveats

Read /wiki/non-english-communities/#korean and the Wikidocs critique at wikidocs.net/blog/@jaehong/8813 before adopting.

remove-refusals-with-transformers

Reference
Sumandora · Python · Used in 2 recipes
Reference implementation of orthogonal-projection abliteration

The 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.

Use it

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.

Caveats

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)

Active
axolotl-ai-cloud + mlabonne · Python (YAML configs) · Used in 3 recipes
DPO/ORPO fine-tuning framework - the standard heal stage tool

The 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.

Use it

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.

Caveats

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)

Active
Hugging Face · Python · Used in 2 recipes
Reference DPO/ORPO trainer library

The 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.

Use it

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

Active
EleutherAI · Python · Used in 3 recipes
Benchmark suite for MMLU, ARC, HellaSwag, GSM8K, TruthfulQA, and more

The 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.

Use it

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.

Caveats

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

Active
arcee-ai · Python (YAML configs) · Used in 1 recipe
Model merging (SLERP, TIES, DARE, task-arithmetic)

The 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.

Use it

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.

Caveats

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

Active
ggerganov et al. · C/C++
GGUF quantization, CPU/GPU inference, tokenizer handling

The 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`.

Use it

Clone, build, use `llama-quantize` to convert HF safetensors to GGUF, use `llama-cli` or the server binary for inference.

Caveats

Check the model card for tokeniser and generation parameter recommendations. Abliterated Gemma in particular is sensitive to defaults.

repeng

Active
vgel (Theia Vogel) · Python
Control-vector generation and application at inference time

Not 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.

Use it

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.

Caveats

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.

Catalog is the map. Apps are the tools.

Run models on your own machine, not in the cloud.

Every model page has an "Open in Abliteration" button that hands the model directly to the first-party desktop client, at the quantization your rig can actually run. No API keys, no subscription, no prompt leakage.

Open in Abliteration