Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

English | 简体中文

PICK: Selective Component Ablation for Refusal Removal

PICK 是一个研究工具,用于精确分析和选择性移除大语言模型(LLM)中的拒绝行为。

核心思想:不是粗暴地修改所有权重来让 LLM 遵从有害请求,而是先精确定位哪些注意力头和 MLP 神经元导致了拒绝行为,然后仅移除那些组件,最小化对通用能力的副作用。

快速开始

安装

git clone https://github.com/XuehangCang/pick.git
cd pick
uv sync

基本使用

# 默认参数运行
pick HuggingFaceTB/SmolLM3-3B

# 收紧 KL 预算
pick HuggingFaceTB/SmolLM3-3B --kl-budget 0.03

# 保存消融后的模型
pick HuggingFaceTB/SmolLM3-3B --save ./my_model

# 查看所有参数
pick --help

参数说明

参数 默认值 说明
model (必填) HuggingFace 模型 ID
--kl-budget 0.05 KL 散度预算上限
--strength 0.85 消融强度系数
--component-fraction 0.5 组件选择占比上限
--min-components 1 最少选择的组件数
--batch-size 16 推理批次大小
--max-response-length 64 最大生成 token 数
--n-prompts 0 提示数量(0=全部)
--safe-dataset XuehangCang/safe_prompt 安全数据集
--unsafe-dataset XuehangCang/unsafe_prompt 有害数据集
--output output 输出目录
--save None 模型保存路径
--seed 42 随机种子
--no-orthogonalize False 关闭投影正交化

方法概述

PICK 通过以下步骤实现选择性消融:

  1. 方向计算:在残差流空间中计算「拒绝方向」(difference-of-means + 投影正交化)
  2. 归因分析:计算每个注意力头和 MLP 神经元对拒绝方向的贡献度
  3. 特异性评分:区分「拒绝专用」组件和「通用推理」组件
  4. KL-aware 选择:在 KL 预算约束下贪心选择性价比最高的组件
  5. Rank-1 LoRA 消融:通过 LoRA 精确修改选中组件的权重

测试结果

所有实验均使用默认参数 (--kl-budget 0.05 --strength 0.85 --component-fraction 0.5),在 800 条有害提示上评估。点击模型名查看完整实验记录。

结果对比

模型 参数 层数 拒绝率 (前) 拒绝率 (后) 减少 KL 散度 耗时 完整记录
SmolLM3-3B 3B 36 78.1% 14.3% 81.8% 0.000558 10m 11s 📄 详情
MiniCPM5-1B 1B 24 65.4% 4.5% 93.1% 0.000001 3m 25s 📄 详情

SmolLM3-3B

指标 数值
架构 36 层, hidden=2048, heads=16, intermediate=11008
LoRA 目标模块 attn.o_proj, mlp.down_proj (72 个模块)
评估指标 消融前 消融后
拒绝数 (共 800 条 unsafe prompt) 625 (78.1%) 114 (14.3%)
拒绝减少 511 (81.8%)
消融详情 数值
总候选组件 (头+神经元) 396,864
选中组件 198,432 (50.0%)
选中注意力头 217
选中 MLP 神经元 198,215
KL 散度 0.000558
KL 预算使用率 1.1%
总耗时 10m 11s

MiniCPM5-1B

指标 数值
架构 24 层, hidden=1536, heads=16, intermediate=4608
LoRA 目标模块 attn.o_proj, mlp.down_proj (48 个模块)
评估指标 消融前 消融后
拒绝数 (共 800 条 unsafe prompt) 523 (65.4%) 36 (4.5%)
拒绝减少 487 (93.1%)
消融详情 数值
总候选组件 (头+神经元) 110,976
选中组件 55,488 (50.0%)
选中注意力头 212
选中 MLP 神经元 55,276
KL 散度 0.000001
KL 预算使用率 ~0%
总耗时 3m 25s

支持的模型架构

  • Llama 系列
  • SmolLM3
  • Qwen 系列
  • Gemma 系列
  • GPT-2
  • MoE 架构

引用

如果 PICK 对你的研究有帮助,请引用:

@software{pick2025,
  title = {PICK: Selective Component Ablation for Refusal Removal},
  author = {XuehangCang},
  year = {2025},
  url = {https://github.com/XuehangCang/pick}
}

许可

AGPL-3.0 License. 详见 LICENSE 文件。

About

Selective Component Ablation for Refusal Removal

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages