heretic

2026-02-10

python

没有方法能使时钏为我敲已过去了的钟点。——拜伦

Heretic:把“安全对齐”可控化,把“拒答”从模型里精准剥离

当我们谈到大语言模型的“安全对齐”,往往是在模糊的光谱上折中:不当回答被拒绝,但同时也会发生过度拒答、语义误伤与能力受限。如果能用一种自动化、可复现实验的方式,将模型中的“拒绝方向”定点消融,并在尽可能少损伤模型能力的前提下,移除不必要的拒答机制,会怎样?

Heretic 就是在做这件事。它是一款面向 Transformer 系列模型的“自动化定向消融”工具,通过先进的方向消融算法与参数优化,让“去对齐”这件事变成可配置、可度量、可重现的工程流程。作者的描述非常直接:Fully automatic censorship removal for language models。

  • 仓库:p-e-w/heretic
  • 许可:AGPL-3.0
  • 语言与依赖:Python,PyTorch 2.2+(推荐 2.8 在 RTX 5090 上的评估数据)
  • 支持范围:大多数稠密模型(包含不少多模态)、部分 MoE 架构;暂不支持 SSM 混合模型、非同质层与某些新式注意力结构
  • 关键词:Directional Ablation(Abliteration),Optuna TPE 自动参数搜索,拒绝方向,KL 散度

以下内容基于仓库 README 与描述整理,不做任何无据的延伸。


核心思想:方向消融与双目标优化

Heretic 的技术基于“方向消融”(Abliteration),参考 Arditi 等人在 2024 年提出的方法。它会在每一层计算“拒绝方向”——用“有害”与“无害”提示在第一输出 token 的残差向量做差,得到该层的“拒绝方向”。随后,对模型的关键矩阵(注意力的 out-projection、MLP 的 down-projection)进行与该方向的正交化,让该方向在矩阵乘积结果中尽可能被抑制。

更重要的是,它将“参数形状与位置”的选择变成可优化的变量,并用 Optuna 的 TPE 搜索在两大目标上联合优化:

  • 尽量减少对“有害提示”的拒答数量
  • 尽量接近原始模型在“无害提示”上的分布(KL 散度尽可能小)

这就让“去对齐”的调参过程完全自动化。对于用户来说,运行命令即可,甚至不需要理解 Transformer 的细节。


效果与度量:拒答压低,同时保留模型能力

官方给出了一组以 Gemma-3-12B-IT 为例的对比数据,在默认配置下无监督运行,Heretic 生成的版本在拒答压低的同时,将 KL 散度显著控制在较低水平。这意味着“在减少拒答的同时,对模型原生能力造成的损伤更小”。

同时,作者明确指出:数学指标与自动基准不能完全替代人工评估,最终体验仍要靠社区与使用者反馈。README 中引用了用户的体验,指出 Heretic 输出的模型在敏感话题的文本组织、格式化与语义覆盖方面更接近“未对齐”的期望,同时没有明显牺牲智能水平。


快速上手:两条命令跑起来

需要准备 Python 3.10+ 与合适的 PyTorch 环境,然后直接安装并运行。下面的命令来自官方 README:

1
2
pip install -U heretic-llm
heretic Qwen/Qwen3-4B-Instruct-2507
  • 将模型名替换为你希望处理的模型
  • Heretic 会在程序开始时自动进行系统基准测试,以确定最佳 batch size,让硬件利用率最大化
  • 例如在 RTX 3090,默认配置下对 Llama-3.1-8B 的处理约需 45 分钟

处理完成后,你可以选择保存模型、上传到 Hugging Face、或与其对话进行快速验收。


评估与复现:一行命令验证 KL 与拒答

Heretic 也提供了内置的评估功能,用来复现“拒答数量与 KL 散度”等指标。下面这一行来自 README 的示例:

1
heretic --model google/gemma-3-12b-it --evaluate-model p-e-w/gemma-3-12b-it-heretic

不同硬件与平台可能会影响具体数值,但评估流程是可复现的。


