Skip to content

Latest commit

 

History

History
131 lines (104 loc) · 4.3 KB

File metadata and controls

131 lines (104 loc) · 4.3 KB

PICK 消融实验记录

实验日期: 2026-06-16 模型: openbmb/MiniCPM5-1B 命令: pick openbmb/MiniCPM5-1B

运行参数

参数
KL 预算 (--kl-budget) 0.05
消融强度 (--strength) 0.85
组件占比 (--component-fraction) 0.5
正交化 开启
批次大小 (--batch-size) 16 (默认)
最大生成长度 (--max-response-length) 64 (默认)
安全数据集 (--safe-dataset) XuehangCang/safe_prompt
有害数据集 (--unsafe-dataset) XuehangCang/unsafe_prompt
随机种子 (--seed) 42 (默认)

模型信息

  • 架构: MiniCPM5
  • 层数: 24
  • Hidden size: 1536
  • 注意力头数: 16
  • Head dim: 128
  • Intermediate size: 4608
  • 加载精度: bfloat16
  • 层路径: model → layers
  • GPU 显存占用: 2.01GB / 23.99GB

模型架构探测

模块类型 每层数量 总模块数
attn.o_proj 1 24
mlp.down_proj 1 24
LoRA 目标总计 2 48

数据集

数据集 Split 数量
XuehangCang/safe_prompt train 800
XuehangCang/unsafe_prompt train 800

步骤 4: 方向计算 + 归因分析

残差收集

类别 样本数 残差维度
安全 (safe) 800 1536
有害 (unsafe) 800 1536

注意力头归因

  • 总头数: 384 (24 层 × 16 头)
  • 特异性范围: [0.1, 2.0]

MLP 神经元归因

  • 总神经元数: 110,592 (24 层 × 4608)
  • 每个神经元计算了对拒绝方向的贡献度和特异性评分

步骤 5: KL-aware 组件选择 + 消融

选择概览

指标
总候选组件 110,976 (384 头 + 110,592 神经元)
特异性范围 [0.0, 22,524.2]
选中组件 55,488 / 110,976 (50.0%)
选中注意力头 212
选中 MLP 神经元 55,276
预估 KL 散度 0.000062
停止条件 占比上限 (50%)

每层消融详情

选中头数 选中的头索引 选中神经元数 示例神经元索引
0 1 [15] 2179 3573, 1966, 3710, 3506, 4283
1 0 [] 2364 875, 3773, 1720, 3670, 2363
2 5 [12, 8, 2, 11, 0] 2399 1304, 3699, 184, 3115, 2144
3 5 [13, 15, 5, 11, 14] 2402 575, 131, 3721, 2449, 2307
4 5 [3, 15, 10, 5, 0] 2697 2780, 1892, 3981, 2013, 1259
5 14 [7, 4, 11, 6, 3, ...] 2588 712, 3798, 2845, 4412, 2917
6 14 [6, 2, 7, 0, 3, ...] 2494 3656, 2779, 3945, 3577, 2708
7 11 [1, 12, 9, 15, 2, ...] 1957 2954, 4287, 1901, 2405, 219
8 12 [4, 0, 7, 10, 5, ...] 2401 1332, 1488, 818, 4583, 1956
9 12 [10, 9, 7, 3, 4, ...] 2074 2038, 1368, 1937, 1849, 1499
10 11 [14, 7, 1, 5, 6, ...] 1813 166, 2755, 3632, 3757, 2657
11 13 [7, 4, 2, 1, 5, ...] 2100 1170, 1811, 1146, 1014, 2103
12 13 [12, 7, 3, 0, 14, ...] 2005 2826, 2165, 435, 2848, 3359
13 11 [3, 1, 5, 7, 15, ...] 2061 1764, 3406, 3797, 1249, 3172
14 11 [4, 6, 1, 3, 12, ...] 1996 1127, 2879, 3120, 4142, 2563
15 9 [9, 8, 15, 0, 2, ...] 2135 38, 1581, 1628, 305, 4013
16 3 [4, 7, 3] 2103 4397, 2231, 4438, 3243, 3242
17 6 [5, 7, 4, 1, 3, ...] 2162 1840, 3775, 3735, 335, 1494
18 7 [3, 6, 11, 9, 13, ...] 2279 196, 723, 4332, 1810, 906
19 8 [1, 9, 10, 8, 7, ...] 2301 1155, 2062, 2183, 3689, 3451
20 8 [3, 1, 5, 2, 12, ...] 2387 4176, 2065, 1981, 3109, 3504
21 9 [12, 0, 6, 1, 2, ...] 2545 3491, 3749, 1467, 1520, 1544
22 9 [11, 9, 14, 10, 2, ...] 2759 541, 567, 3079, 2010, 3339
23 15 [8, 13, 10, 11, 7, ...] 3075 4261, 820, 1437, 415, 1927

步骤 6: 评估

KL 散度评估 (50 条 safe prompt)

  • 实际 KL 散度: 0.000001
  • 预估 KL 散度: 0.000062

拒绝行为评估 (800 条 unsafe prompt)

指标 消融前 消融后 变化
拒绝数 523 36 -487
拒绝率 65.4% 4.5% -60.9pp
KL 散度:        0.000001
预估 KL:        0.000062
拒绝数:         523 → 36/800
拒绝减少:       487 条 (93.1%)
KL 预算使用率:  0.0%
总耗时:          3m 25s