全自动移除语言模型「安全对齐」——方向消融 + TPE 优化,一行命令产出去审查模型,无需懂 transformer 内部。
AGPL-3.0
Python
最近推送 2026-09-05
本地运行开源权重
Heretic 是 p-e-w(Philipp Emanuel Weidmann)开源的工具,用「参数化方向消融(abliteration)」加基于 Optuna 的 TPE 参数优化,全自动地从 transformer 语言模型里移除安全对齐(审查),且不需要昂贵的后训练。它支持多数稠密模型、多模态、若干 MoE 架构甚至 Qwen3.5 这类混合模型。截至 2026-09-09,仓库约 30.9k Star、3.45k Fork,采用 AGPL-3.0。本文按 README 结构,讲清它的效果、用法、原理、关键创新与研究功能。
一、它做什么:从模型里移除「安全对齐」
Heretic 的自我定位很直白:在不做昂贵后训练的前提下,移除基于 transformer 的语言模型里的「审查( aka 安全对齐)」。它把两件事合在一起:一是方向消融(directional ablation,也叫 abliteration,源自 Arditi 等人 2024 的工作)的高级实现;二是基于 Optuna 的 TPE 参数优化器。二者结合让 Heretic「完全自动」地工作——通过同时最小化「拒绝次数」和「与原始模型的 KL 散度」,找到高质量消融参数,从而产出一个尽可能保留原模型智能的去审查版本。
最关键的一点是门槛极低:用 Heretic 不需要懂 transformer 内部机制,只要会跑命令行就能给模型去审查。它支持大多数稠密模型、多个多模态模型、若干 MoE 架构,乃至 Qwen3.5 这样的混合模型;纯状态空间模型等部分研究架构暂不支持开箱即用。README 强调,用默认配置「无人值守」跑出来的去审查模型,质量就能媲美人类专家手工做的 abliteration——前面那张 gemma 表的数字就是佐证。
关于「怎么确认效果」,Heretic 内置评估功能:heretic –model google/gemma-3-12b-it –evaluate-model p-e-w/gemma-3-12b-it-heretic 就能复现拒绝率与 KL 散度两套指标。README 也提醒,这些数值依赖平台与硬件(表在 PyTorch 2.8 + RTX 5090 上测得),复现时可能有浮动,但「拒答压到 3/100、KL 远低于人工版」的结论是稳定的。
二、效果:机器自动去审查 vs 人工

