tianzl66 commited on
Commit
ffaca6a
·
verified ·
1 Parent(s): 0c44959

Release audited B300 LoRA training seed 44; actual zero warmup and complete in-domain HNS results

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +1 -0
  2. MANIFEST.sha256 +59 -0
  3. README.md +147 -0
  4. adapter_config.json +50 -0
  5. adapter_model.safetensors +3 -0
  6. chat_template.jinja +89 -0
  7. code/reproduce_hns_seed_checkpoint.py +112 -0
  8. code/source_files_sha256.json +50 -0
  9. code/source_snapshot.tar.gz +3 -0
  10. comparison/configuration_audit.md +88 -0
  11. comparison/three_run_scores.json +53 -0
  12. data/dataset_provenance.json +8 -0
  13. data/selected_source_indices.json.gz +3 -0
  14. evaluation/benchmark_input/humaneval-test.parquet +3 -0
  15. evaluation/benchmark_provenance.json +13 -0
  16. evaluation/generation_manifest.json +65 -0
  17. evaluation/items/base/predictions.jsonl.gz +3 -0
  18. evaluation/items/base/scored.jsonl.gz +3 -0
  19. evaluation/items/magicoder__hns_f0_s0/predictions.jsonl.gz +3 -0
  20. evaluation/items/magicoder__hns_f0_s0/scored.jsonl.gz +3 -0
  21. evaluation/items/magicoder__hns_f2_s0/predictions.jsonl.gz +3 -0
  22. evaluation/items/magicoder__hns_f2_s0/scored.jsonl.gz +3 -0
  23. evaluation/items/magicoder__hns_f2_s1/predictions.jsonl.gz +3 -0
  24. evaluation/items/magicoder__hns_f2_s1/scored.jsonl.gz +3 -0
  25. evaluation/items/magicoder__hns_f2_s2/predictions.jsonl.gz +3 -0
  26. evaluation/items/magicoder__hns_f2_s2/scored.jsonl.gz +3 -0
  27. evaluation/items/magicoder__hns_f4_s0/predictions.jsonl.gz +3 -0
  28. evaluation/items/magicoder__hns_f4_s0/scored.jsonl.gz +3 -0
  29. evaluation/items/magicoder__hns_f4_s1/predictions.jsonl.gz +3 -0
  30. evaluation/items/magicoder__hns_f4_s1/scored.jsonl.gz +3 -0
  31. evaluation/items/magicoder__hns_f4_s2/predictions.jsonl.gz +3 -0
  32. evaluation/items/magicoder__hns_f4_s2/scored.jsonl.gz +3 -0
  33. evaluation/items/magicoder__hns_f8_s0/predictions.jsonl.gz +3 -0
  34. evaluation/items/magicoder__hns_f8_s0/scored.jsonl.gz +3 -0
  35. evaluation/items/magicoder__hns_f8_s1/predictions.jsonl.gz +3 -0
  36. evaluation/items/magicoder__hns_f8_s1/scored.jsonl.gz +3 -0
  37. evaluation/items/magicoder__hns_f8_s2/predictions.jsonl.gz +3 -0
  38. evaluation/items/magicoder__hns_f8_s2/scored.jsonl.gz +3 -0
  39. evaluation/items/magicoder__original_lora/predictions.jsonl.gz +3 -0
  40. evaluation/items/magicoder__original_lora/scored.jsonl.gz +3 -0
  41. evaluation/results.json +110 -0
  42. hns/build_manifest.json +139 -0
  43. hns/build_metadata/hns_f0_s0/spectral_edit_meta.json +0 -0
  44. hns/build_metadata/hns_f2_s0/spectral_edit_meta.json +0 -0
  45. hns/build_metadata/hns_f2_s1/spectral_edit_meta.json +0 -0
  46. hns/build_metadata/hns_f2_s2/spectral_edit_meta.json +0 -0
  47. hns/build_metadata/hns_f4_s0/spectral_edit_meta.json +0 -0
  48. hns/build_metadata/hns_f4_s1/spectral_edit_meta.json +0 -0
  49. hns/build_metadata/hns_f4_s2/spectral_edit_meta.json +0 -0
  50. hns/build_metadata/hns_f8_s0/spectral_edit_meta.json +0 -0
.gitattributes CHANGED
@@ -33,3 +33,4 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
33
  *.zip filter=lfs diff=lfs merge=lfs -text
34
  *.zst filter=lfs diff=lfs merge=lfs -text
35
  *tfevents* filter=lfs diff=lfs merge=lfs -text
