Buckets:

3.13 GB
11,407 files
Updated 8 days ago
Name
Size
CROSS_METHOD_FINDINGS.md4.49 kB
xet
README.md6.43 kB
xet
build_arc_headtohead_rescore.py2.53 kB
xet
build_arc_rescore_3var_gamma.py5.13 kB
xet
build_arc_rescore_3var_gamma_redo.py6.19 kB
xet
build_arc_rescore_3var_summary.py3.37 kB
xet
build_binlevel_forget_texts_from_cache.py2.62 kB
xet
build_binlevel_redo_tidy_bin.py1.6 kB
xet
build_faithful_arc_forget_texts.py2.38 kB
xet
build_faithful_arc_forgetsets_diff.py2.77 kB
xet
build_faithful_eval_manifest.py2.84 kB
xet
build_faithful_eval_manifest_rescore.py2.76 kB
xet
build_faithful_gamma_ci.py5.48 kB
xet
build_faithful_gamma_ci_rescore.py6.57 kB
xet
build_gamma_olmes.py7.52 kB
xet
build_gamma_olmes_merged_rescore.py1.54 kB
xet
build_per_doc_arc_influence.py2.71 kB
xet
check_arc_shortlist_sensitivity.py1.55 kB
xet
check_cache_doc_ids.py1 kB
xet
cross_method_comparison.py6.68 kB
xet
cross_method_comparison_rescore.py6.71 kB
xet
factorial_2x2_olmes.py6.03 kB
xet
factorial_2x2_olmes_rescore.py6.13 kB
xet
faithful_pilot_ci.py5.19 kB
xet
faithful_pilot_ci_rescore.py5.22 kB
xet
faithful_robustness_ci.py5.99 kB
xet
faithful_robustness_ci_rescore.py6.08 kB
xet
paired_significance.py10.4 kB
xet
paired_significance_rescore.py10.4 kB
xet
pilot_bootstrap_olmes.py10.6 kB
xet
plot_paired_multiseed.py9.66 kB
xet
prune_arc_rescore_space.py2.59 kB
xet
selectivity_olmes.py5.2 kB
xet
selectivity_robustness_olmes.py6.86 kB
xet
README.md

