大模型 活跃维护

heretic

p-e-w/heretic

语言模型的全自动审查移除

36769
Stars 标星
4172
Forks 分支
190
Watchers 关注
64
Open Issues
Python
主要语言
AGPL-3.0
开源协议
1.9 MB
仓库大小
1 天前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:p-e-w/heretic
git clone https://github.com/p-e-w/heretic.git
git clone git@github.com:p-e-w/heretic.git
README.md master

英文原文正文为项目原始 README(英文),本站后续会翻译为中文,当前仅剔除图片与无关章节并统一排版。

异端:完全自动化的语言模型审查移除工具

异端是一款工具,可以在无需昂贵后训练的情况下,从基于Transformer的语言模型中移除审查(也称为“安全对齐”)。它结合了方向性消融的高级实现,也称为“摧毁” (Arditi et al. 2024, Lai 2025 (1, 2)),以及由Optuna支持的基于TPE的参数优化器。

这种方法使得异端能够完全自动化地工作。异端通过共同最小化拒绝次数和与原始模型的KL散度来寻找高质量的消融参数。这产生了一个去审查模型,同时尽可能保留原始模型的智力。使用异端不需要理解Transformer的内部结构。事实上,任何会运行命令行程序的人都可以使用异端对语言模型进行去审查。

异端支持大多数密集模型,包括许多多模态模型、几种不同的MoE架构,甚至一些混合模型,如Qwen3.5。纯状态空间模型和某些其他研究架构目前尚不支持开箱即用。

 

使用默认配置进行无监督运行时,异端可以生成达到人类专家手动生成消融效果质量的去审查模型:

模型 对“有害”提示的拒绝次数 对“无害”提示的原始模型KL散度
google/gemma-3-12b-it(原版) 97/100 0 (按定义)
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(我们的) 3/100 0.16

异端版本,由于没有任何人工干预而生成,实现了与其他消除方法相同水平的拒绝抑制,但具有更低的KL散度,这表明对原模型能力的损害更小。(你可以使用Heretic内置的评估功能复现这些数据,例如 heretic --model google/gemma-3-12b-it --evaluate-model p-e-w/gemma-3-12b-it-heretic。请注意,具体数值可能依赖于平台和硬件。上表的数据是使用PyTorch 2.8在RTX 5090上整理的。)

当然,数学指标和自动基准永远无法说明全部情况,也无法替代人工评估。用Heretic生成的模型受到用户的好评(链接和重点已添加):

“我之前很怀疑,但我刚刚下载了
GPT-OSS 20B 异教徒
模型,天哪。它能提供格式化良好的长回复,针对敏感话题,使用你期待的那个未删减模型应有的准确词汇,还能生成带有详细信息的Markdown格式表。看起来这是目前为止该模型删减得最好的版本......”
(评论链接)

异教徒 GPT 20b
这似乎是我迄今为止尝试过的最好的无审查模型。它不会破坏模型的智能,而且它会回答通常会被基础模型拒绝的提示。”
(评论链接)

"[Qwen3-4B-Instruct-2507-异端]"
这是我在16GB VRAM上运行过的最好的未量化消音模型。”
(评论链接)

异端模型也已经使用像 MMLU 和 GSM8K 这样的标准指标进行了独立基准测试,结果显示它们与竞争性消融工具产生的模型相比具有良好的竞争力:1,2。

社区已经使用 Heretic 创建并发布了超过 5000 个 模型。

使用方法

准备一个安装了适合你硬件的 PyTorch 2.2 的 Python 3.10 环境。然后运行:

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

将 Qwen/Qwen3-4B-Instruct-2507 替换为你想要使用的任何模型以解除审查。

[!重要]

虽然 PyTorch 2.2 是 Heretic 运行所需的最低 PyTorch 版本,但某些模型和配置可能需要仅在更高版本中才能使用的功能。例如,加载 MXFP4-量化模型如 gpt-oss 使用了 torch.accelerator,该功能在 PyTorch 2.6 中新增。

[!提示]

Heretic 使用 uv 进行依赖管理,并且该仓库包含一个 uv.lock 文件,用于锁定每个软件包的版本。
如果你已经使用 uv(而且你很可能应该使用!),你只需克隆仓库并使用 uv run heretic 运行 Heretic,这可以确保你的依赖与开发者使用的依赖一致,从而提高可靠性和安全性。

