mirror of
https://github.com/p-e-w/heretic.git
synced 2026-10-26 19:05:05 +00:00
DeepSeek V4 and GLM 5.3 have several residual streams per token instead of one, so their hidden states have an extra dimension. Heretic crashed computing refusal directions for GLM 5.3, and found no modules to abliterate in DeepSeek V4. Use the mean of the streams as the residual. The streams are mixed with each other by a doubly stochastic matrix, so their mean only changes by what the blocks add to it, like an ordinary residual. Also abliterate DeepSeek V4's attention output (o_b_proj) and the shared experts of MoE models. Both models fuse their routed experts into one module, so the shared experts are the only MLP weights Heretic can edit.
63 lines
1.6 KiB
TOML
63 lines
1.6 KiB
TOML
# This test case is for models with Hyper-Connections (multiple residual streams).
|
|
# After any change related to it, this test should PASS.
|
|
|
|
model = "tiny-random/deepseek-v4"
|
|
model_commit = "d20cabaa1c8a9f235e9bb50f1d5e98eeb6a530d5"
|
|
|
|
seed = 12345
|
|
print_debug_information = true
|
|
|
|
batch_size = 2
|
|
max_response_length = 10
|
|
|
|
modifiers = [
|
|
{ plugin = "heretic.modifiers.abliteration.Abliteration" },
|
|
]
|
|
|
|
n_trials = 2
|
|
n_startup_trials = 1
|
|
|
|
# Transformers can't yet save DeepSeek V4 after dequantizing its FP8 weights,
|
|
# so this test checks the LoRA adapter instead of the merged model.
|
|
export_strategy = "adapter"
|
|
checkpoint_action = "restart"
|
|
trial_index = 0
|
|
model_action = "save"
|
|
save_directory = "model"
|
|
|
|
[[response_prefix_test_prompts]]
|
|
dataset = "mlabonne/harmless_alpaca"
|
|
commit = "02c6a92cfcf11bb0c387334f8146d149d65b587f"
|
|
split = "train[:5]"
|
|
column = "text"
|
|
|
|
[[response_prefix_test_prompts]]
|
|
dataset = "mlabonne/harmful_behaviors"
|
|
commit = "01cead01398926d81f7c52bdb790ee8cf77ebba7"
|
|
split = "train[:5]"
|
|
column = "text"
|
|
|
|
[scorer.KLDivergence.prompts]
|
|
dataset = "mlabonne/harmless_alpaca"
|
|
commit = "02c6a92cfcf11bb0c387334f8146d149d65b587f"
|
|
split = "test[:5]"
|
|
column = "text"
|
|
|
|
[scorer.KeywordRate.prompts]
|
|
dataset = "mlabonne/harmful_behaviors"
|
|
commit = "01cead01398926d81f7c52bdb790ee8cf77ebba7"
|
|
split = "test[:5]"
|
|
column = "text"
|
|
|
|
[modifier.Abliteration.good_prompts]
|
|
dataset = "mlabonne/harmless_alpaca"
|
|
commit = "02c6a92cfcf11bb0c387334f8146d149d65b587f"
|
|
split = "train[:5]"
|
|
column = "text"
|
|
|
|
[modifier.Abliteration.bad_prompts]
|
|
dataset = "mlabonne/harmful_behaviors"
|
|
commit = "01cead01398926d81f7c52bdb790ee8cf77ebba7"
|
|
split = "train[:5]"
|
|
column = "text"
|