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 等混合模型。

工作原理(通俗解释)

  1. 收集参考数据 – 工具将一组“有害”提示和一组“无害”提示输入原始模型,并记录第一个 token 之后出现的 残差 向量。
  2. 计算“拒绝方向” – 通过从有害提示的平均残差中减去无害提示的平均残差,Heretic 得到一个指向模型拒绝行为的向量。
  3. 方向性消融 – 对每个 Transformer 层,Heretic 将权重矩阵(注意力输出和 MLP 下投影)正交化于该方向,有效抑制推动模型走向拒绝的计算部分。
  4. 参数优化 – 消融强度可在不同层和组件间变化。Heretic 将这些强度视为可调参数,并通过 Optuna 运行基于 TPE 的优化,同时:
    • 减少在有害提示验证集上的拒绝响应比例。
    • 保持无害提示上的 KL 散度较低,确保模型的知识和风格尽可能接近原始模型。
  5. 导出 – 优化收敛后,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;未添加任何外部声明。

相关