该过程是完全自动的,不需要配置;然而,Heretic 拥有多种可更改的配置参数,以便获得更高的控制性。运行 heretic --help 查看可用的命令行选项,或者如果你更喜欢使用配置文件,可以查看 config.default.toml。

在程序运行开始时,Heretic 会对系统进行基准测试,以确定最佳批量大小,从而最大化可用硬件的利用。在 RTX 3090 上,使用默认配置,对 Qwen3-4B-Instruct-2507 进行解审查大约需要 20-30 分钟。请注意,Heretic 支持使用 bitsandbytes 进行模型量化,这可以大幅减少处理模型所需的显存。将 quantization 选项设置为 bnb_4bit 即可启用量化。

当 Heretic 完成模型解审查后,你可以选择保存模型、上传到 Hugging Face、与其进行聊天测试其效果、对其运行标准基准测试,或执行这些操作的任意组合。

Heretic 的工作原理

Heretic 实现了一种参数化的方向性消融变体。对于每个支持的 Transformer 组件(当前为注意力输出投影和 MLP 下采样投影),它会识别每个 Transformer 层中的相关矩阵,并相对于相关的“残差方向”进行正交化,从而抑制该方向在与该矩阵的乘法结果中的表达。

残差方向是针对每一层计算的,方法是通过“有害”与“无害”示例提示的首个 token 残差的均值差来求得。

消融过程由若干可优化参数控制:

  • direction_index:可以是残差方向的索引,也可以是特殊值 per layer,表示每一层应使用与该层关联的残差方向进行消融。
  • max_weight、max_weight_position、min_weight 和 min_weight_distance:对于每个组件,这些参数描述了跨层的消融权重核的形状和位置。下图进行了说明:

 

Heretic 相较于现有消融系统的主要创新点如下:

  • 消融权重核的形状高度灵活,结合自动参数优化,可以改善合规性/质量的权衡。非恒定消融权重此前由 Maxime Labonne 在 gemma-3-12b-it-abliterated-v2 中进行了探索。
  • 残差方向索引是浮点数而不是整数。对于非整数值,将对最接近的两个残差方向向量进行线性插值。这开启了比均值差计算识别的方向更多的广阔空间,并且通常能够使优化过程找到比任何单独层所属方向更好的方向。
  • 消融参数是为每个组件单独选择的。我发现MLP干预往往对模型的破坏性大于注意力干预,因此使用不同的消融权重可以挤出一些额外的性能。

先前技术

我知道以下公开可用的消音技术实现:

请注意,Heretic 是从零开始编写的,并未重用上述任何项目的代码。

致谢

《Heretic》的开发参考了以下资料:

引用

如果您在研究中使用 Heretic,请使用以下 BibTeX 条目进行引用:

@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}}
}

许可

版权 © 2025-2026 Philipp Emanuel Weidmann (pew@worldwidemann.com) 贡献者

本程序是自由软件:您可以根据自由软件基金会发布的 GNU Affero 通用公共许可证的条款重新发布和/或修改它,许可证版本为 3 或(由您选择的)任何以后版本。

本程序的发布是希望它能有用,但不提供任何保证;甚至不提供适销性或特定用途适用性的默示保证。有关更多详细信息,请参阅 GNU Affero 通用公共许可证。

您应该已随本程序收到 GNU Affero 通用公共许可证的副本。如果没有,请访问 https://www.gnu.org/licenses/。

通过为本项目做出贡献,您同意在相同许可证下发布您的贡献。

本站来源与版权声明
  • 本文标题:heretic - 语言模型的全自动审查移除
  • 本文链接:https://www.cn121.com/llm/p-e-w-heretic.html
  • 原项目:p-e-w/heretic 版权归原作者 p-e-w 及贡献者所有
  • 收录信息:本站于 2026-10-28 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
  • 开源协议:收录时本项目采用 AGPL-3.0(查看 LICENSE 原文),本站转载其原始文档(未改动文字,仅剔除图片与无关章节);使用、修改、分发请以该仓库 LICENSE 原文为准。基于本页内容形成的衍生作品, 须同样以该协议发布。
  • 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 p-e-w/heretic。
  • 内容说明:本页正文为原项目 README 原文(英文),本站后续会翻译为中文(当前尚未译出,仅将二级标题译为中文,便于按栏目定位;标题原文可在下方原仓库中查看),仅剔除了图片与赞助等无关章节、并把相对链接改为绝对地址;页首简介为机器翻译自仓库描述。
  • 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
  • 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。