Selectivity Re-analysis + Multi-Seed Unlearning (COLM 2026 #3137 rebuttal)

Methodology, process, and results for the corrected + multi-seed bin-targeted-vs-naïve-top-K selectivity evidence. Self-contained record so the work survives /tmp wipes and scratch prunes.

1. The problem we found (config-mismatch)

The original Appendix L selectivity numbers were inflated by a baseline-config mismatch: γ was computed as baseline_acc − unlearned_acc, but the baselines came from the OLMo-3 Tech Report (different eval config) while unlearned accuracies were measured under our :mc::olmes protocol. Config-matched OLMo-3-7B-base baselines (verified by re-eval): socialiqa 0.739 (was 0.8029), arc_challenge 0.8345 (was 0.892), mmlu_stem 0.5975, mmlu_social_science 0.7524.

Re-running everything under one protocol (build_gamma_olmes.pyfactorial_2x2_olmes.py, pilot_bootstrap_olmes.py): the pilot-validated 4/4 claim survives, but secondary claims weaken — head-to-head 3/4→2/4, 2×2 "both ingredients help" 3/4→2/4 (topic-effect median <1), MMLU-STEM bootstrap CI crosses 1. Verified not a port bug (original script on old data reproduces the staged numbers, so the delta is purely the baseline fix).

2. Multi-seed methodology (the honest, faithful version)

Goal: error bars on the selectivity via 3 fixed seeds {42, 43, 44}.

Forget-set selection (faithful, per-doc influence): for each (topic, target-benchmark), take the top-200 docs by per-doc influence (influence_scores_full.parquet, cols doc_id, <bench>_score, weborganizer_topic) — expA restricts within a topic, expC is corpus-wide. Random baselines: exp1 (random-in-topic), exp3 (random-global).

The text-provenance fix: the influence doc_ids are a Dolma-UUID space that does not join the local 6T training cache (seom35/...dolma3_6t_filtered, a different id scheme). The faithful text lives in the HCAI-Lab HF datasets (same UUID space): dolma3-6t-unique / dolma3-6t-sample-*-docs. Text for the 19k forget doc_ids was extracted (single linear scan of the TrackStar 10k shards at cs7634/tracstar/shards_10k/) into faithful_forget_text.parquet (schema recipe, doc_id, text, 100% coverage). Per-recipe parquets live in `/scratch/n16_selectivity/forget_texts_faithful/`.

A bin-level proxy (forget-sets from topic×format z-scored bins, which do join the local cache) was used while the faithful texts were unavailable; it validated the approach (gate 16×) but was retired once the faithful per-doc texts arrived. The faithful gate gave γ(socialiqa)=0.219, 15.0×.

Training: NGDiff + rank-8 LoRA on OLMo-3-1025-7B, lr 1e-5 constant, PPL early-stop, via src/unlearning/train.py with +forget_texts_file=<per-recipe parquet> (added path in dolma_pool.py). Submitted by submit_multiseed_faithful.py (HX00, seeds 42/43/44). Eval: :mc::olmes on the 4 primary benchmarks via eval_array.sbatch (merge LoRA → vLLM).

3. Results (faithful, 3-seed mean±std; ratios = sel(bin-targeted)/sel(naïve top-K))

Target head-to-head (top-1) pilot-validated best-in-hindsight
SocialIQA 2.41±1.26 (3/3) 6.36±1.40 (3/3) 6.36±1.40 (3/3)
MMLU-STEM 1.74±1.48 (1/2) 2.45±0.13 (2/2) 2.90±0.31 (2/2)
MMLU-SS 0.40±0.33 (0/3) 0.07±0.04 (0/3)† 1.10±0.49 (2/3)
ARC (training in flight 2026-05-28)

Per-recipe selectivity (best topics): SocialIQA social_life 21.6±11.6×, literature 14.6±5.1×. CSVs: results/{faithful_gamma_tidy,faithful_selectivity_ci,faithful_pilot_ci}.csv.

Shortlist pool (decision 2026-05-28): with ARC added as a 4th target, the unique-z shortlist is recomputed against the uniform 4-target pool. This shifts the mmlu_ss/mmlu_stem shortlist membership, but SocialIQA (6.36×, 3/3) and MMLU-STEM (2.45×, 2/2) are unchanged (the selectivity-best pick stays the same topic). †MMLU-SS's 4-pool shortlist (transportation/politics/finance_and_business) sits mostly outside the trained headline-9 topics, so its pilot needs the full 24-topic grid. check_arc_shortlist_sensitivity.py documents the 3-pool vs 4-pool shift.

4. Pipeline (scripts in this dir)

  • submit_multiseed_faithful.py — submit the multi-seed training grid (forget_texts_file). ARC in BENCHES. Idempotent: skips cells with an existing checkpoint AND cells whose job is live in squeue (closes the requeue-churn TOCTOU gap that truncated checkpoints).
  • split_arc_forget_texts.py — split the agent's combined faithful_forget_text_arc.parquet (recipe,doc_id,text) into the per-recipe forget_texts_faithful/*arc_challenge.parquet files.
  • build_faithful_eval_manifest.py — enumerate faithful checkpoints → OLMES eval manifest. Skips truncated checkpoints, already-evaluated dirs, AND dirs whose training job is still live (their "latest" checkpoint is a mid-training intermediate).
  • submit_eval_faithful.py — rebuild manifest + submit the throttled (%4) eval array. Re-run after each training wave; idempotent.
  • build_faithful_gamma_ci.py — parse evals → 3-seed γ matrix + per-recipe selectivity mean±std (ARC in BENCHES + BASE 0.8345).
  • faithful_pilot_ci.py — head-to-head / pilot / hindsight with seed CIs (Appendix-L numbers). Uniform 4-target pool incl. ARC.
  • check_arc_shortlist_sensitivity.py — 3-pool vs 4-pool shortlist diff (records the ARC-fold-in shortlist shift).
  • build_gamma_olmes.py / factorial_2x2_olmes.py / pilot_bootstrap_olmes.py — the corrected seed-1 analysis on the downloaded checkpoints (config-matched).
  • seed_unlearn.sbatch / eval_array.sbatch — training + eval job templates.
  • cleanup_truncated.py — delete truncated checkpoints (cancel/requeue churn) so they re-train.

5. Open items

  • ARC eval + final CI rebuild — 30 ARC training cells launched 2026-05-28 (9 headline topics×3 seeds + expC×3). When done: submit_eval_faithful.pybuild_faithful_gamma_ci.py + faithful_pilot_ci.py to populate the ARC row.
  • Full 24-topic grid (MMLU-SS 4-pool pilot shortlist = transportation/politics/finance, mostly outside the trained headline-9) — user launches after the n10b prune freed headroom.
  • Paper: rewrite Appendix L to lead with the surviving pilot (SocialIQA 3/3 + MMLU-STEM 2/2), with 3-seed mean±std numbers, once ARC lands.
Total size
3.13 GB
Files
11,407
Last updated
Jul 1
Pre-warmed CDN
US EU US EU

Contributors