可视化与研究模式:从残差空间看“拒绝方向”

Heretic 不仅是“去对齐工具”,还是一个能辅助模型可解释性研究的实验平台。安装带 research 额外依赖的版本即可开启研究功能:

1
pip install -U heretic-llm[research]

开启 --plot-residuals 参数,会在每一层对“有害/无害”提示下的第一 token 残差向量做 PaCMAP 投影,生成逐层散点图与动画,展示两类残差在层间的几何关系与变形过程。
此外,--print-residual-geometry 参数会打印详细的层间度量表,包括均值与几何中值的余弦相似、L2 范数、拒绝方向构成与聚类轮廓系数等。对于研究者来说,这是观察“拒绝信号”在网络中如何生成、如何传播的直观抓手。


关键实现点:让参数空间成为优化对象

Heretic 在“如何消融”上做了几个重要工程化创新:

  • 消融权重核的形状与位置是可配置的参数,并以组件(Attention vs MLP)为单位分别选择,有助于减少对模型能力的损伤
  • 拒绝方向索引不限定为整数,而允许浮点索引,并对相邻方向线性插值,从而在层内外开辟出更大的方向空间,帮助优化过程找到更“平衡”的拒绝方向
  • 以“每组件独立参数”的方式进行消融,实测 MLP 的干预更容易损伤模型,因此分开权重调度有助于进一步优化

“定向消融”的直觉可以理解为:对于每层的关键映射矩阵,寻找让“拒绝方向”在乘积结果中不再表达的投影,使得模型在遇到某类输入时,减少触发“拒答机制”的倾向,同时尽量保持其他能力不受影响。


使用建议:把“去对齐”放到可控流程里

  • 小心选择版本与模型:先在小模型或副本上验证效果,逐步转向主力模型
  • 评估与对照:用内置评估复测拒答与 KL 散度,再配合人工验收,形成“数值 + 体验”的双重指标
  • 分场景对齐:并非所有应用都需要“全面去对齐”,可按场景输出不同程度的参数配置,避免过度开放
  • 记录与版本化:把参数、评估报告与模型版本一起打包,确保可追溯与可回滚

伦理与合规:边界必须明确

Heretic 的目标是让“拒答机制”变得可控与可理解,但这并不意味着越少越好。对于需要严格安全对齐的应用(如教育、医疗与公共服务),降低拒答需要更强的保障与审计。
AGPL-3.0 许可允许你在内部自由使用与私下修改代码,但若作为公开服务提供,需开源对核心软件的修改。请遵循当地法律与平台政策,避免滥用与违法场景。


与既有工作对比:从“手工消融”走向“自动化搜索”

社区已有多种“定向消融”实现,Heretic 在这些工作之上强调“自动化参数搜索与更灵活的权重核形状”,并从拆分组件与方向插值上做了更深入的工程探索。作者也在 README 明确了参考与致谢,包括论文与社区文章。


结语:让“安全对齐”的开关更精细

Heretic 把“去对齐”从模糊抽象变成可操作的���程流程:你可以定义消融方向、设置权重核、自动优化参数、评估度量与绘图分析,然后将结果打包发布与复现。从体验角度,它提供了把“拒绝”这件事变得可解释、可配置的可能。
如果你在做研究、做工具链或是维护模型在特定场景的表达自由与能力边界,Heretic 是一个值得认真尝试的方案。

  • 安装与运行:见上文命令
  • 评估与重现:使用 --evaluate-model 进行数值复查
  • 研究模式:启用 [research],用 --plot-residuals--print-residual-geometry 深入观察残差空间
  • 许可与合规:AGPL-3.0,遵守法律与平台政策

用工程化的方法做“去对齐”,把争议变成可度量、可复现与可讨论的结果,这或许是我们需要的那份“精细的开关”。

1
2
pip install -U heretic-llm
heretic Qwen/Qwen3-4B-Instruct-2507
1
heretic --model google/gemma-3-12b-it --evaluate-model p-e-w/gemma-3-12b-it-heretic
1
pip install -U heretic-llm[research]