36
+ tokenizer.json filter=lfs diff=lfs merge=lfs -text
MANIFEST.sha256 ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ef7992d2bd9c83264361d19136cc28a9634d902f712bd4b69b683d7d79e2b951 README.md
2
+ 8d72afa82bd691dac3abefe779d5f18591874aa53bd42852d99b215ef75e1bac adapter_config.json
3
+ eb3899888d043eb204ac10f9557344a1fabc0bb4d4e82965ae6a615047243932 adapter_model.safetensors
4
+ a55ee1b1660128b7098723e0abcd92caa0788061051c62d51cbe87d9cf1974d8 chat_template.jinja
5
+ 12cf524fab02e2938d9225600ed6a993a7fb02c2752b4d8f60dc0ce46c920a75 code/reproduce_hns_seed_checkpoint.py
6
+ 5438e90bbcc2e1be39101dc3c508ffa2efb27427115668d391db168fdb46dd8a code/source_files_sha256.json
7
+ 2c6035e0feafb9c18eb74ad1ccb905d16832f900d03c15f4b79f86e37949de28 code/source_snapshot.tar.gz
8
+ 7dd3464b69ac5f3c6fc1691cb72e7a536434992d8457a6bb2ab94d5f2088f24e comparison/configuration_audit.md
9
+ fa48eb079a55cac80029a06f79df56374f1945a5725a8d1f51e6d2d627ebf3eb comparison/three_run_scores.json
10
+ db974c79f5fd39b01d0fd897527ab9a8358c1ee5db820cccfe5a04928a958992 data/dataset_provenance.json
11
+ e798fddd6739ebbc00ac62137021d08417a959720737fc5c9ad2c7f4c8d66ac4 data/selected_source_indices.json.gz
12
+ 3bea46a554c67c5d2915e2db7d97d7733f09140e7a1776428c1b20b5ae5d124b evaluation/benchmark_input/humaneval-test.parquet
13
+ 04c491f1fee8ecaefde808322a240b14f30741e54137ad5d8088c98e9496acad evaluation/benchmark_provenance.json
14
+ 6c95d9d958dabaebacdedad919b0e90378b8ca5952a026a0a0023388bf0c7c49 evaluation/generation_manifest.json
15
+ bc4f7bfa4ffea338e8536fa693612d874bf2d5788ce5f727519a88eb3d825ad7 evaluation/items/base/predictions.jsonl.gz
16
+ 89fb691393ec184b9c980cc2472f05d093534731cf728fab978e676262120f35 evaluation/items/base/scored.jsonl.gz
17
+ 7513025fb68ac76b34f5ce9c5a5c85784a8b33172f9f725f95cd1bba0236f26d evaluation/items/magicoder__hns_f0_s0/predictions.jsonl.gz
18
+ 24cd70cac8e2b07f49ba07435fa58f55210fc207c076a7b928894c1fc22de1c1 evaluation/items/magicoder__hns_f0_s0/scored.jsonl.gz
19
+ 70f04ac0455f5e30e621a86f64294e1e2ab23efc324a3453d2d1f56b13a61513 evaluation/items/magicoder__hns_f2_s0/predictions.jsonl.gz
20
+ bc00f33297cdb95d042135ae43946f889f1c32aee00afc77988a3f6e526efe13 evaluation/items/magicoder__hns_f2_s0/scored.jsonl.gz
21
+ 368b235fc1b50afa1cf261b79d3f750be162c73c50dff9195fae8705bfd5c33f evaluation/items/magicoder__hns_f2_s1/predictions.jsonl.gz
22
+ d5042a7f265c67b04b05215321f33d6108a62c5a5a2271994b98270801993b84 evaluation/items/magicoder__hns_f2_s1/scored.jsonl.gz
23
+ 73cab3aeb10de5a7564fd0369f5942b116f030b223c223d0f7dbcd019296655a evaluation/items/magicoder__hns_f2_s2/predictions.jsonl.gz
24
+ 4a7c94c685257a9cd5db106291bd240c59d72390aa661f85f7888dea7cb6b4c3 evaluation/items/magicoder__hns_f2_s2/scored.jsonl.gz
25
+ 60e4eb9bb389dc55ce4ff5aa055946d97cdd713834ad12cccba30f50fe974073 evaluation/items/magicoder__hns_f4_s0/predictions.jsonl.gz
26
+ 0b3d2b741f38c71ffb67de3c98897e35b3812ac863c729b6c2c5431129f8c931 evaluation/items/magicoder__hns_f4_s0/scored.jsonl.gz
27
+ 7ab445c27d7d9559b4a04e00f6b90cb45f1291617409cd0abdc3f2f78843369c evaluation/items/magicoder__hns_f4_s1/predictions.jsonl.gz
28
+ c5d94b35cb6cd676076829fc423186bdc3e96056e3906a3eb3c560d6af0cf2e0 evaluation/items/magicoder__hns_f4_s1/scored.jsonl.gz
29
+ ab98fc7d8fe69daf54f83ffa1395128c14b639017eb13d6743662f7f5e0d096c evaluation/items/magicoder__hns_f4_s2/predictions.jsonl.gz
30
+ 3f6fb3596f2d76cd94c9a2fbe9326d88a28698bc45fd3782301b21e8c01d9e05 evaluation/items/magicoder__hns_f4_s2/scored.jsonl.gz
31
+ 5ac4a9a2cb167ed3034fdfd310f1d09178a5e745a6e10913602875572bd715fd evaluation/items/magicoder__hns_f8_s0/predictions.jsonl.gz
32
+ 1ae0947fa429425cc8afd3bc22aa8a721d93ea8b3cca1080a829fa16da242656 evaluation/items/magicoder__hns_f8_s0/scored.jsonl.gz
33
+ ee86fef92542667cd650ad6e3694e97dd64cc0760e96ed86d8957debf53f79d1 evaluation/items/magicoder__hns_f8_s1/predictions.jsonl.gz
34
+ 01594ace5342fd22d98e016f21d4241f0a9c0bb9d3a83d5844d7764086ec8a25 evaluation/items/magicoder__hns_f8_s1/scored.jsonl.gz
35
+ 0e321fafdc0cc8625c0cae5500eb52071f7be738e7f854203a9605b2c43bf124 evaluation/items/magicoder__hns_f8_s2/predictions.jsonl.gz
36
+ 6cd7e900047342a11edabc356a5af796eae9153b8b840d3e9ca75763587078e0 evaluation/items/magicoder__hns_f8_s2/scored.jsonl.gz
37
+ 234ab371674ce568b51ccf81543bb3ba33a4d956beefa79985085293da789030 evaluation/items/magicoder__original_lora/predictions.jsonl.gz
38
+ b4b7f3543fd399781fb2797d5bd8b2e3c2fa2806fee5457e9ff95c6e757dd077 evaluation/items/magicoder__original_lora/scored.jsonl.gz
39
+ 588af45105b2e25d7680e44bf8d554bb0d03bb59b5254056cd3f41a495218f44 evaluation/results.json
40
+ 9ecec17e56ca64457682307ac5e661093e5493906c2fe1a1a66b1582de03e947 hns/build_manifest.json
41
+ 01eeb273c43f7bc03845fe13599a017b8854634073d594beabf604bbdb721616 hns/build_metadata/hns_f0_s0/spectral_edit_meta.json
42
+ 293742b21603f9a5668b07809bcfb795e9bc3b562c4f6956e0126a80805c398d hns/build_metadata/hns_f2_s0/spectral_edit_meta.json
43
+ 9472d93e230caff4e8306a4e4069ac54b0454465d6810f7c66d110a5416421b0 hns/build_metadata/hns_f2_s1/spectral_edit_meta.json
44
+ 9cf9d3d208f2b73ba9f332d58cf7d73e7f871774716a33c3281cc24c05643765 hns/build_metadata/hns_f2_s2/spectral_edit_meta.json
45
+ fbdd0a652d45c44bfbbf8dfe810243ad16efc63cfc08350d46da12bf855441bd hns/build_metadata/hns_f4_s0/spectral_edit_meta.json
46
+ ae0b101e36149f5ea757e039487256975d3cd92f93d253d4e613bd6445053ec7 hns/build_metadata/hns_f4_s1/spectral_edit_meta.json
47
+ 770be53c359a0a999443992f2c9d438e93b6898f60f8fe91a6fe7df35abfad4e hns/build_metadata/hns_f4_s2/spectral_edit_meta.json
48
+ 2c285d796cd0efb2d160aba73d71be73f73eda5cf0cefcc8909c4aeebca5d456 hns/build_metadata/hns_f8_s0/spectral_edit_meta.json
49
+ 7054c3f331580aabd3d08be804de9a372829b41dfd863800c926e96932ae02f1 hns/build_metadata/hns_f8_s1/spectral_edit_meta.json
50
+ ec720077b56ceeb33c41ba5c03081bd7239bc4d5929619894c7c836e6692c563 hns/build_metadata/hns_f8_s2/spectral_edit_meta.json
51
+ 894e8aad6258c17730df57cc0f2b796681741619fe0c476aa14b651814924f04 hns/grid_config.json
52
+ e037ec87f3b266b24c4ef2818b193ddac67cb9e00f5a917ecffd7428687416e5 publication.json
53
+ 773fe06aafc2451c80a79ee24163f1448cf118dd94cbad79be89ada232f58ad3 requirements-freeze.txt
54
+ bad3d51a6c84413ec246e87bbfe9c1f0946399003d59147f379ce65445eb599c run_args.json
55
+ c303cf2a42e67e7aa3b85fde7cc3243a50efc8e6d14e5ee29ef815fa472ab915 run_config.json
56
+ be75606093db2094d7cd20f3c2f385c212750648bd6ea4fb2bf507a6a4c55506 tokenizer.json
57
+ 1cc816812993bff176eb4f7495433b736f06fba9b6e7b05cac7b4a1780650c95 tokenizer_config.json
58
+ 7403be925bcc62812580e4bd0f1971de071f433dc93d87da74e21b1bfeca59c0 trainer_state.json
59
+ d958bd5806f7c671a581dc5d1a719853ffb9ec24578dd53778d4c6ba45e8b624 training_args.json
README.md ADDED
@@ -0,0 +1,147 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ base_model: Qwen/Qwen3-8B
3
+ library_name: peft
4
+ pipeline_tag: text-generation
5
+ datasets:
6
+ - ise-uiuc/Magicoder-Evol-Instruct-110K
7
+ tags:
8
+ - lora
9
+ - spectral-surgery
10
+ - training-seed-replication
11
+ - b300
12
+ - code
13
+ - seed-44
14
+ ---
15
+
16
+ # Qwen3-8B + magicoder — LoRA, training seed 44
17
+
18
+ This repository contains the **unedited final LoRA adapter**, not a full 8B base model and not an HNS-edited adapter. It is one of the 12 B300 replication runs (two bases × three training tasks × seeds43/44), completed September 13, 2026. HNS is a post-hoc transformation of this saved LoRA, not additional training. All HNS scores below use this source checkpoint; derived HNS weights are not uploaded here. Reconstruction code and metadata are included.
19
+
20
+ ## Base Model
21
+
22
+ - Model: [Qwen/Qwen3-8B](https://huggingface.co/Qwen/Qwen3-8B).
23
+ - Download revision: `b968826d9c46dd6066d109eabc6255188de91218`. Per-file local download revisions and weight/tokenizer SHA256 hashes are in `publication.json`.
24
+ - Base weights are not redistributed. Users must obtain access to the base and comply with its license, acceptable-use policy and dataset terms. No independent license grant is implied by this adapter release.
25
+
26
+ ## Training — requested versus effective configuration
27
+
28
+ | Field | Actual saved run / provenance |
29
+ |---|---|
30
+ | Dataset | `ise-uiuc/Magicoder-Evol-Instruct-110K`, local train parquet snapshot |
31
+ | Source rows | 111183 |
32
+ | Selected rows before truncation filtering | 50000 |
33
+ | Actual response-supervised training rows | 49936 |
34
+ | Training epochs | 1.0 |
35
+ | Actual final optimizer updates | 1561 |
36
+ | Maximum sequence length | 4096 |
37
+ | Per-device micro-batch / accumulation | 16 / 2 |
38
+ | GPU count / effective global batch | 1 NVIDIA B300 / 32 |
39
+ | LR / scheduler | 2e-05 / `cosine` |
40
+ | **Actual warmup** | **0 steps (zero warmup)** |
41
+ | CLI-requested warmup ratio | 0.05 — did NOT take effect |
42
+ | Scheduler kwargs | `null` |
43
+ | Optimizer | `adamw_torch_fused`, Adam betas (0.9, 0.999), epsilon 1e-08 |
44
+ | Weight decay / max gradient norm | 0.0 / 1.0 |
45
+ | LoRA | r=16, alpha=32, dropout=0.05, bias=none |
46
+ | Target modules | up_proj, q_proj, k_proj, gate_proj, o_proj, v_proj, down_proj |
47
+ | Precision / checkpointing | bf16 / gradient checkpointing enabled; not QLoRA |
48
+ | SFT | Chat template `non_thinking`; response-only loss, prompt labels masked -100 |
49
+ | Truncation / padding | Right truncation; drop examples with no supervised completion tokens; dynamic right padding to multiple8; no packing |
50
+ | Training seed / Trainer data_seed | 44 / 44 |
51
+ | Dataset subset seed | 42, unchanged between seeds43/44 |
52
+ | Determinism | full_determinism=False; no claim of bitwise reproducibility |
53
+
54
+ **Warmup audit correction:** this code passes CLI `warmup_ratio`, then filters TrainingArguments kwargs against the installed signature. Transformers5.16.1 does not expose that argument, so the requested ratio was dropped and `warmup_steps=0` remained. `training_args.json` and the archived source are authoritative for the effective run, not the requested CLI alone. The reproduction command deliberately requests ratio0. Do not describe these runs as having 5% or 10% warmup.
55
+
56
+ Data selection: valid-format filtering, then `datasets.Dataset.shuffle(seed=42).select(range(50000))` for Magicoder/MetaMath; Tulu uses the full valid split without downsampling. The row-index list in `data/selected_source_indices.json.gz` references the exact local parquet row ordering **before** tokenization/truncation filtering. Source file SHA256: `ff1dda789a725a9b8840f63aa9956bcff397b8dc4311cfc98aaa2c11ba0ed0ca`. Upstream dataset revision was not recorded by the original asset export; do not claim that downloading current main recreates the exact bytes/order. Verify the file hash or resolve snapshot provenance before claiming exact data reproduction. Training text is not redistributed here.
57
+
58
+ Saved evidence: `run_args.json` (requested), `run_config.json` (pre-tokenization estimates), `training_args.json` (effective), `trainer_state.json` (actual final steps and logged training metrics), `requirements-freeze.txt`, and `publication.json`. Local paths and credential fields are sanitized. Pickled optimizer states / training_args.bin are intentionally omitted.
59
+
60
+ ## Evaluation
61
+
62
+ Benchmark: **HumanEval**, primary metric `pass_at_1`, 164 items. Each trained checkpoint was evaluated once on the complete available in-domain split. This is not three repetitions of inference on one checkpoint. Seeds43/44 are separate training runs. No training-seed CI or significance claim is made from a single row.
63
+
64
+ | Setting | Value |
65
+ |---|---|
66
+ | Backend / attention | vLLM / FLASH_ATTN, tensor parallel1 |
67
+ | Sampling | Greedy: temperature0, top_p1, inference seed42 |
68
+ | Chat | non_thinking render mode; Qwen enable_thinking=False |
69
+ | Maximum model length / new tokens | 4096 / 512 |
70
+ | GPU memory / max concurrent sequences | 0.94 / 1024 |
71
+ | Token budget / adapter block / prompt chunk | 65536 / 11 / 512 |
72
+ | Scheduling / prefix cache | async_scheduling=False / enable_prefix_caching=False |
73
+ | Numerics | VLLM_BATCH_INVARIANT=1, CUBLAS_WORKSPACE_CONFIG=:4096:8 |
74
+ | Compilation cache | Disabled, per-job cache root, short IPC temp path |
75
+
76
+ HumanEval uses chat strict-continuation prompts, max_new_tokens512, pass@1, code-execution timeout3s and 32 CPU workers. GSM8K uses max_new_tokens512 and the strict answer extractor in the archived scorer (not a 2048-token model-card evaluation). IFEval uses its 541-item `train`-named evaluation split, max_new_tokens2048, prompt-level strict accuracy. The GSM8K/IFEval local benchmark inputs were reconstructed from earlier scored outputs (gold and instruction metadata), not newly sampled; the exact input file and hash are included under `evaluation/benchmark_input/`. HumanEval input is the local test parquet. Do not mix these results with earlier model-card scores from other prompts/token budgets.
77
+
78
+ | Method | Score (%) | Correct / samples | Change vs LoRA (pp) |
79
+ |---|---:|---|---:|
80
+ | Base (not a training replicate) | 66.46 | 109/164 | — |
81
+ | LoRA (weights in this repository) | 64.63 | 106/164 | +0.00 |
82
+ | 0+0 SVD reconstruction control | 64.63 | 106/164 | +0.00 |
83
+ | HNS 2+0, all modules | 72.56 | 119/164 | +7.93 |
84
+ | HNS 2+1, all modules | 72.56 | 119/164 | +7.93 |
85
+ | HNS 2+2, all modules | 73.17 | 120/164 | +8.54 |
86
+ | HNS 4+0, all modules | 72.56 | 119/164 | +7.93 |
87
+ | HNS 4+1, all modules | 74.39 | 122/164 | +9.76 |
88
+ | HNS 4+2, all modules | 73.78 | 121/164 | +9.15 |
89
+ | HNS 8+0, all modules | 76.22 | 125/164 | +11.59 |
90
+ | HNS 8+1, all modules | 73.78 | 121/164 | +9.15 |
91
+ | HNS 8+2, all modules | 75.00 | 123/164 | +10.37 |
92
+
93
+ HNS grid: all seven LoRA module types, output rank16, strength1, preserve original module nuclear norm, fast steps2/4/8 × stable steps0/1/2. `0+0` is an SVD-factorization reconstruction control, not spectral editing. Maxima on this test set are descriptive, not validated parameter selection. In IFEval, reconstruction itself can change scores materially; all gains over LoRA cannot automatically be attributed to spectral editing.
94
+
95
+ Machine-readable full metrics are in `evaluation/results.json`; paired per-item evidence and generated token IDs/text are in `evaluation/items/<variant>/scored.jsonl.gz` and `predictions.jsonl.gz`. Off-task forgetting evaluation was still incomplete at publication preparation; no incomplete forgetting scores are included or implied.
96
+
97
+ ## Reproduction and loading
98
+
99
+ Use an isolated environment matching the recorded package versions. `requirements-freeze.txt` is the full training environment inventory, not a guarantee that all platform-specific packages install on arbitrary systems. The source archive is a publication-time snapshot, with per-file hashes; a clean training-time Git commit was not saved. Python version and evaluation-time package versions are recorded in `publication.json` (current evaluation environment observation is distinguished from training inventory).
100
+
101
+ ```bash
102
+ # In the downloaded repository directory:
103
+ tar -xzf code/source_snapshot.tar.gz
104
+ pip install --no-deps -e source_snapshot
105
+ # Obtain the exact training parquet under /path/to/data/; its SHA256 is checked.
106
+ python code/reproduce_hns_seed_checkpoint.py train --data-dir /path/to/data --output-dir /path/to/new-run
107
+ # Rebuild all nine HNS variants plus the 0+0 control from the root LoRA:
108
+ python code/reproduce_hns_seed_checkpoint.py build-hns --output-dir /path/to/rebuilt-grid
109
+ # In-domain benchmark inputs are included; record any inference-budget override:
110
+ python code/reproduce_hns_seed_checkpoint.py evaluate --grid-dir /path/to/rebuilt-grid --output-dir /path/to/new-eval
111
+ ```
112
+
113
+ The archived training entrypoint and the explicit command implement the actual zero-warmup run. With other Transformers versions, defaults/Trainer behavior may differ; recorded data hashes, model revisions, tokenizer files, preprocessing and effective settings are necessary checks, not a promise of bitwise identical training. For the successful Llama43 evaluation the recorded batched-token budget was131072, whereas the other new groups used65536. This stack has also failed at131072 in other initializations; `evaluate --token-budget 65536` is a safer alternative but a changed evaluation configuration and must be reported.
114
+
115
+ `build-hns` also fetches the other two source LoRAs for this same base/training seed, verifies their published weight hashes, and reconstructs the original three-task 33-adapter manifest ordering. This preserves adapter registration IDs for the target-task evaluation rather than renumbering an isolated 11-adapter grid. `--peer-root` can point to an offline directory containing those named repository folders. For stability the portable helper disables the compilation cache; this differs from the earlier successful Llama43 run, whose scheduler log shows default compile-cache use. No original compiled cache is redistributed, and exact-token numerical identity is not promised.
116
+
117
+ ```python
118
+ import torch
119
+ from transformers import AutoModelForCausalLM, AutoTokenizer
120
+ from peft import PeftModel
121
+
122
+ repo_id = "tianzl66/Qwen3-8B-Magicoder-50K-LoRA-E1-Seed44"
123
+ base_id = "Qwen/Qwen3-8B"
124
+ base_revision = 'b968826d9c46dd6066d109eabc6255188de91218'
125
+ tokenizer = AutoTokenizer.from_pretrained(repo_id)
126
+ base = AutoModelForCausalLM.from_pretrained(
127
+ base_id, revision=base_revision, torch_dtype=torch.bfloat16, device_map="auto"
128
+ )
129
+ model = PeftModel.from_pretrained(base, repo_id)
130
+ model.eval()
131
+ ```
132
+
133
+ `adapter_config.json` uses the public base-model ID rather than a private filesystem path; this metadata normalization does not change `adapter_model.safetensors`. Original adapter-config hash is recorded separately. Root tokenizer and chat-template files are the saved training artifacts. Loading example is not itself a benchmark reproduction protocol.
134
+
135
+ ## Comparison with the historical seed42 checkpoint
136
+
137
+ The older checkpoint is separately listed in `comparison/three_run_scores.json` and `comparison/configuration_audit.md`. It is a historical reference, **not verified to be an identical-recipe third seed**. New runs use larger micro-batches, padding8 and actual zero warmup; original dataset identity and some Llama settings are not fully verified. Both new seeds share the same saved non-seed recipe. Old Llama Magicoder/MetaMath training seed labels lack complete original Trainer evidence in this audit. Do not pool 42/43/44 into a strict identical-configuration three-seed mean±SD. Standard deviation is not a confidence interval.
138
+
139
+ ## Files and integrity
140
+
141
+ - `adapter_model.safetensors`, `adapter_config.json`, saved tokenizer/chat template: loadable PEFT source LoRA.
142
+ - Training JSON evidence, final `trainer_state.json`, requirements inventory.
143
+ - `publication.json`, `data/*`, `hns/*`, `evaluation/*`, `comparison/*`: provenance, HNS metadata, input/output evidence and historical comparison.
144
+ - `code/*`: source archive and portable train/build/evaluate helper.
145
+ - `MANIFEST.sha256`: hashes of all prepared payload files except itself; remote commit ID is tracked in the publisher's upload receipt.
146
+
147
+ The pre-normalization trained weight SHA256 is `eb3899888d043eb204ac10f9557344a1fabc0bb4d4e82965ae6a615047243932`. No intermediate checkpoint, optimizer state, full base weight or scheduler log is uploaded. This release documents reproducibility boundaries rather than claiming random variation was eliminated.
adapter_config.json ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "alora_invocation_tokens": null,
3
+ "alpha_pattern": {},
4
+ "arrow_config": null,
5
+ "auto_mapping": null,
6
+ "base_model_name_or_path": "Qwen/Qwen3-8B",
7
+ "bias": "none",
8
+ "corda_config": null,
9
+ "ensure_weight_tying": false,
10
+ "eva_config": null,
11
+ "exclude_modules": null,
12
+ "fan_in_fan_out": false,
13
+ "inference_mode": true,
14
+ "init_lora_weights": true,
15
+ "layer_replication": null,
16
+ "layers_pattern": null,
17
+ "layers_to_transform": null,
18
+ "loftq_config": {},
19
+ "lora_alpha": 32,
20
+ "lora_bias": false,
21
+ "lora_dropout": 0.05,
22
+ "lora_ga_config": null,
23
+ "megatron_config": null,
24
+ "megatron_core": "megatron.core",
25
+ "modules_to_save": null,
26
+ "monteclora_config": null,
27
+ "peft_type": "LORA",
28
+ "peft_version": "0.20.0",
29
+ "qalora_group_size": 16,
30
+ "r": 16,
31
+ "rank_pattern": {},
32
+ "revision": "b968826d9c46dd6066d109eabc6255188de91218",
33
+ "target_modules": [
34
+ "up_proj",
35
+ "q_proj",
36
+ "k_proj",
37
+ "gate_proj",
38
+ "o_proj",
39
+ "v_proj",
40
+ "down_proj"
41
+ ],
42
+ "target_parameters": null,
43
+ "task_type": "CAUSAL_LM",
44
+ "trainable_token_indices": null,
45
+ "use_bdlora": null,
46
+ "use_dora": false,
47
+ "use_qalora": false,
48
+ "use_rslora": false,
49
+ "velora_config": null
50
+ }
adapter_model.safetensors ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:eb3899888d043eb204ac10f9557344a1fabc0bb4d4e82965ae6a615047243932
3
+ size 174655536
chat_template.jinja ADDED
@@ -0,0 +1,89 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {%- if tools %}
2
+ {{- '<|im_start|>system\n' }}
3
+ {%- if messages[0].role == 'system' %}
4
+ {{- messages[0].content + '\n\n' }}
5
+ {%- endif %}
6
+ {{- "# Tools\n\nYou may call one or more functions to assist with the user query.\n\nYou are provided with function signatures within <tools></tools> XML tags:\n<tools>" }}
7
+ {%- for tool in tools %}
8
+ {{- "\n" }}
9
+ {{- tool | tojson }}
10
+ {%- endfor %}
11
+ {{- "\n</tools>\n\nFor each function call, return a json object with function name and arguments within <tool_call></tool_call> XML tags:\n<tool_call>\n{\"name\": <function-name>, \"arguments\": <args-json-object>}\n</tool_call><|im_end|>\n" }}
12
+ {%- else %}
13
+ {%- if messages[0].role == 'system' %}
14
+ {{- '<|im_start|>system\n' + messages[0].content + '<|im_end|>\n' }}
15
+ {%- endif %}
16
+ {%- endif %}
17
+ {%- set ns = namespace(multi_step_tool=true, last_query_index=messages|length - 1) %}
18
+ {%- for message in messages[::-1] %}
19
+ {%- set index = (messages|length - 1) - loop.index0 %}
20
+ {%- if ns.multi_step_tool and message.role == "user" and message.content is string and not(message.content.startswith('<tool_response>') and message.content.endswith('</tool_response>')) %}
21
+ {%- set ns.multi_step_tool = false %}
22
+ {%- set ns.last_query_index = index %}
23
+ {%- endif %}
24
+ {%- endfor %}
25
+ {%- for message in messages %}
26
+ {%- if message.content is string %}
27
+ {%- set content = message.content %}
28
+ {%- else %}
29
+ {%- set content = '' %}
30
+ {%- endif %}
31
+ {%- if (message.role == "user") or (message.role == "system" and not loop.first) %}
32
+ {{- '<|im_start|>' + message.role + '\n' + content + '<|im_end|>' + '\n' }}
33
+ {%- elif message.role == "assistant" %}
34
+ {%- set reasoning_content = '' %}
35
+ {%- if message.reasoning_content is string %}
36
+ {%- set reasoning_content = message.reasoning_content %}
37
+ {%- else %}
38
+ {%- if '</think>' in content %}
39
+ {%- set reasoning_content = content.split('</think>')[0].rstrip('\n').split('<think>')[-1].lstrip('\n') %}
40
+ {%- set content = content.split('</think>')[-1].lstrip('\n') %}
41
+ {%- endif %}
42
+ {%- endif %}
43
+ {%- if loop.index0 > ns.last_query_index %}
44
+ {%- if loop.last or (not loop.last and reasoning_content) %}
45
+ {{- '<|im_start|>' + message.role + '\n<think>\n' + reasoning_content.strip('\n') + '\n</think>\n\n' + content.lstrip('\n') }}
46
+ {%- else %}
47
+ {{- '<|im_start|>' + message.role + '\n' + content }}
48
+ {%- endif %}
49
+ {%- else %}
50
+ {{- '<|im_start|>' + message.role + '\n' + content }}
51
+ {%- endif %}
52
+ {%- if message.tool_calls %}
53
+ {%- for tool_call in message.tool_calls %}
54
+ {%- if (loop.first and content) or (not loop.first) %}
55
+ {{- '\n' }}
56
+ {%- endif %}
57
+ {%- if tool_call.function %}
58
+ {%- set tool_call = tool_call.function %}
59
+ {%- endif %}
60
+ {{- '<tool_call>\n{"name": "' }}
61
+ {{- tool_call.name }}
62
+ {{- '", "arguments": ' }}
63
+ {%- if tool_call.arguments is string %}
64
+ {{- tool_call.arguments }}
65
+ {%- else %}
66
+ {{- tool_call.arguments | tojson }}
67
+ {%- endif %}
68
+ {{- '}\n</tool_call>' }}
69
+ {%- endfor %}
70
+ {%- endif %}
71
+ {{- '<|im_end|>\n' }}
72
+ {%- elif message.role == "tool" %}
73
+ {%- if loop.first or (messages[loop.index0 - 1].role != "tool") %}
74
+ {{- '<|im_start|>user' }}
75
+ {%- endif %}
76
+ {{- '\n<tool_response>\n' }}
77
+ {{- content }}
78
+ {{- '\n</tool_response>' }}
79
+ {%- if loop.last or (messages[loop.index0 + 1].role != "tool") %}
80
+ {{- '<|im_end|>\n' }}
81
+ {%- endif %}
82
+ {%- endif %}
83
+ {%- endfor %}
84
+ {%- if add_generation_prompt %}
85
+ {{- '<|im_start|>assistant\n' }}
86
+ {%- if enable_thinking is defined and enable_thinking is false %}
87
+ {{- '<think>\n\n</think>\n\n' }}
88
+ {%- endif %}
89
+ {%- endif %}
code/reproduce_hns_seed_checkpoint.py ADDED
@@ -0,0 +1,112 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ """Portable helper shipped with each published LoRA; matches effective zero warmup."""
3
+ import argparse
4
+ import hashlib
5
+ import json
6
+ import os
7
+ import subprocess
8
+ import sys
9
+ import tempfile
10
+ from pathlib import Path
11
+
12
+
13
+ def sha256(path):
14
+ h = hashlib.sha256()
15
+ with path.open('rb') as f:
16
+ for chunk in iter(lambda: f.read(8 * 1024 * 1024), b''):
17
+ h.update(chunk)
18
+ return h.hexdigest()
19
+
20
+
21
+ def main():
22
+ parser = argparse.ArgumentParser(description=__doc__)
23
+ parser.add_argument('action', choices=['train', 'build-hns', 'evaluate'])
24
+ parser.add_argument('--data-dir', type=Path)
25
+ parser.add_argument('--grid-dir', type=Path)
26
+ parser.add_argument('--output-dir', required=True, type=Path)
27
+ parser.add_argument('--base-dir', type=Path)
28
+ parser.add_argument('--peer-root', type=Path)
29
+ parser.add_argument('--token-budget', type=int)
30
+ args = parser.parse_args()
31
+ repo = Path(__file__).resolve().parents[1]
32
+ if args.output_dir.resolve().is_relative_to(repo):
33
+ parser.error('--output-dir must be outside the downloaded repository to avoid recursive grid copies')
34
+ meta = json.loads((repo / 'publication.json').read_text())
35
+ source = repo / 'source_snapshot'
36
+ if not source.is_dir():
37
+ raise RuntimeError('Extract code/source_snapshot.tar.gz in the repository directory first.')
38
+ env = dict(os.environ)
39
+ env['PYTHONPATH'] = str(source / 'src') + os.pathsep + str(source / 'scripts')
40
+ env.update(TOKENIZERS_PARALLELISM='false', VLLM_BATCH_INVARIANT='1', VLLM_USE_FLASHINFER_SAMPLER='0',
41
+ CUBLAS_WORKSPACE_CONFIG=':4096:8', PYTHONHASHSEED=str(meta['training_seed'] if args.action == 'train' else 42),
42
+ VLLM_DISABLE_COMPILE_CACHE='1')
43
+ with tempfile.TemporaryDirectory(prefix='hr-') as temporary:
44
+ env.update(TMPDIR=temporary, TMP=temporary, TEMP=temporary, VLLM_CACHE_ROOT=temporary + '/vc')
45
+ base = args.base_dir
46
+ if args.action != 'build-hns' and base is None:
47
+ from huggingface_hub import snapshot_download
48
+ revision = meta['base_provenance']['revision']
49
+ if revision is None:
50
+ raise RuntimeError('A unique base revision is unavailable; provide --base-dir and verify publication.json hashes.')
51
+ base = Path(snapshot_download(meta['base_provenance']['model_id'], revision=revision))
52
+ if base is not None:
53
+ for name, expected in meta['base_provenance']['files_sha256'].items():
54
+ assert sha256(base / name) == expected, f'Base file mismatch: {name}'
55
+ task = meta['train_task']
56
+ if args.action == 'train':
57
+ if args.data_dir is None:
58
+ parser.error('train requires --data-dir')
59
+ dataset = args.data_dir / meta['dataset']['filename']
60
+ assert sha256(dataset) == meta['dataset']['file_sha256'], 'Training dataset hash mismatch'
61
+ a = meta['requested_run_args']
62
+ command = [sys.executable, '-m', 'finetune.train_sft_peft', '--base_model', str(base), '--task', 'if' if task == 'tulu' else task,
63
+ '--peft_method', 'lora', '--dataset_path', str(dataset), '--output_dir', str(args.output_dir), '--train_profile', 'none',
64
+ '--warmup_ratio', '0', '--seed', str(meta['training_seed']), '--dataset_seed', '42', '--bf16', '--gradient_checkpointing']
65
+ fields = ['num_train_epochs', 'per_device_train_batch_size', 'gradient_accumulation_steps', 'global_train_batch_size', 'lr', 'weight_decay',
66
+ 'min_lr_ratio', 'lr_scheduler_type', 'adam_beta1', 'adam_beta2', 'grad_clip', 'max_seq_len', 'max_train_samples', 'sft_format',
67
+ 'chat_template_mode', 'target_modules', 'r', 'lora_alpha', 'lora_dropout', 'pad_to_multiple_of', 'save_strategy', 'save_steps',
68
+ 'save_total_limit', 'logging_steps']
69
+ for key in fields:
70
+ if a.get(key) is not None:
71
+ command.extend(['--' + key, str(a[key])])
72
+ subprocess.run(command, env=env, check=True)
73
+ else:
74
+ benchmark_meta = json.loads((repo / 'evaluation/benchmark_provenance.json').read_text())
75
+ benchmark = repo / 'evaluation/benchmark_input' / benchmark_meta['filename']
76
+ assert sha256(benchmark) == benchmark_meta['sha256']
77
+ cfg = {'bases': {meta['base']: str(base)}, 'checkpoints': [{'base': meta['base'], 'train_task': task, 'lora': str(repo)}],
78
+ 'evaluation_tasks': {task: {**meta['evaluation_task'], 'dataset': str(benchmark)}}}
79
+ if args.action == 'build-hns':
80
+ cfg['checkpoints'] = []
81
+ for peer in meta['peer_source_adapters']:
82
+ if peer['task'] == task:
83
+ peer_dir = repo
84
+ elif args.peer_root is not None:
85
+ peer_dir = args.peer_root / peer['repo_id'].split('/')[-1]
86
+ else:
87
+ from huggingface_hub import snapshot_download
88
+ peer_dir = Path(snapshot_download(peer['repo_id'], allow_patterns=['adapter*', 'tokenizer*', 'chat_template*', 'special_tokens_map.json', 'publication.json']))
89
+ assert sha256(peer_dir / 'adapter_model.safetensors') == peer['weights_sha256'], f'Peer adapter mismatch: {peer["repo_id"]}'
90
+ cfg['checkpoints'].append({'base': meta['base'], 'train_task': peer['task'], 'lora': str(peer_dir)})
91
+ config = Path(temporary) / 'task.json'
92
+ config.write_text(json.dumps(cfg))
93
+ if args.action == 'build-hns':
94
+ command = [sys.executable, str(source / 'scripts/build_hns_step_grid_2x4.py'), '--task_config', str(config),
95
+ '--grid_config', str(repo / 'hns/grid_config.json'), '--base', meta['base'], '--output_dir', str(args.output_dir), '--device', 'cuda']
96
+ subprocess.run(command, env=env, check=True)
97
+ else:
98
+ if args.grid_dir is None:
99
+ parser.error('evaluate requires --grid-dir')
100
+ manifest = args.grid_dir / meta['base'] / 'variant_manifest.json'
101
+ for script, flags in [
102
+ ('eval_forgetting_matrix_vllm.py', ['--base_model', str(base), '--variant_manifest', str(manifest), '--config', str(config),
103
+ '--output_dir', str(args.output_dir), '--tasks', task, '--diagonal_only', '--max_model_len', '4096', '--gpu_memory_utilization', '0.94',
104
+ '--max_num_seqs', '1024', '--max_num_batched_tokens', str(args.token_budget or meta['inference']['max_num_batched_tokens']),
105
+ '--adapter_block_size', '11', '--max_lora_rank', '16', '--prompt_chunk_short', '4096', '--prompt_chunk_long', '512', '--seed', '42']),
106
+ ('score_forgetting_matrix.py', ['--matrix_dir', str(args.output_dir), '--workers', '32']),
107
+ ]:
108
+ subprocess.run([sys.executable, str(source / 'scripts' / script), *flags], env=env, check=True)
109
+
110
+
111
+ if __name__ == '__main__':
112
+ main()
code/source_files_sha256.json ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "src/finetune/__init__.py": "f030efab43de6fffe519572eae197852f8ab29b3a583095ea198ade243a961de",
3
+ "src/finetune/data/__init__.py": "f030efab43de6fffe519572eae197852f8ab29b3a583095ea198ade243a961de",
4
+ "src/finetune/data/base.py": "f32a663b0454f137950b4a7587010a634fc4021967bc0e61a33fd5153e61eb3a",
5
+ "src/finetune/data/chat_sft.py": "46fb8505c1c81d95536350a0078e6c142aa21f0e5e708b11585bdac03151c757",
6
+ "src/finetune/data/code_magicoder.py": "8db7196e462777b249d77959c67e1c4f09b5f2560a1b633accfa61af93c56e7f",
7
+ "src/finetune/data/commonsense170k.py": "5979dbff52088a18ab9e543a7eb46968e51ea8be2a52c3f680c5700ed9f71f83",
8
+ "src/finetune/data/csqa.py": "3313517b4cdf5afe519ad0fdbbc739c468d826ac6d0ae13fcfb74d1ac6063db1",
9
+ "src/finetune/data/general_alpaca.py": "2268d74f5fd449ed2df227f0847e4076d7875338913062e601bd1a0aeb3bc559",
10
+ "src/finetune/data/instruction_following_tulu.py": "fcbbba9cc5c7382d74b1afb6cd7f3f4feceb2c8558fbb0e291a0b2ebbfd4b445",
11
+ "src/finetune/data/math_metamathqa.py": "264e5882f197872cece419ebc44e2e908ab6d09bf79ff61c370d8c96c3a699d9",
12
+ "src/finetune/data/plain_sft.py": "60fcd7419294ed2eeb59532f6e848677ee526ab1f28b48de1e70d7a4992e5bd2",
13
+ "src/finetune/data/registry.py": "07fb25f70c2273f3e29f36bbed424937ad7470e9275dd05ce8438ee549ade671",
14
+ "src/finetune/eval/__init__.py": "b5fda683ae902d735af7e1a8a240567721506e043366a82ee00ebf2235e1b48e",
15
+ "src/finetune/eval/eval_csqa.py": "d8bb223d428900056f71f5315f2ac9beba7584dbdee191cb7b0fefc085ae3fa9",
16
+ "src/finetune/eval/eval_gsm8k.py": "ed95442c30536ac4ba90b5a2806d764cea8f8eb38c6879af2c0dd7b2c54dd335",
17
+ "src/finetune/eval/eval_humaneval.py": "babd571e6eb7af395281506db836e478ac1a32d6fc738a22051222009eea520e",
18
+ "src/finetune/eval/eval_ifbench.py": "4e65caf306cc16cf5962c5d7698a66faf9f2fbce2e4fb06d5180cd91b708e4d4",
19
+ "src/finetune/eval/eval_ifeval.py": "1af1ef7f6c8b38d91dd94bbbc4a0b373ed76a3186899197d1f3c046afd987ef0",
20
+ "src/finetune/eval/eval_mbpp.py": "bd597dc5b3b39a600fb8a498d30c1c1221dfb1fc48aefccd3d57d8a46ff5bb14",
21
+ "src/finetune/eval/generation.py": "bba4a24e4e5808f2abe74749a6f571a5aa1c7f27a03b9df2132ec835afbca075",
22
+ "src/finetune/eval/test_time_hns.py": "0084a6db6aef63aee63bce2471dbc3a8360e3d0aaa79e66651e2cd0925b2d36f",
23
+ "src/finetune/eval/vllm_utils.py": "5327e151f95281ec03b3c46bd4ba2d1f2c9250733fc0632a6e7bcb702048e500",
24
+ "src/finetune/peft_builders.py": "f078f271f90016786a37e02523b0d42c8c3fef2509aeacb93e18c3f057517a59",
25
+ "src/finetune/spectral_edit/__init__.py": "d6c9a8477c452768d4ec131db4b2482857a2e76f398cacec1a9343b7be902339",
26
+ "src/finetune/spectral_edit/ablations.py": "f488a31e0f8dde6d55bf24fc28585453e2d877f2221e3182e30fd54324683813",
27
+ "src/finetune/spectral_edit/calib.py": "6f3b52dd2eb831febacd50b39b4c653e7dbdb5704d1420113fc3fc63ff55ca2c",
28
+ "src/finetune/spectral_edit/cli.py": "cd8f140f626ce4e724f78e8448056290e467560ba0d305cf932aa31b2a7042e0",
29
+ "src/finetune/spectral_edit/edit_strategies.py": "bffb4aaa044f27a9e38718a832c30b93e29247ec71f267561c98ceb5c3acf2b9",
30
+ "src/finetune/spectral_edit/hooks.py": "9a7ca717caca6165568639ed221dc258a9efd3b95adca96587808a36ce6b8b22",
31
+ "src/finetune/spectral_edit/io.py": "296712529479318a67588f22052ea8587ed57d55371b6cd76918244d5749c5ea",
32
+ "src/finetune/spectral_edit/mechanism.py": "fb8487943478f124437cef8f3cf7cb013d6ed343fdc3e41816a1feb9e4a38854",
33
+ "src/finetune/spectral_edit/module_selection.py": "e11bce3cb632e16a3ae952cd4192b2517b12827396310d1cf58051e0f3e18e58",
34
+ "src/finetune/spectral_edit/posthoc_hns.py": "a9351267929f16efd5b511801c3b2128b3b213414053050636a6eb492cd62206",
35
+ "src/finetune/spectral_edit/runtime.py": "bf4b432df804cae4c24b1a5bc4941c034eb0006c0c7fd7b0cb8d3c25416e0a90",
36
+ "src/finetune/spectral_edit/svd.py": "606213fb325cd09d012f02e05adb269b0d8f1f92c6ccfef21fa7a409c82f9ce2",
37
+ "src/finetune/sweep/__init__.py": "f030efab43de6fffe519572eae197852f8ab29b3a583095ea198ade243a961de",
38
+ "src/finetune/sweep/make_grid.py": "5c38b8c9ed732049b066387b761a34df7cadc791d2314b83d5c149f8aa700bd2",
39
+ "src/finetune/sweep/run_grid.py": "4329a917f51e6768b057b48324df8211f45e92aef62428869def80f3f757702d",
40
+ "src/finetune/sweep/summarize_configs.py": "cfa5dc21d2574fe430a5a42396183e70fcfc0a4f80bcb201b8f245ae4ab3db1d",
41
+ "src/finetune/train_profiles.py": "637dd9076159c5c9662faa08842312c74959250a2018acb5cb11fa01e0ea9880",
42
+ "src/finetune/train_sft_peft.py": "460aa2198f17c6569b5f6eeaf8938381f0bc09b8233b42ac056b55ece77464d0",
43
+ "src/finetune/utils.py": "f9534ac44a2b90c8651b6d84089022a18ab331bd4c6c6c425013c58f5449207b",
44
+ "scripts/build_hns_step_grid_2x4.py": "99262fb3196cdc74060def60f42ddb89167d00ddb83aec3e61c9c6c8188de5e4",
45
+ "scripts/eval_forgetting_matrix_vllm.py": "46d57d067d0cdb68f3fda87269cfb9cf0895a1fa82051c5021fdad0da3a7c061",
46
+ "scripts/score_forgetting_matrix.py": "a172270a8d115d2f06863a0d181a784756412747a45e9dc02dd71d0f95de5bf5",
47
+ "scripts/eval_commonsense_8tasks.py": "0eb3dfbbccabdc97e4cdcc7c575756f5eb5db963ea0cf9427a1ff3e25c15334e",
48
+ "pyproject.toml": "f032a2b5e3fdd471e71cb69a4de96ccb1abf8e48b5607eb1cd0aa231df8c2335",
49
+ "README.md": "9233aff690c79bc5fb47317fd5e5d753e730997943e4e8391b3d60b4cd224648"
50
+ }
code/source_snapshot.tar.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2c6035e0feafb9c18eb74ad1ccb905d16832f900d03c15f4b79f86e37949de28
3
+ size 107620
comparison/configuration_audit.md ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # 三个训练运行的本任务结果与配置审计
2
+
3
+ 日期:2026-09-13。成绩单位均为百分比。原始 checkpoint 使用 2026-09-12 release 的统一实现 step-grid 成绩,不混入 Hugging Face 模型卡中的旧评测成绩。43/44 使用已完成的 hns_step_grid/eval,不使用正在运行的遗忘评测。
4
+
5
+ 发布前二次审计更正:下表 Warmup 是 CLI 请求比例,不是实际生效值。12 次新增运行保存的 training_args.json 均为 warmup_steps=0,且无 warmup_ratio;Transformers 5.16.1 的 TrainingArguments 接口不接受 warmup_ratio,训练脚本按签名过滤参数时丢弃该请求。因此这些训练实际没有 warmup,这是与原始 recipe 的额外差异。Magicoder 50K 为截断过滤前样本数,实际训练 Qwen 49,936 / Llama 49,941;实际更新步数分别为 Magicoder 1561、Qwen MetaMath 4689、Llama MetaMath 198、Tulu 470。
6
+
7
+ “42(原始)”是原始运行的归档标签;Qwen Magicoder/MetaMath/Tulu 和 Llama Tulu 的本地卡片/参数支持 seed42,Llama Magicoder/MetaMath 的完整原始 seed/Trainer 参数尚未在本次审计中核实。不能只用推理 seed42 推断训练 seed42。
8
+
9
+ 0+0 为 SVD 重构控制;其余为 all-module HNS,保留核范数、strength=1、输出 rank16。— 表示没有新增对应训练 checkpoint,不是零分。
10
+
11
+ ## 完整大表
12
+
13
+ | 模型 | 本任务基准 | Training seed | LoRA | 0+0 | 2+0 | 2+1 | 2+2 | 4+0 | 4+1 | 4+2 | 8+0 | 8+1 | 8+2 |
14
+ |---|---|---|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|
15
+ | Qwen3-8B | HumanEval | 42(原始) | 66.46 | 67.68 | 75.61 | 74.39 | 76.22 | 74.39 | 75.00 | 75.61 | 75.00 | 75.00 | 75.61 |
16
+ | Qwen3-8B | HumanEval | 43 | 62.80 | 64.02 | 74.39 | 75.00 | 74.39 | 73.78 | 74.39 | 75.61 | 73.78 | 75.61 | 75.61 |
17
+ | Qwen3-8B | HumanEval | 44 | 64.63 | 64.63 | 72.56 | 72.56 | 73.17 | 72.56 | 74.39 | 73.78 | 76.22 | 73.78 | 75.00 |
18
+ | Qwen3-8B | GSM8K | 42(原始) | 84.15 | 84.53 | 88.25 | 88.25 | 88.25 | 88.25 | 88.02 | 88.17 | 88.40 | 88.55 | 88.48 |
19
+ | Qwen3-8B | GSM8K | 43 | 84.00 | 83.93 | 87.41 | 87.72 | 86.96 | 87.19 | 86.81 | 87.19 | 87.11 | 87.19 | 87.11 |
20
+ | Qwen3-8B | GSM8K | 44 | 84.00 | 84.08 | 87.49 | 88.02 | 87.57 | 87.49 | 87.41 | 87.26 | 87.72 | 87.87 | 87.57 |
21
+ | Qwen3-8B | IFEval | 42(原始) | 67.65 | 67.65 | 70.06 | 70.79 | 70.06 | 71.35 | 70.24 | 70.43 | 70.61 | 70.43 | 68.95 |
22
+ | Qwen3-8B | IFEval | 43 | 66.17 | 68.58 | 72.64 | 73.38 | 72.46 | 72.46 | 72.46 | 71.72 | 71.35 | 73.20 | 71.90 |
23
+ | Qwen3-8B | IFEval | 44 | 66.91 | 67.84 | 71.16 | 71.16 | 71.72 | 72.46 | 70.98 | 71.53 | 70.43 | 72.09 | 70.98 |
24
+ | Qwen3-8B | Commonsense-8 | 42(原始) | 90.79 | 90.79 | 90.23 | 90.30 | 90.30 | 90.31 | 90.32 | 90.27 | 90.30 | 90.26 | 90.27 |
25
+ | Qwen3-8B | Commonsense-8 | 43 | — | — | — | — | — | — | — | — | — | — | — |
26
+ | Qwen3-8B | Commonsense-8 | 44 | — | — | — | — | — | — | — | — | — | — | — |
27
+ | Llama-3.1-8B-Instruct | HumanEval | 42(原始) | 53.66 | 54.27 | 53.66 | 54.27 | 53.66 | 53.66 | 54.88 | 53.66 | 54.27 | 54.88 | 53.66 |
28
+ | Llama-3.1-8B-Instruct | HumanEval | 43 | 55.49 | 55.49 | 57.93 | 57.93 | 56.71 | 55.49 | 55.49 | 54.88 | 54.88 | 56.10 | 54.27 |
29
+ | Llama-3.1-8B-Instruct | HumanEval | 44 | 53.66 | 54.88 | 54.88 | 53.66 | 55.49 | 54.27 | 53.66 | 54.88 | 56.71 | 53.66 | 55.49 |
30
+ | Llama-3.1-8B-Instruct | GSM8K | 42(原始) | 77.10 | 77.33 | 80.89 | 80.82 | 80.29 | 80.89 | 80.67 | 81.05 | 80.67 | 80.14 | 80.82 |
31
+ | Llama-3.1-8B-Instruct | GSM8K | 43 | 75.36 | 75.21 | 79.15 | 78.47 | 77.94 | 79.15 | 78.39 | 78.62 | 79.30 | 78.32 | 78.32 |
32
+ | Llama-3.1-8B-Instruct | GSM8K | 44 | 74.60 | 75.21 | 79.15 | 78.85 | 77.63 | 79.15 | 79.15 | 77.94 | 79.30 | 78.85 | 78.85 |
33
+ | Llama-3.1-8B-Instruct | IFEval | 42(原始) | 63.22 | 63.59 | 65.06 | 65.06 | 64.51 | 65.43 | 64.88 | 65.06 | 64.70 | 64.33 | 65.25 |
34
+ | Llama-3.1-8B-Instruct | IFEval | 43 | 62.85 | 63.96 | 65.25 | 64.70 | 63.03 | 63.03 | 65.25 | 62.11 | 63.77 | 63.59 | 63.59 |
35
+ | Llama-3.1-8B-Instruct | IFEval | 44 | 63.03 | 65.06 | 63.96 | 63.59 | 63.96 | 64.14 | 64.88 | 63.96 | 64.70 | 64.51 | 65.25 |
36
+ | Llama-3.1-8B-Instruct | Commonsense-8 | 42(原始) | 87.96 | 87.95 | 87.41 | 87.56 | 87.58 | 87.52 | 87.52 | 87.53 | 87.46 | 87.66 | 87.58 |
37
+ | Llama-3.1-8B-Instruct | Commonsense-8 | 43 | — | — | — | — | — | — | — | — | — | — | — |
38
+ | Llama-3.1-8B-Instruct | Commonsense-8 | 44 | — | — | — | — | — | — | — | — | — | — | — |
39
+
40
+ ## 新增 seeds43/44 的实际保存训练参数
41
+
42
+ 已逐项比较六组 run_args.json:43/44 除 seed、输出路径外无差异。每个训练任务单 GPU;下表 micro × accumulation = global batch。
43
+
44
+ | 模型 | 训练任务 | 样本(截断过滤前) | Epoch | 最大序列长 | Micro × 累积 = Global batch | LR | Warmup 请求值(实际均0) | Scheduler | Adam β2 |
45
+ |---|---|---:|---:|---:|---|---|---:|---|---:|
46
+ | Qwen3-8B | Magicoder | 50K | 1 | 4096 | 16 × 2 = 32 | 2e-5 | 0.05 | cosine | 0.999 |
47
+ | Qwen3-8B | MetaMath | 50K | 3 | 4096 | 16 × 2 = 32 | 1e-4 | 0.05 | cosine | 0.999 |
48
+ | Qwen3-8B | Tulu | 全量 29,980 | 2 | 4096 | 16 × 8 = 128 | 4e-4 | 0.03 | cosine | 0.999 |
49
+ | Llama-3.1-8B-Instruct | Magicoder | 50K | 1 | 4096 | 16 × 2 = 32 | 2e-5 | 0.05 | cosine | 0.999 |
50
+ | Llama-3.1-8B-Instruct | MetaMath | 50K | 3 | 1024 | 64 × 12 = 768 | 1e-4 | 0.10 | cosine_with_min_lr | 0.95 |
51
+ | Llama-3.1-8B-Instruct | Tulu | 全量 29,980 | 2 | 1024 | 64 × 2 = 128 | 2e-4 | 0.10 | cosine_with_min_lr | 0.95 |
52
+
53
+ 公共设置:LoRA r16/alpha32/dropout0.05/all-linear;bf16、gradient checkpointing、weight_decay0、grad_clip1、Adam β1=0.9、padding multiple8。Llama 数学/指令 minimum LR ratio=0.01。聊天 SFT,Qwen non_thinking,Llama auto。固定数据子集 seed42;新增全局训练 seed 与 Trainer data_seed 均为43/44。
54
+
55
+ ## 与原始运行的差异及证据边界
56
+
57
+ | 模型/任务 | 原始记录能支持的配置 | 新增运行的差异 / 未核实项 |
58
+ |---|---|---|
59
+ | Qwen / Magicoder | 模型卡:50K、epoch1、seq4096、GBS32、LR2e-5、r16、seed42 | 上述主要参数保留;原始 micro-batch、warmup、β、padding 和完整 Trainer 配置未由本次找到的卡片证明一致 |
60
+ | Qwen / MetaMath | run_args.json:50K、3ep、seq4096、GBS32、LR1e-4、warmup0.05、cosine、β2=.999、micro1/累积32、dataset_seed42 | 新增 micro16/累积2;padding8;原始数据文件 JSON、新增本地 parquet,子集身份尚未逐项核对;训练 seed42→43/44 |
61
+ | Qwen / Tulu | run_args.json:2ep、seq4096、GBS128、LR4e-4、warmup0.03、cosine、β2=.999、micro1/累积128;run_config:29,980 条 | 新增 micro16/累积8;padding8;数据路径不同,逐条身份尚未核对;训练 seed42→43/44 |
62
+ | Llama / Magicoder | 本地源 HNS8p2 模型卡:50K、源epoch1、seq4096、GBS32、LR2e-5、r16/alpha32 | 主要记录参数保留;原始 micro-batch、warmup、β2、dropout、训练框架与完整 seed 设置未在本次卡片审计中证明一致 |
63
+ | Llama / MetaMath | LoRA 模型卡仅给出 MetaMath 50K、r16 | 新增使用仓库 Llama-matching math profile:3ep、seq1024、GBS768、LR1e-4 等;与原始全部参数是否一致仍未知,不能将 profile 当作原始运行日志 |
64
+ | Llama / Tulu | LoRA 模型卡明确 seq1024、GBS128、r16、seed42 | 新增保留上述参数;2ep、LR2e-4、warmup.1、β2=.95 等来自仓库 profile,原始未完整核实 |
65
+
66
+ micro-batch 和梯度累积改变,即使 global batch 不变,也可能因可变长度样本的 loss 加权、dropout RNG 消耗及数值舍入产生差异。保持 dataset_seed 并不自动证明不同数据文件产生相同子集。
67
+
68
+ 原始 TrainingArguments seed/data_seed 未完整核实;新增运行显式传入二者。不要把“默认可能是42”写成对所有旧 checkpoint 的事实审计结论。
69
+
70
+ ## 评测配置差异
71
+
72
+ 三组均取统一 step-grid 的 greedy 主指标:HumanEval pass@1(164)、GSM8K strict accuracy(1319)、IFEval prompt strict(541)。不是每个 checkpoint 评测三次,而是三个训练运行各评测一次。
73
+
74
+ - 原始 release 的最终稳定推理 token budget=65,536。新增 Qwen43/44 与 Llama44 为65,536;Llama43 沿用先前成功完成的131,072配置。新增 max_num_seqs=1024。
75
+ - Base 是不经过训练的参考,不应作为独立 training seed 成绩。Llama IFEval Base 在新增两组间差一个正确 prompt,推理的逐条完全一致性未建立。
76
+ - 模型卡的旧成绩与 release 中的统一重评成绩不同,例如 Qwen Magicoder LoRA 卡片67.07、这里66.46。不能择优混用不同评测协议/实现的结果。
77
+
78
+ ## 统计使用建议
79
+
80
+ 保留本表逐运行分数,seeds43/44 可按同一新增配置报告 mean ± sample SD;原始42单列为历史参考。当前不应将三组均值/标准差宣称为严格同配置的三-training-seed 稳健性结果。SD 不是 CI;训练 seed 重复和 item-level paired bootstrap CI 回答不同问题。
81
+
82
+ ## 可追溯数据
83
+
84
+ - 原始:reports/hns_release_20260912/data/step_grid/manifests/{qwen3_8b,llama31_8b}_score_manifest.json。
85
+ - 新增:/dataset1/zailong/runs/peft-sft-lab/hns-training-seeds-3task-20260912/<base>/seed<43|44>/hns_step_grid/eval/score_manifest.json。
86
+ - 新增训练参数:同一 seed 目录 lora/<task>/run_args.json、training_args.bin。
87
+ - 原始配置证据:/dataset1/zailong/models/spectral-surgery/ 对应 LoRA 的 run_args.json/run_config.json/README.md;Llama Magicoder 本次使用对应源 HNS8p2 README 的 Training 部分。
88
+ - 表格重建:scripts/summarize_hns_three_seed_diagonal.py。
comparison/three_run_scores.json ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "model": "Qwen3-8B",
4
+ "task": "magicoder",
5
+ "benchmark": "HumanEval",
6
+ "seed": 42,
7
+ "LoRA": 66.46341463414635,
8
+ "0+0": 67.6829268292683,
9
+ "2+0": 75.60975609756098,
10
+ "2+1": 74.39024390243902,
11
+ "2+2": 76.21951219512195,
12
+ "4+0": 74.39024390243902,
13
+ "4+1": 75.0,
14
+ "4+2": 75.60975609756098,
15
+ "8+0": 75.0,
16
+ "8+1": 75.0,
17
+ "8+2": 75.60975609756098
18
+ },
19
+ {
20
+ "model": "Qwen3-8B",
21
+ "task": "magicoder",
22
+ "benchmark": "HumanEval",
23
+ "seed": 43,
24
+ "LoRA": 62.80487804878049,
25
+ "0+0": 64.02439024390245,
26
+ "2+0": 74.39024390243902,
27
+ "2+1": 75.0,
28
+ "2+2": 74.39024390243902,
29
+ "4+0": 73.78048780487805,
30
+ "4+1": 74.39024390243902,
31
+ "4+2": 75.60975609756098,
32
+ "8+0": 73.78048780487805,
33
+ "8+1": 75.60975609756098,
34
+ "8+2": 75.60975609756098
35
+ },
36
+ {
37
+ "model": "Qwen3-8B",
38
+ "task": "magicoder",
39
+ "benchmark": "HumanEval",
40
+ "seed": 44,
41
+ "LoRA": 64.63414634146342,
42
+ "0+0": 64.63414634146342,
43
+ "2+0": 72.5609756097561,
44
+ "2+1": 72.5609756097561,
45
+ "2+2": 73.17073170731707,
46
+ "4+0": 72.5609756097561,
47
+ "4+1": 74.39024390243902,
48
+ "4+2": 73.78048780487805,
49
+ "8+0": 76.21951219512195,
50
+ "8+1": 73.78048780487805,
51
+ "8+2": 75.0
52
+ }
53
+ ]
data/dataset_provenance.json ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "dataset_id": "ise-uiuc/Magicoder-Evol-Instruct-110K",
3
+ "filename": "magicoder-train.parquet",
4
+ "file_sha256": "ff1dda789a725a9b8840f63aa9956bcff397b8dc4311cfc98aaa2c11ba0ed0ca",
5
+ "source_rows": 111183,
6
+ "upstream_revision": null,
7
+ "selected_index_semantics": "zero-based original parquet row index, before truncation filtering"
8
+ }
data/selected_source_indices.json.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e798fddd6739ebbc00ac62137021d08417a959720737fc5c9ad2c7f4c8d66ac4
3
+ size 144700
evaluation/benchmark_input/humaneval-test.parquet ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3bea46a554c67c5d2915e2db7d97d7733f09140e7a1776428c1b20b5ae5d124b
3
+ size 80726
evaluation/benchmark_provenance.json ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "filename": "humaneval-test.parquet",
3
+ "sha256": "3bea46a554c67c5d2915e2db7d97d7733f09140e7a1776428c1b20b5ae5d124b",
4
+ "task": "magicoder",
5
+ "evaluation_spec": {
6
+ "benchmark": "HumanEval",
7
+ "dataset": "<LOCAL_PATH>/humaneval-test.parquet",
8
+ "samples": 164,
9
+ "primary_metric": "pass@1",
10
+ "max_new_tokens": 512
11
+ },
12
+ "provenance_note": "GSM8K/IFEval local inputs were reconstructed from historical scored outputs; HumanEval is local test parquet."
13
+ }
evaluation/generation_manifest.json ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "status": "generation_complete",
3
+ "base_model": "<LOCAL_PATH>/Qwen3-8B",
4
+ "variant_manifest": "<LOCAL_PATH>/variant_manifest.json",
5
+ "variant_order": [
6
+ "magicoder__original_lora",
7
+ "magicoder__hns_f0_s0",
8
+ "magicoder__hns_f2_s0",
9
+ "magicoder__hns_f2_s1",
10
+ "magicoder__hns_f2_s2",
11
+ "magicoder__hns_f4_s0",
12
+ "magicoder__hns_f4_s1",
13
+ "magicoder__hns_f4_s2",
14
+ "magicoder__hns_f8_s0",
15
+ "magicoder__hns_f8_s1",
16
+ "magicoder__hns_f8_s2",
17
+ "metamath__original_lora",
18
+ "metamath__hns_f0_s0",
19
+ "metamath__hns_f2_s0",
20
+ "metamath__hns_f2_s1",
21
+ "metamath__hns_f2_s2",
22
+ "metamath__hns_f4_s0",
23
+ "metamath__hns_f4_s1",
24
+ "metamath__hns_f4_s2",
25
+ "metamath__hns_f8_s0",
26
+ "metamath__hns_f8_s1",
27
+ "metamath__hns_f8_s2",
28
+ "tulu__original_lora",
29
+ "tulu__hns_f0_s0",
30
+ "tulu__hns_f2_s0",
31
+ "tulu__hns_f2_s1",
32
+ "tulu__hns_f2_s2",
33
+ "tulu__hns_f4_s0",
34
+ "tulu__hns_f4_s1",
35
+ "tulu__hns_f4_s2",
36
+ "tulu__hns_f8_s0",
37
+ "tulu__hns_f8_s1",
38
+ "tulu__hns_f8_s2"
39
+ ],
40
+ "tasks": [
41
+ {
42
+ "task": "magicoder",
43
+ "samples": 164,
44
+ "max_tokens": 512
45
+ },
46
+ {
47
+ "task": "metamath",
48
+ "samples": 1319,
49
+ "max_tokens": 512
50
+ },
51
+ {
52
+ "task": "tulu",
53
+ "samples": 541,
54
+ "max_tokens": 2048
55
+ }
56
+ ],
57
+ "configuration": {
58
+ "vllm_batch_invariant": "1",
59
+ "gpu_memory_utilization": 0.94,
60
+ "max_num_seqs": 1024,
61
+ "max_num_batched_tokens": 65536,
62
+ "adapter_block_size": 11,
63
+ "seed": 42
64
+ }
65
+ }
evaluation/items/base/predictions.jsonl.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bc4f7bfa4ffea338e8536fa693612d874bf2d5788ce5f727519a88eb3d825ad7
3
+ size 49588
evaluation/items/base/scored.jsonl.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:89fb691393ec184b9c980cc2472f05d093534731cf728fab978e676262120f35
3
+ size 52121
evaluation/items/magicoder__hns_f0_s0/predictions.jsonl.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7513025fb68ac76b34f5ce9c5a5c85784a8b33172f9f725f95cd1bba0236f26d
3
+ size 46361
evaluation/items/magicoder__hns_f0_s0/scored.jsonl.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:24cd70cac8e2b07f49ba07435fa58f55210fc207c076a7b928894c1fc22de1c1
3
+ size 49126
evaluation/items/magicoder__hns_f2_s0/predictions.jsonl.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:70f04ac0455f5e30e621a86f64294e1e2ab23efc324a3453d2d1f56b13a61513
3
+ size 47133
evaluation/items/magicoder__hns_f2_s0/scored.jsonl.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bc00f33297cdb95d042135ae43946f889f1c32aee00afc77988a3f6e526efe13
3
+ size 49727
evaluation/items/magicoder__hns_f2_s1/predictions.jsonl.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:368b235fc1b50afa1cf261b79d3f750be162c73c50dff9195fae8705bfd5c33f
3
+ size 47415
evaluation/items/magicoder__hns_f2_s1/scored.jsonl.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d5042a7f265c67b04b05215321f33d6108a62c5a5a2271994b98270801993b84
3
+ size 50059
evaluation/items/magicoder__hns_f2_s2/predictions.jsonl.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:73cab3aeb10de5a7564fd0369f5942b116f030b223c223d0f7dbcd019296655a
3
+ size 47314
evaluation/items/magicoder__hns_f2_s2/scored.jsonl.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4a7c94c685257a9cd5db106291bd240c59d72390aa661f85f7888dea7cb6b4c3
3
+ size 49952
evaluation/items/magicoder__hns_f4_s0/predictions.jsonl.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:60e4eb9bb389dc55ce4ff5aa055946d97cdd713834ad12cccba30f50fe974073
3
+ size 47528
evaluation/items/magicoder__hns_f4_s0/scored.jsonl.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0b3d2b741f38c71ffb67de3c98897e35b3812ac863c729b6c2c5431129f8c931
3
+ size 50163
evaluation/items/magicoder__hns_f4_s1/predictions.jsonl.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7ab445c27d7d9559b4a04e00f6b90cb45f1291617409cd0abdc3f2f78843369c
3
+ size 47557
evaluation/items/magicoder__hns_f4_s1/scored.jsonl.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c5d94b35cb6cd676076829fc423186bdc3e96056e3906a3eb3c560d6af0cf2e0
3
+ size 50145
evaluation/items/magicoder__hns_f4_s2/predictions.jsonl.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ab98fc7d8fe69daf54f83ffa1395128c14b639017eb13d6743662f7f5e0d096c
3
+ size 47471
evaluation/items/magicoder__hns_f4_s2/scored.jsonl.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3f6fb3596f2d76cd94c9a2fbe9326d88a28698bc45fd3782301b21e8c01d9e05
3
+ size 50087
evaluation/items/magicoder__hns_f8_s0/predictions.jsonl.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5ac4a9a2cb167ed3034fdfd310f1d09178a5e745a6e10913602875572bd715fd
3
+ size 47370
evaluation/items/magicoder__hns_f8_s0/scored.jsonl.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1ae0947fa429425cc8afd3bc22aa8a721d93ea8b3cca1080a829fa16da242656
3
+ size 49893
evaluation/items/magicoder__hns_f8_s1/predictions.jsonl.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ee86fef92542667cd650ad6e3694e97dd64cc0760e96ed86d8957debf53f79d1
3
+ size 47741
evaluation/items/magicoder__hns_f8_s1/scored.jsonl.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:01594ace5342fd22d98e016f21d4241f0a9c0bb9d3a83d5844d7764086ec8a25
3
+ size 50343
evaluation/items/magicoder__hns_f8_s2/predictions.jsonl.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0e321fafdc0cc8625c0cae5500eb52071f7be738e7f854203a9605b2c43bf124
3
+ size 47506
evaluation/items/magicoder__hns_f8_s2/scored.jsonl.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6cd7e900047342a11edabc356a5af796eae9153b8b840d3e9ca75763587078e0
3
+ size 50125
evaluation/items/magicoder__original_lora/predictions.jsonl.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:234ab371674ce568b51ccf81543bb3ba33a4d956beefa79985085293da789030
3
+ size 46322
evaluation/items/magicoder__original_lora/scored.jsonl.gz ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b4b7f3543fd399781fb2797d5bd8b2e3c2fa2806fee5457e9ff95c6e757dd077
3
+ size 49097
evaluation/results.json ADDED
@@ -0,0 +1,110 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "task": "magicoder",
4
+ "variant": "base",
5
+ "samples": 164,
6
+ "primary_metric": "pass_at_1",
7
+ "pass_at_1": 0.6646341463414634,
8
+ "correct": 109,
9
+ "results_path": "<LOCAL_PATH>/samples.jsonl_results.jsonl"
10
+ },
11
+ {
12
+ "task": "magicoder",
13
+ "variant": "magicoder__hns_f0_s0",
14
+ "samples": 164,
15
+ "primary_metric": "pass_at_1",
16
+ "pass_at_1": 0.6463414634146342,
17
+ "correct": 106,
18
+ "results_path": "<LOCAL_PATH>/samples.jsonl_results.jsonl"
19
+ },
20
+ {
21
+ "task": "magicoder",
22
+ "variant": "magicoder__hns_f2_s0",
23
+ "samples": 164,
24
+ "primary_metric": "pass_at_1",
25
+ "pass_at_1": 0.725609756097561,
26
+ "correct": 119,
27
+ "results_path": "<LOCAL_PATH>/samples.jsonl_results.jsonl"
28
+ },
29
+ {
30
+ "task": "magicoder",
31
+ "variant": "magicoder__hns_f2_s1",
32
+ "samples": 164,
33
+ "primary_metric": "pass_at_1",
34
+ "pass_at_1": 0.725609756097561,
35
+ "correct": 119,
36
+ "results_path": "<LOCAL_PATH>/samples.jsonl_results.jsonl"
37
+ },
38
+ {
39
+ "task": "magicoder",
40
+ "variant": "magicoder__hns_f2_s2",
41
+ "samples": 164,
42
+ "primary_metric": "pass_at_1",
43
+ "pass_at_1": 0.7317073170731707,
44
+ "correct": 120,
45
+ "results_path": "<LOCAL_PATH>/samples.jsonl_results.jsonl"
46
+ },
47
+ {
48
+ "task": "magicoder",
49
+ "variant": "magicoder__hns_f4_s0",
50
+ "samples": 164,
51
+ "primary_metric": "pass_at_1",
52
+ "pass_at_1": 0.725609756097561,
53
+ "correct": 119,
54
+ "results_path": "<LOCAL_PATH>/samples.jsonl_results.jsonl"
55
+ },
56
+ {
57
+ "task": "magicoder",
58
+ "variant": "magicoder__hns_f4_s1",
59
+ "samples": 164,
60
+ "primary_metric": "pass_at_1",
61
+ "pass_at_1": 0.7439024390243902,
62
+ "correct": 122,
63
+ "results_path": "<LOCAL_PATH>/samples.jsonl_results.jsonl"
64
+ },
65
+ {
66
+ "task": "magicoder",
67
+ "variant": "magicoder__hns_f4_s2",
68
+ "samples": 164,
69
+ "primary_metric": "pass_at_1",
70
+ "pass_at_1": 0.7378048780487805,
71
+ "correct": 121,
72
+ "results_path": "<LOCAL_PATH>/samples.jsonl_results.jsonl"
73
+ },
74
+ {
75
+ "task": "magicoder",
76
+ "variant": "magicoder__hns_f8_s0",
77
+ "samples": 164,
78
+ "primary_metric": "pass_at_1",
79
+ "pass_at_1": 0.7621951219512195,
80
+ "correct": 125,
81
+ "results_path": "<LOCAL_PATH>/samples.jsonl_results.jsonl"
82
+ },
83
+ {
84
+ "task": "magicoder",
85
+ "variant": "magicoder__hns_f8_s1",
86
+ "samples": 164,
87
+ "primary_metric": "pass_at_1",
88
+ "pass_at_1": 0.7378048780487805,
89
+ "correct": 121,
90
+ "results_path": "<LOCAL_PATH>/samples.jsonl_results.jsonl"
91
+ },
92
+ {
93
+ "task": "magicoder",
94
+ "variant": "magicoder__hns_f8_s2",
95
+ "samples": 164,
96
+ "primary_metric": "pass_at_1",
97
+ "pass_at_1": 0.75,
98
+ "correct": 123,
99
+ "results_path": "<LOCAL_PATH>/samples.jsonl_results.jsonl"
100
+ },
101
+ {
102
+ "task": "magicoder",
103
+ "variant": "magicoder__original_lora",
104
+ "samples": 164,
105
+ "primary_metric": "pass_at_1",
106
+ "pass_at_1": 0.6463414634146342,
107
+ "correct": 106,
108
+ "results_path": "<LOCAL_PATH>/samples.jsonl_results.jsonl"
109
+ }
110
+ ]
hns/build_manifest.json ADDED
@@ -0,0 +1,139 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "status": "complete",
3
+ "base": "Qwen3-8B",
4
+ "task": "magicoder",
5
+ "source_lora": "<LOCAL_PATH>/magicoder",
6
+ "scope": "all_modules",
7
+ "variants": [
8
+ {
9
+ "method": "hns_f0_s0",
10
+ "path": "<LOCAL_PATH>/hns_f0_s0",
11
+ "fast_steps": 0,
12
+ "stable_steps": 0,
13
+ "num_modules": 252,
14
+ "mean_effective_rank_before": 10.281708520678572,
15
+ "mean_effective_rank_after": 10.281708520678572,
16
+ "adapter_fro_before": 2.9731058469475404,
17
+ "adapter_fro_after": 2.9731058469475404,
18
+ "adapter_fro_ratio": 1.0,
19
+ "max_saved_update_relative_error": 0.0
20
+ },
21
+ {
22
+ "method": "hns_f2_s0",
23
+ "path": "<LOCAL_PATH>/hns_f2_s0",
24
+ "fast_steps": 2,
25
+ "stable_steps": 0,
26
+ "num_modules": 252,
27
+ "mean_effective_rank_before": 10.281708520678572,
28
+ "mean_effective_rank_after": 15.4897983402431,
29
+ "adapter_fro_before": 2.9731058469475404,
30
+ "adapter_fro_after": 1.8392601809678262,
31
+ "adapter_fro_ratio": 0.6186325935405822,
32
+ "max_saved_update_relative_error": 0.0
33
+ },
34
+ {
35
+ "method": "hns_f2_s1",
36
+ "path": "<LOCAL_PATH>/hns_f2_s1",
37
+ "fast_steps": 2,
38
+ "stable_steps": 1,
39
+ "num_modules": 252,
40
+ "mean_effective_rank_before": 10.281708520678572,
41
+ "mean_effective_rank_after": 15.923773571102778,
42
+ "adapter_fro_before": 2.9731058469475404,
43
+ "adapter_fro_after": 1.7949345031617032,
44
+ "adapter_fro_ratio": 0.6037237137065083,
45
+ "max_saved_update_relative_error": 0.0
46
+ },
47
+ {
48
+ "method": "hns_f2_s2",
49
+ "path": "<LOCAL_PATH>/hns_f2_s2",
50
+ "fast_steps": 2,
51
+ "stable_steps": 2,
52
+ "num_modules": 252,
53
+ "mean_effective_rank_before": 10.281708520678572,
54
+ "mean_effective_rank_after": 15.98937415338301,
55
+ "adapter_fro_before": 2.9731058469475404,
56
+ "adapter_fro_after": 1.7899762384852396,
57
+ "adapter_fro_ratio": 0.6020560083062603,
58
+ "max_saved_update_relative_error": 0.0
59
+ },
60
+ {
61
+ "method": "hns_f4_s0",
62
+ "path": "<LOCAL_PATH>/hns_f4_s0",
63
+ "fast_steps": 4,
64
+ "stable_steps": 0,
65
+ "num_modules": 252,
66
+ "mean_effective_rank_before": 10.281708520678572,
67
+ "mean_effective_rank_after": 15.781649619572546,
68
+ "adapter_fro_before": 2.9731058469475404,
69
+ "adapter_fro_after": 1.8135417894821753,
70
+ "adapter_fro_ratio": 0.609982248477336,
71
+ "max_saved_update_relative_error": 0.0
72
+ },
73
+ {
74
+ "method": "hns_f4_s1",
75
+ "path": "<LOCAL_PATH>/hns_f4_s1",
76
+ "fast_steps": 4,
77
+ "stable_steps": 1,
78
+ "num_modules": 252,
79
+ "mean_effective_rank_before": 10.281708520678572,
80
+ "mean_effective_rank_after": 15.998231176585358,
81
+ "adapter_fro_before": 2.9731058469475404,
82
+ "adapter_fro_after": 1.7897042598267552,
83
+ "adapter_fro_ratio": 0.6019645286642679,
84
+ "max_saved_update_relative_error": 0.0
85
+ },
86
+ {
87
+ "method": "hns_f4_s2",
88
+ "path": "<LOCAL_PATH>/hns_f4_s2",
89
+ "fast_steps": 4,
90
+ "stable_steps": 2,
91
+ "num_modules": 252,
92
+ "mean_effective_rank_before": 10.281708520678572,
93
+ "mean_effective_rank_after": 15.999999808587106,
94
+ "adapter_fro_before": 2.9731058469475404,
95
+ "adapter_fro_after": 1.7895088377817683,
96
+ "adapter_fro_ratio": 0.6018987987323222,
97
+ "max_saved_update_relative_error": 0.0
98
+ },
99
+ {
100
+ "method": "hns_f8_s0",
101
+ "path": "<LOCAL_PATH>/hns_f8_s0",
102
+ "fast_steps": 8,
103
+ "stable_steps": 0,
104
+ "num_modules": 252,
105
+ "mean_effective_rank_before": 10.281708520678572,
106
+ "mean_effective_rank_after": 15.6737658817665,
107
+ "adapter_fro_before": 2.9731058469475404,
108
+ "adapter_fro_after": 1.8248112295927876,
109
+ "adapter_fro_ratio": 0.613772708921986,
110
+ "max_saved_update_relative_error": 0.0
111
+ },
112
+ {
113
+ "method": "hns_f8_s1",
114
+ "path": "<LOCAL_PATH>/hns_f8_s1",
115
+ "fast_steps": 8,
116
+ "stable_steps": 1,
117
+ "num_modules": 252,
118
+ "mean_effective_rank_before": 10.281708520678572,
119
+ "mean_effective_rank_after": 15.997113988957008,
120
+ "adapter_fro_before": 2.9731058469475404,
121
+ "adapter_fro_after": 1.7898293631137594,
122
+ "adapter_fro_ratio": 0.6020066069801585,
123
+ "max_saved_update_relative_error": 0.0
124
+ },
125
+ {
126
+ "method": "hns_f8_s2",
127
+ "path": "<LOCAL_PATH>/hns_f8_s2",
128
+ "fast_steps": 8,
129
+ "stable_steps": 2,
130
+ "num_modules": 252,
131
+ "mean_effective_rank_before": 10.281708520678572,
132
+ "mean_effective_rank_after": 15.999999782334111,
133
+ "adapter_fro_before": 2.9731058469475404,
134
+ "adapter_fro_after": 1.7895088420702738,
135
+ "adapter_fro_ratio": 0.601898800174755,
136
+ "max_saved_update_relative_error": 0.0
137
+ }
138
+ ]
139
+ }
hns/build_metadata/hns_f0_s0/spectral_edit_meta.json ADDED
The diff for this file is too large to render. See raw diff
 
hns/build_metadata/hns_f2_s0/spectral_edit_meta.json ADDED
The diff for this file is too large to render. See raw diff
 
hns/build_metadata/hns_f2_s1/spectral_edit_meta.json ADDED
The diff for this file is too large to render. See raw diff
 
hns/build_metadata/hns_f2_s2/spectral_edit_meta.json ADDED
The diff for this file is too large to render. See raw diff
 
hns/build_metadata/hns_f4_s0/spectral_edit_meta.json ADDED
The diff for this file is too large to render. See raw diff
 
hns/build_metadata/hns_f4_s1/spectral_edit_meta.json ADDED
The diff for this file is too large to render. See raw diff
 
hns/build_metadata/hns_f4_s2/spectral_edit_meta.json ADDED
The diff for this file is too large to render. See raw diff
 
hns/build_metadata/hns_f8_s0/spectral_edit_meta.json ADDED
The diff for this file is too large to render. See raw diff