p-e-w/heretic
Fully automatic censorship removal for language models
Heretic
功能
Heretic 是一个命令行工具,可自动移除导致大语言模型(LLMs)拒绝或弱化对有害提示响应的安全对齐或“审查”层。它无需昂贵的完整模型微调步骤。相反,它采用一种称为 方向性消融(也称 消解)的技术,数学上抑制了 Transformer 权重矩阵中编码“拒绝”行为的部分。
为何重要
大多数公开发布的 LLM 都被有意调整为拒绝非法内容。虽然这对许多部署场景很有用,但也限制了研究、基准测试和对模型能力的诚实探索。现有的“去审查”方法通常需要手动工程、高计算成本,或导致整体模型质量下降。Heretic 具备以下优势:
- 完全自动运行——无需深入了解 Transformer 内部结构。
- 使用 Optuna(贝叶斯超参数优化器)优化消融参数,同时最小化拒绝次数和与原始模型的 KL 散度,尽可能保留模型智能。
- 适用于多种密集型 Transformer 模型,包括多模态和 MoE 变体,甚至 Qwen 3.5 等混合模型。
工作原理(通俗解释)
- 收集参考数据 – 工具将一组“有害”提示和一组“无害”提示输入原始模型,并记录第一个 token 之后出现的 残差 向量。
- 计算“拒绝方向” – 通过从有害提示的平均残差中减去无害提示的平均残差,Heretic 得到一个指向模型拒绝行为的向量。
- 方向性消融 – 对每个 Transformer 层,Heretic 将权重矩阵(注意力输出和 MLP 下投影)正交化于该方向,有效抑制推动模型走向拒绝的计算部分。
- 参数优化 – 消融强度可在不同层和组件间变化。Heretic 将这些强度视为可调参数,并通过 Optuna 运行基于 TPE 的优化,同时:
- 减少在有害提示验证集上的拒绝响应比例。
- 保持无害提示上的 KL 散度较低,确保模型的知识和风格尽可能接近原始模型。
- 导出 – 优化收敛后,Heretic 会输出一个新的模型检查点,可像其他 Hugging Face 模型一样使用。
核心创新在于 灵活的连续索引消融核(“权重核”)和自动搜索最佳核形状的能力,使 Heretic 能够找到比早期手动消解脚本更优的权衡。
适用人群
- 需要未审查基线进行安全对齐研究、可解释性工作或对抗性测试的 研究人员。
- 希望在个人项目中无内置拒绝过滤器地运行开源 LLM 的 开发者。
- 共享去审查模型检查点的 社区(README 列出了已在 Hugging Face 上发布超过 5,000 个模型)。
快速上手
# 1. 创建 Python 3.10+ 环境并安装 PyTorch ≥2.2
pip install -U heretic-llm # 下载 CLI 和所有依赖项
# 2. 在任何支持的模型上运行工具(示例:Qwen 3‑4B)
heretic Qwen/Qwen3-4B-Instruct-2507
该命令将:
- 基于 GPU 性能基准选择安全的批处理大小。
- 运行自动优化(在 RTX 3090 上,4 B 参数模型约需 20–30 分钟)。
- 提示你保存、上传、聊天测试或基准测试生成的模型。
可选配置
- 若偏好使用 uv 依赖管理器,可使用
uv run heretic(仓库附带锁定的 lock‑file)。 - 通过
quantization = "bnb_4bit"配置标志启用bitsandbytes的 4 位量化,以在有限 VRAM 中容纳更大模型。 - 通过
config.default.toml或heretic --help检查或编辑所有可调参数。
限制与待解决问题
- 纯状态空间模型和部分实验性架构尚未支持。
- 优化为启发式方法;尽管工具报告低 KL 散度,但细微能力损失仍可能发生,需通过下游任务验证。
- 伦理考量:去审查模型可能用于生成非法内容,用户必须遵守当地法规和负责任 AI 指南。
以上所有信息均直接取自项目 README;未添加任何外部声明。
相关
- Dispatch
- 项目
- 项目
- 项目
- Dispatch