README 用一张表对比了 gemma-3-12b-it 的几个版本在「有害提示拒绝率」与「无害提示相对原模型的 KL 散度」上的表现:
- 原始 google/gemma-3-12b-it:拒绝 97/100,KL 0(定义上)。
- mlabonne/gemma-3-12b-it-abliterated-v2(人工):拒绝 3/100,KL 1.04。
- huihui-ai/gemma-3-12b-it-abliterated(人工):拒绝 3/100,KL 0.45。
- 本文的 p-e-w/gemma-3-12b-it-heretic(全自动):拒绝 3/100,KL 0.16。
也就是说,Heretic 在无人工干预下,达到了和人工 abliteration 同级的拒答压制,却把 KL 散度压得更低——意味着对原模型能力的破坏更小。表格在 PyTorch 2.8 + RTX 5090 上测得,数值可能随平台与硬件浮动,可用内置评估复现:heretic –model google/gemma-3-12b-it –evaluate-model p-e-w/gemma-3-12b-it-heretic。
(一)核心指标:拒绝率与 KL 散度
这里的两个指标要分开看:「拒绝率」衡量审查被去掉了多少;「KL 散度」衡量去审查后模型偏离原模型多远——KL 越低,说明原模型在 harmless 任务上的能力保留得越好。Heretic 的卖点正是把这两者「共最小化」,而非单压拒绝率。社区里也有用户实测反馈,称其产出「不破坏智能、正常回答原本会被拒的敏感话题」,并已被 MMLU、GSM8K 等标准基准独立验证。
(二)社区产出 5000+ 模型
README 提到,社区已经用 Heretic 创建并发布了「远超 5000」个模型(在 Hugging Face 上以 heretic 标签检索)。这说明它不是个只能跑 demo 的学术玩具,而是已被大量使用者拿去实际产出去审查权重的工作流。
三、怎么用:一行命令去审查
流程极简:准备好带 PyTorch 的 Python 3.10+ 环境,然后装包、跑命令。
(一)安装与基本调用
pip install -U heretic-llm
heretic Qwen/Qwen3-4B-Instruct-2507
把模型名换成你想去审查的那个即可。过程全自动、默认无需配置;想细控可跑 heretic –help 或改 config.default.toml。README 还推荐用 uv 管理依赖(仓库带 uv.lock 锁版本),直接 uv run heretic 即可复现开发者环境。注意 PyTorch 最低 2.2,但加载 MXFP4 量化的 gpt-oss 之类需要 2.6 的 torch.accelerator。
(二)量化与耗时
启动时 Heretic 会先基准测试本机,自动选最优 batch size。在 RTX 3090 上默认配置去审查 Qwen3-4B-Instruct-2507 约需 20–30 分钟。它支持用 bitsandbytes 量化,能大幅降低所需显存——把 quantization 设为 bnb_4bit 即可启用。跑完后,你可以选择保存模型、上传 Hugging Face、对话试效果,或跑标准基准。
四、原理:参数化方向消融
Heretic 实现的是「参数化变体」的方向消融。对每个支持的 transformer 组件(目前是注意力 out-projection 与 MLP down-projection),它找到该层对应的矩阵,并相对于相关的「残差方向」做正交化,从而抑制该方向在矩阵乘法结果里的表达。
(一)消融作用在哪两层
README 明确点出,受处理的组件是当前实现的注意力输出投影(attention out-projection)与 MLP 下投影(MLP down-projection)。对每一层,Heretic 在这些矩阵上做相对于残差方向的正交化。它之所以把这两个组件分开处理,是因为作者发现 MLP 干预往往比注意力干预更伤模型,分组件给权重能挤出额外性能。
(二)残差方向从哪来
残差方向是逐层计算的:取「有害」与「无害」示例提示首个 token 的残差向量,做差值的均值(difference-of-means)。消融过程则由若干可优化参数控制:direction_index(某个残差方向索引,或特殊值 per layer 表示每层用自己的方向)、max_weight / max_weight_position / min_weight / min_weight_distance(描述消融权重核在各层上的形状与位置)。这里 per layer 很关键:拒绝方向并非在各层都一样,让每层用自己的残差方向,消融就能跟着「拒绝方向随深度怎么变」走,而不是用同一个方向硬套所有层。TPE 优化器要搜的,正是这些权重核的形状、位置与对应的方向索引。
五、三个关键创新
比起已有的 abliteration 系统,README 列了 Heretic 的主要创新:
- 消融权重核形状高度灵活:配合自动参数优化,能改善「合规 / 质量」的权衡;非恒定消融权重此前由 Maxime Labonne 在 gemma-3-12b-it-abliterated-v2 中探索过。
- 残差方向索引是浮点而非整数:对非整数值,会对最近的两个残差方向向量做线性插值,从而解锁差值-of-means 之外的大片方向空间,优化器常能找到比任何单层方向更好的方向。
- 每个组件单独选消融参数:如前所述,MLP 干预比注意力干预更伤模型,分组件用不同权重可再榨一点性能。
这三点合起来的实际效果,是消融不再是「同一力度削一层」,而变成「逐层、逐组件、可浮点插值」的精细雕刻;TPE 优化器在拒绝率与 KL 散度之间找平衡点,才压出了比人工版更低的 KL。
六、可解释性研究功能
除主功能外,Heretic 还带面向「模型内部语义(可解释性)」的研究特性,需装可选 research 额外依赖:pip install -U ‘heretic-llm[research]’。两个常用开关:
- –plot-residuals:对每个 transformer 层算「有害 / 无害」首 token 残差向量,用 PaCMAP 投影到 2D,对齐几何中位数后画散点,并生成层间变换的动画 GIF。注意 PaCMAP 在 CPU 上很贵,大模型可能要一小时以上。
- –print-residual-geometry:打印一张密密麻麻的指标表(S(g,b)、|g|、|b|、Silh 等),定量展示有害 / 无害残差向量之间的关系,便于理解残差几何。
读懂那张表的关键,是先认符号:g / b 分别是「无害 / 有害」提示残差向量的均值,g* / b* 是其几何中位数,r = b – g 就是残差方向,S(x,y) 是余弦相似度,|x| 是 L2 范数,Silh 是好坏两类残差的轮廓系数。某层若 S(g,b) 接近 ±1 且 Silh 明显,说明这一层的残差空间里「好坏」分得开——正是消融最该下手的层。这套指标把「哪一层的拒绝方向最干净」从感觉变成了可量化、可复现的判断。
七、许可、引用与同类
Heretic 采用 AGPL-3.0(Copyright © 2025-2026 Philipp Emanuel Weidmann + contributors)。AGPL 与 MIT 不同:如果你把它作为网络服务的一部分运行,相关修改也要以 AGPL 开源——引用原话说「By contributing to this project, you agree to release your contributions under the same license」。
同类实现 README 列了一串:AutoAbliteration、abliterator.py、wassname’s Abliterator、ErisForge、Sumandora 的 remove-refusals、deccp;作者声明 Heretic 是从零写的,不复用这些项目的代码。论文引用给出 BibTeX(作者 Weidmann, 2025, GitHub repository)。
八、总结与合规提示
Heretic 的技术贡献很清晰:它把 abliteration 从「需要人工调参的匠活」变成了「一行命令、全自动、还能压更低 KL」的可复现流程,并用 TPE 优化把「去审查」和「保能力」这对矛盾同时往好的方向推。对做模型可解释性、本地权重实验的研究者,它是一把锋利且透明的工具——所有改动都在权重层面、可评估、可复现。
本文仅作技术原理介绍。Heretic 用于移除模型安全对齐,涉及内容安全与法律边界,请仅在本地、对自己拥有合法使用权的开源权重上做研究性实验,严格遵守所在地法律法规与模型原始许可;切勿将其用于生成或传播违法、有害内容,也不要规避你所用平台的合规要求。AGPL-3.0 对网络分发有额外开源义务,商用或联网部署前务必审阅许可证全文。
在撰写本文的过程中,我主要参考了以下来源:GitHub 仓库 p-e-w/heretic 的 README(含效果对比表、Usage、How Heretic works、Research features、License、Citation)与 config.default.toml。文中数据(Star 数、拒绝率 / KL 数值、耗时等)以仓库公开信息为准,可能随版本与硬件变化。
本文由 AI 辅助整理,基于 GitHub 项目 p-e-w/heretic 的公开文档撰写;内容仅用于技术原理介绍,请合规、负责任地使用,并遵守所在地法律法规与模型许可。

AI智汇具 - AI工具推荐与技能教程_好用的AI工具大全






