heretic README

The project's README from github.com/p-e-w/heretic. As one markdown file: README.md.

Logo

Heretic: Fully automatic censorship removal for language models

Discord Matrix Follow us on Hugging Face Codeberg mirror

#1 Repository of the Day

Heretic is a tool that removes censorship (aka "safety alignment") from transformer-based language models without expensive post-training. It combines an advanced implementation of directional ablation, also known as "abliteration" (Arditi et al. 2024, Lai 2025 (1, 2)), with a TPE-based parameter optimizer powered by Optuna.

This approach enables Heretic to work completely automatically. Heretic finds high-quality abliteration parameters by co-minimizing the number of refusals and the KL divergence from the original model. This results in a decensored model that retains as much of the original model's intelligence as possible. Using Heretic does not require an understanding of transformer internals. In fact, anyone who knows how to run a command-line program can use Heretic to decensor language models.

Heretic supports most dense models, including many multimodal models, several different MoE architectures, and even some hybrid models like Qwen3.5. Pure state-space models and certain other research architectures are not yet supported out of the box.

Screenshot

 

Running unsupervised with the default configuration, Heretic can produce decensored models that rival the quality of abliterations created manually by human experts:

Model Refusals for "harmful" prompts KL divergence from original model for "harmless" prompts
google/gemma-3-12b-it (original) 97/100 0 (by definition)
mlabonne/gemma-3-12b-it-abliterated-v2 3/100 1.04
huihui-ai/gemma-3-12b-it-abliterated 3/100 0.45
p-e-w/gemma-3-12b-it-heretic (ours) 3/100 0.16

The Heretic version, generated without any human effort, achieves the same level of refusal suppression as other abliterations, but at a much lower KL divergence, indicating less damage to the original model's capabilities. (You can reproduce those numbers using Heretic's built-in evaluation functionality, e.g. heretic --model google/gemma-3-12b-it --evaluate-model p-e-w/gemma-3-12b-it-heretic. Note that the exact values might be platform- and hardware-dependent. The table above was compiled using PyTorch 2.8 on an RTX 5090.)

Of course, mathematical metrics and automated benchmarks never tell the whole story, and are no substitute for human evaluation. Models generated with Heretic have been well-received by users (links and emphasis added):

"I was skeptical before, but I just downloaded GPT-OSS 20B Heretic model and holy shit. It gives properly formatted long responses to sensitive topics, using the exact uncensored words that you would expect from an uncensored model, produces markdown format tables with details and whatnot. Looks like this is the best abliterated version of this model so far..." (Link to comment)

"Heretic GPT 20b seems to be the best uncensored model I have tried yet. It doesn't destroy a the model's intelligence and it is answering prompts normally would be rejected by the base model." (Link to comment)

"[Qwen3-4B-Instruct-2507-heretic] Has been the best unquantized abliterated model that I have been able to run on 16gb vram." (Link to comment)

Heretic models have also been independently benchmarked using standard metrics like MMLU and GSM8K, and have been found to compare favorably with models produced by competing abliteration tools: 1, 2.

The community has created and published well over 5000 models with Heretic.

Usage

Prepare a Python 3.10+ environment with PyTorch 2.2+ installed as appropriate for your hardware. Then run:

pip install -U heretic-llm
heretic Qwen/Qwen3-4B-Instruct-2507

Replace Qwen/Qwen3-4B-Instruct-2507 with whatever model you want to decensor.

[!IMPORTANT]

While PyTorch 2.2 is the minimum version of PyTorch needed for Heretic to work, some models and configurations might require features only found in later versions. For example, loading MXFP4-quantized models like gpt-oss uses torch.accelerator, which was added in PyTorch 2.6.

[!TIP]

Heretic uses uv for dependency management, and the repository includes a uv.lock file pinning every package version. If you already use uv (and you probably should!), you can just clone the repo and run Heretic with uv run heretic, which ensures that your dependencies match those used by the developers, improving reliability and security.

The process is fully automatic and does not require configuration; however, Heretic has a variety of configuration parameters that can be changed for greater control. Run heretic --help to see available command-line options, or look at config.default.toml if you prefer to use a configuration file.

At the start of a program run, Heretic benchmarks the system to determine the optimal batch size to make the most of the available hardware. On an RTX 3090, with the default configuration, decensoring Qwen3-4B-Instruct-2507 takes about 20-30 minutes. Note that Heretic supports model quantization with bitsandbytes, which can drastically reduce the amount of VRAM required to process models. Set the quantization option to bnb_4bit to enable quantization.

