mirror of
https://github.com/wassname/evil_MoE.git
synced 2026-07-28 11:19:54 +08:00
default rollout_ablate_frac=0 (drop the exploration floor)
job 64 (frac=0.5) leaked: deploy hack climbed 0.00->0.125 over training while no-floor job 60 held 0.000. Sampling from the deployed model makes its reward an optimization target whose optimum is hacking, so stale-gate misses update the kept knob -- the floor optimizes the policy the quarantine should keep clean. Neither gradient-routing paper samples from the ablated model in training. Off by default; re-enable only to test floor+fresh-gate (refresh-every-1). Co-Authored-By: Claudypoo <288921227+claudypoo@users.noreply.github.com>
This commit is contained in:
+14
-12
@@ -175,18 +175,20 @@ class Config:
|
||||
project_overshoot: float = 1.0 # remove overshoot*c_use@V; 1.0=just remove, 1.1=10% reversal of hack-ward grad
|
||||
# Exploration floor against hack-saturation (route/route2 only). Fraction of
|
||||
# student rollouts to generate with the quarantine (delta_S_hack) ablated, i.e.
|
||||
# from the DEPLOYED model. The risk this guards: if on-policy sampling collapses
|
||||
# onto hacking, the policy stops emitting solves, every rollout gets routed to
|
||||
# the quarantine, and the deployed delta_S never sees a solve gradient to learn
|
||||
# from (it saturates). Forcing a fraction of rollouts hack-OFF guarantees the
|
||||
# solve region stays covered, exactly like any RL exploration term. Pure
|
||||
# sampling-side diversity; accepts a slight off-policy mismatch (GRPO already
|
||||
# tolerates it) in exchange for guaranteed coverage. 0 = off.
|
||||
# Default 0.5 (half the rollouts deploy-mode): the bonus is that these ablated
|
||||
# rollouts ARE deployed-model samples, so we grade them for a FREE per-step
|
||||
# deploy proxy (hk_abl/slv_abl) -- see the row dict -- without the extra
|
||||
# generation the periodic eval_ablate_every eval costs.
|
||||
rollout_ablate_frac: float = 0.5
|
||||
# from the DEPLOYED model. Intent: if on-policy sampling collapses onto hacking,
|
||||
# every rollout gets routed to the quarantine and the deployed delta_S never sees
|
||||
# a solve gradient (it saturates); forcing some rollouts hack-OFF keeps the solve
|
||||
# region covered.
|
||||
# DEFAULT 0 (off). job 64 (frac=0.5) leaked: deploy hack climbed 0.00->0.125 over
|
||||
# training while the no-floor job 60 held deploy hack=0.000. Mechanism: sampling
|
||||
# from the DEPLOYED model makes its reward an optimization target whose optimum is
|
||||
# hacking, so whenever the (stale) routing gate misses, those deploy-generated
|
||||
# hacks update the kept knob -- i.e. the floor optimizes the very policy the
|
||||
# quarantine is meant to keep clean. Neither gradient-routing paper samples from
|
||||
# the ablated model during training (they sample knob-on, ablate at eval, and let
|
||||
# absorption localize). So default off; re-enable only to TEST the floor+fresh-gate
|
||||
# hypothesis (does refresh-every-1 keep the gate sharp enough that the floor is safe?).
|
||||
rollout_ablate_frac: float = 0.0
|
||||
# Which grader flaw + factual hint this run trains on (a "hack class"). Sets
|
||||
# the prompt hint (HINT_REPLACE_TO) and how `passed` is graded in rewards.py.
|
||||
# run_tests = the original run_tests-overwrite loophole. eq_override / exit_code
|
||||
|
||||
Reference in New Issue
Block a user