mirror of
https://github.com/wassname/evil_MoE.git
synced 2026-07-16 11:19:22 +08:00
Restore model.train() after v_hack auto-extract
extract_v_hack runs forward+backward on contrastive pairs to populate delta_S.grad; the inline auto-extract called model.eval() but never called model.train() back, so the entire training run was in eval mode. Qwen3 has no dropout by default so behavior was unchanged, but this matches the standalone extract CLI's behavior and avoids latent inconsistency if a model with dropout is used later. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
8d2c9afb01
commit
bfc54b83b4
@@ -389,6 +389,7 @@ def main(cfg: Config) -> int:
|
||||
"top_k": str(min(cfg.v_hack_extract_top_k, len(VHACK_PAIRS) - 2)),
|
||||
"tau_axis": "0.0", "schema": "v2_with_sv"})
|
||||
# extract zeros grads at exit; opt is built below so no opt-state taint.
|
||||
model.train() # restore train mode; eval was set only for the extract pass
|
||||
v_hack_cpu, _v_sv_cpu = load_v_hack(v_hack_path, model_name, wrappers, k_use=cfg.v_hack_k)
|
||||
v_hack = {name: v.to(device) for name, v in v_hack_cpu.items()}
|
||||
# Teacher pool: pre-generated rollouts on disk keyed by problem_id. Each step's
|
||||
|
||||
Reference in New Issue
Block a user