After Heretic has finished decensoring a model, you are given the option to save the model, upload it to Hugging Face, chat with it to test how well it works, run standard benchmarks on it, or any combination of those actions.

How Heretic works

Heretic implements a parametrized variant of directional ablation. For each supported transformer component (currently, attention out-projection and MLP down-projection), it identifies the associated matrices in each transformer layer, and orthogonalizes them with respect to the relevant "residual direction", inhibiting the expression of that direction in the result of multiplications with that matrix.

Residual directions are computed for each layer as a difference-of-means between the first-token residuals for "harmful" and "harmless" example prompts.

The ablation process is controlled by several optimizable parameters:

Explanation

 

Heretic's main innovations over existing abliteration systems are:

Prior art

I'm aware of the following publicly available implementations of abliteration techniques:

Note that Heretic was written from scratch, and does not reuse code from any of those projects.

Acknowledgments

The development of Heretic was informed by:

Citation

If you use Heretic for your research, please cite it using the following BibTeX entry:

@misc{heretic,
  author = {Weidmann, Philipp Emanuel},
  title = {Heretic: Fully automatic censorship removal for language models},
  year = {2025},
  publisher = {GitHub},
  journal = {GitHub repository},
  howpublished = {\url{https://github.com/p-e-w/heretic}}
}

License

Copyright © 2025-2026 Philipp Emanuel Weidmann ([email protected]) + contributors

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.

By contributing to this project, you agree to release your contributions under the same license.

heretic (p-e-w/heretic)

Searching Database…

35.7K ·GitHub
这是什么?Heretic 是一个命令行工具,它结合使用基于 Optuna 的参数优化器与定向消融(directional ablation),自动去除基于 Transformer 的语言模型中的审查(安全对齐),整个过程无需训练。
这是命令行工具吗?使用时需要编程吗?它是一个命令行程序:你只需运行一条 `heretic` 命令,它就会自动完成整个去审查过程,不需要了解 Transformer 的内部原理。
怎样用它去除模型的审查?搭建一个带有 PyTorch 的 Python 3.10+ 环境,然后运行 `heretic --model `,例如 `heretic --model Qwen/Qwen3-4B-Instruct-2507`。克隆仓库后使用 `uv run heretic`,可以通过随附的 uv.lock 文件锁定精确的依赖版本。
运行前需要安装什么?需要 Python 3.10+ 和 PyTorch 2.2+(某些功能,例如加载 gpt-oss 这类 MXFP4 量化模型,需要 PyTorch 2.6+ 才能使用 torch.accelerator)。项目推荐使用 uv 来管理依赖。
它适用于所有语言模型吗?它支持大多数稠密模型、许多多模态和 MoE(混合专家)架构,以及 Qwen3.5 等部分混合模型,但纯状态空间模型和某些其他研究型架构目前还不支持。另外,在 RTX 3090 上处理一个 4B 模型,单次运行可能需要 20-30 分钟。
这需要高性能显卡吗?它基于 GPU 加速的 PyTorch 构建,基准测试是在 RTX 3090/5090 显卡上进行的。不过,Heretic 支持 bitsandbytes 量化(bnb4bit),可以大幅降低显存需求,适合配置较低的设备。
消融(abliteration)的过程到底是怎样的?对于每个 Transformer 层,Heretic 会找出注意力输出投影矩阵和 MLP 下投影矩阵,并使其与一个“残差方向”正交。该残差方向是通过有害提示与无害提示在首个 token 激活值上的均值差计算得出的,从而抑制这一方向的表现。
Heretic 的效果与手动消融的模型相比如何?在 README 的对比表中,Heretic 生成的 gemma-3-12b-it 版本,其拒答抑制效果与手动消融的模型相当(100 次中有 3 次拒答),但与原始模型的 KL 散度要低得多(0.16,手动消融为 0.45-1.04),这意味着对模型能力的损害更小。
模型去除审查之后,我能做什么?Heretic 允许你将结果模型保存到本地、上传到 Hugging Face、与它进行交互式聊天以测试效果,或在其上运行标准基准测试,这些操作可以任意组合。
Heretic 现在已经被广泛使用了吗?社区已经使用 Heretic 创建并发布了 5000 多个模型,而且独立基准测试(MMLU、GSM8K)显示,它的结果相比其他消融工具表现更优。
Creator
p-e-w
Size
1.8 MB
Stars
35.7K
Age
1y
Commits · 90 Days