WP31: v2 routing seeds, mini pipeline, README, cards, run index
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
81 changed files +4,600 −105
added
README.md
+44 −0
@@ -0,0 +1,44 @@ | ||
| 1 | +<!-- Author: Simon-Pierre Boucher — simon-pierre.boucher@uqo.ca --> | |
| 2 | +# 🧩 PRISME: Intervention-Supervised Sparse Workspace Editing for Small Language Models | |
| 3 | + | |
| 4 | +**UQO Working Paper No. 31** — *Design, controlled evaluation, and negative and positive evidence at the 100M-parameter scale* | |
| 5 | + | |
| 6 | +[](paper/main.pdf) | |
| 7 | +[](requirements-lock.txt) | |
| 8 | +[](tests/) | |
| 9 | +[](REPRODUCE.md) | |
| 10 | +[](https://uqo.ca) | |
| 11 | + | |
| 12 | +> **TL;DR** — PRISME adds to a frozen causal decoder a read-only source bank, a 16-slot ephemeral workspace, a | |
| 13 | +> shared sparse editor (1–2 slots per action, 24 actions + STOP), a value controller trained on executed | |
| 14 | +> counterfactual gains, and a differential readout with an exact zero-budget bypass. We implement, test, train and | |
| 15 | +> evaluate it against matched baselines. Result: the editor is learnable and helps a frozen backbone by a few | |
| 16 | +> percent of loss, but a global-recurrence adapter trained identically helps as much; where to write does not | |
| 17 | +> matter for fixed schedules; a target-reading oracle shows large opportunity that the learned controller cannot | |
| 18 | +> capture (it is worse than no routing on held-out data); and dispatch overhead erases sparse savings at small | |
| 19 | +> scale. A careful negative result with a mechanistic explanation. | |
| 20 | + | |
| 21 | +## 📌 Status | |
| 22 | +| Item | Value | | |
| 23 | +|---|---| | |
| 24 | +| Version | 1.0 (October 2026) | | |
| 25 | +| Phases executed | 0–10, 13–15 (see `PROGRESS.md`); 11 (MLX port) not executed; 12 limited to meta-instantiation | | |
| 26 | +| Decisive experiments | 5 adapter seeds × {sparse editor, global recurrence, dense writes} on a frozen synthetic backbone; 103M FineWeb-Edu pilot (one backbone seed) | | |
| 27 | +| Code & data | `REPRODUCE.md`; synthetic suite regenerated from seeds; FineWeb-Edu subset documented, not redistributed | | |
| 28 | + | |
| 29 | +## 🗂 Repository layout | |
| 30 | +`prisme/` reference implementation · `training/` stages A–D · `baselines/` global recurrence + reference routers · | |
| 31 | +`evaluation/` routing, latency, perplexity, locked driver, statistics · `data/` generators, processors, splits · | |
| 32 | +`tests/` invariants + cache equivalence · `scripts/` audits, counts, FLOPs, launchers, tables, figures, claim audit · | |
| 33 | +`protocol/` pre-registration, locked test manifest, deviations · `literature/` verified bibliography + novelty audit · | |
| 34 | +`experiments/runs/` manifests + metrics (checkpoints on the training nodes) · `results/` raw/analyzed/tables/figures · | |
| 35 | +`paper/` LaTeX + PDF · `reproducibility/` environment, cards, run index, audit · `PROGRESS.md`, `DECISIONS.md`, `FAILURES.md`. | |
| 36 | + | |
| 37 | +## 🚀 Quick start | |
| 38 | +```bash | |
| 39 | +uv venv --python 3.12 .venv && uv pip install -p .venv/bin/python -r requirements-lock.txt | |
| 40 | +.venv/bin/python -m pytest tests -q | |
| 41 | +.venv/bin/python scripts/count_params.py --all-configs --device meta | |
| 42 | +scripts/reproduce_pilot.sh # miniature end-to-end pipeline on CPU (~1 min) | |
| 43 | +.venv/bin/python scripts/make_tables.py && .venv/bin/python scripts/reproduce_figures.py | |
| 44 | +``` | |
added
REPRODUCE.md
+21 −0
@@ -0,0 +1,21 @@ | ||
| 1 | +# REPRODUCE.md — WP31 PRISME | |
| 2 | + | |
| 3 | +All commands run from the repository root with the project venv (`uv venv --python 3.12 .venv && uv pip install -p .venv/bin/python -r requirements-lock.txt`). | |
| 4 | + | |
| 5 | +| Step | Command | Expected | | |
| 6 | +|---|---|---| | |
| 7 | +| Environment audit | `.venv/bin/python scripts/environment_audit.py --smoke` | `hardware/device_inventory.json`, CPU (and MPS/CUDA if present) forward/backward OK | | |
| 8 | +| Unit + property + integration tests | `.venv/bin/python -m pytest tests -q` | 23 passed (15 mandated invariants, controller target-freedom, dense ablation, 5 cache-equivalence tests) | | |
| 9 | +| Exact parameter counts | `.venv/bin/python scripts/count_params.py --all-configs --device meta` | backbone 99,502,848 / 446,744,064 / 1,149,339,648 (= proposal); workspace 2,631,173 / 10,505,221 / 21,655,813 | | |
| 10 | +| Analytic ops table | `.venv/bin/python scripts/estimate_flops.py --config configs/prisme_459m.yaml --T 4096` | 1.296 / 1.666 / 1.787 / 2.219 / 5.633 ×10⁹ ops/token | | |
| 11 | +| Synthetic data | `.venv/bin/python -c "import sys; sys.path.insert(0,'.'); from data.generators.synthetic import write_splits; print(write_splits('data/splits/synthetic_v1'))"` | 11 split files + manifest (sha256 as in `data/splits/synthetic_v1/manifest.json`) | | |
| 12 | +| Web corpus (optional, ~10 min, network) | `.venv/bin/python data/processors/prepare_corpus.py` | 290M train / 2.9M val / 2.9M locked test tokens, tokenizer 32,768 | | |
| 13 | +| Miniature end-to-end pipeline (CPU, ~minutes) | `scripts/reproduce_pilot.sh` | tiny backbone → editor bootstrap → labels → controller → routing JSON under `experiments/runs/` and `results/raw/` | | |
| 14 | +| Dry runs of every trainer | `.venv/bin/python -m training.pretrain --config configs/experiments/pretrain_103m.yaml --dry-run` etc. | exit 0 | | |
| 15 | +| Tables and figures | `.venv/bin/python scripts/make_tables.py && .venv/bin/python scripts/reproduce_figures.py --results results/raw/` | `paper/tables/*.tex`, `results/figures/*.pdf` | | |
| 16 | +| Claim audit | `.venv/bin/python scripts/verify_manuscript_claims.py` | `AUDIT PASS` | | |
| 17 | +| Manuscript | `cd paper && latexmk -pdf main.tex` | `paper/main.pdf` | | |
| 18 | + | |
| 19 | +Full-scale runs (Stage A 103M on an M3 Ultra ≈ 4 h; seed matrices on several nodes) are launched with | |
| 20 | +`scripts/cluster_setup.sh <node>`, `scripts/launch_seed_matrix.sh`, `scripts/run_stage_cd.sh` and | |
| 21 | +`scripts/launch_103m.sh`; their run ids are listed in `reproducibility/run_index.md`. | |
added
configs/experiments/controller_mini.yaml
+27 −0
@@ -0,0 +1,27 @@ | ||
| 1 | +name: controller_mini | |
| 2 | +seed: 1 | |
| 3 | +mode: prisme | |
| 4 | +model: from_checkpoint | |
| 5 | +checkpoint: experiments/runs/mini_editor_seed01_20261030005118/checkpoint | |
| 6 | +labels: | |
| 7 | + train: experiments/runs/labels_mini_seed01_20261030005150/labels_train.pt | |
| 8 | + calib: experiments/runs/labels_mini_seed01_20261030005150/labels_calib.pt | |
| 9 | +train: | |
| 10 | + steps: 60 | |
| 11 | + lr: 0.001 | |
| 12 | + weight_decay: 0.01 | |
| 13 | + alpha: 1.0 | |
| 14 | + beta: 0.5 | |
| 15 | + gamma: 0.1 | |
| 16 | + huber_delta: 0.1 | |
| 17 | + log_every: 20 | |
| 18 | + eval_every: 30 | |
| 19 | + seq_len: 320 | |
| 20 | +lambda_grid: | |
| 21 | +- 0.0 | |
| 22 | +- 0.3 | |
| 23 | +kappa_grid: | |
| 24 | +- 0.0 | |
| 25 | +sweep_batches: 2 | |
| 26 | +max_budget: 4 | |
| 27 | +selection_rule: max_loss_reduction_per_ops | |
added
configs/experiments/labels_mini.yaml
+25 −0
@@ -0,0 +1,25 @@ | ||
| 1 | +name: labels_mini | |
| 2 | +seed: 1 | |
| 3 | +mode: prisme | |
| 4 | +model: from_checkpoint | |
| 5 | +checkpoint: experiments/runs/mini_editor_seed01_20261030005118/checkpoint | |
| 6 | +use_policy: false | |
| 7 | +data: | |
| 8 | + kind: synthetic | |
| 9 | + tokenizer: char | |
| 10 | + splits_dir: data/splits/synthetic_v1 | |
| 11 | + loss_span: answer | |
| 12 | +collect: | |
| 13 | + batch_size: 16 | |
| 14 | + seq_len: 320 | |
| 15 | + max_prefix: 2 | |
| 16 | + audit_every: 2 | |
| 17 | +partitions: | |
| 18 | + train: | |
| 19 | + split: ctrl_train | |
| 20 | + n_batches: 12 | |
| 21 | + stream_seed: 11 | |
| 22 | + calib: | |
| 23 | + split: calib | |
| 24 | + n_batches: 4 | |
| 25 | + stream_seed: 12 | |
added
configs/experiments/mini_backbone.yaml
+43 −0
@@ -0,0 +1,43 @@ | ||
| 1 | +name: mini_backbone | |
| 2 | +seed: 1 | |
| 3 | +mode: backbone_only | |
| 4 | +model: | |
| 5 | + name: mini | |
| 6 | + vocab_size: 128 | |
| 7 | + d_model: 96 | |
| 8 | + n_layers: 2 | |
| 9 | + n_heads: 4 | |
| 10 | + n_kv_heads: 2 | |
| 11 | + ffn_width: 256 | |
| 12 | + max_seq_len: 320 | |
| 13 | + w: 32 | |
| 14 | + ffn_w: 96 | |
| 15 | + n_slots: 16 | |
| 16 | + n_editor_heads: 2 | |
| 17 | + r_max: 8 | |
| 18 | + readout_zero_init: false | |
| 19 | + readout_init_std: 0.2 | |
| 20 | + ctrl_input: h | |
| 21 | + ctrl_use_entropy: true | |
| 22 | +init: | |
| 23 | + freeze_backbone: false | |
| 24 | +data: | |
| 25 | + kind: synthetic | |
| 26 | + tokenizer: char | |
| 27 | + splits_dir: data/splits/synthetic_v1 | |
| 28 | + loss_span: all | |
| 29 | + eval_splits: | |
| 30 | + - dev_iid | |
| 31 | +train: | |
| 32 | + batch_size: 16 | |
| 33 | + seq_len: 320 | |
| 34 | + steps: 150 | |
| 35 | + lr: 0.001 | |
| 36 | + warmup: 10 | |
| 37 | + weight_decay: 0.1 | |
| 38 | + grad_clip: 1.0 | |
| 39 | + log_every: 50 | |
| 40 | + eval_every: 150 | |
| 41 | + eval_batches: 2 | |
| 42 | + ckpt_every: 150 | |
| 43 | +em_max_items: 32 | |
added
configs/experiments/mini_editor.yaml
+61 −0
@@ -0,0 +1,61 @@ | ||
| 1 | +name: mini_editor | |
| 2 | +seed: 1 | |
| 3 | +mode: prisme | |
| 4 | +model: | |
| 5 | + name: mini | |
| 6 | + vocab_size: 128 | |
| 7 | + d_model: 96 | |
| 8 | + n_layers: 2 | |
| 9 | + n_heads: 4 | |
| 10 | + n_kv_heads: 2 | |
| 11 | + ffn_width: 256 | |
| 12 | + max_seq_len: 320 | |
| 13 | + w: 32 | |
| 14 | + ffn_w: 96 | |
| 15 | + n_slots: 16 | |
| 16 | + n_editor_heads: 2 | |
| 17 | + r_max: 8 | |
| 18 | + readout_zero_init: false | |
| 19 | + readout_init_std: 0.2 | |
| 20 | + ctrl_input: h | |
| 21 | + ctrl_use_entropy: true | |
| 22 | +init: | |
| 23 | + backbone_checkpoint: experiments/runs/mini_backbone_seed01_20261030005114/checkpoint | |
| 24 | + freeze_backbone: true | |
| 25 | + auto_readout_scale: true | |
| 26 | +data: | |
| 27 | + kind: synthetic | |
| 28 | + tokenizer: char | |
| 29 | + splits_dir: data/splits/synthetic_v1 | |
| 30 | + loss_span: answer | |
| 31 | + eval_splits: | |
| 32 | + - dev_iid | |
| 33 | +train: | |
| 34 | + batch_size: 16 | |
| 35 | + seq_len: 320 | |
| 36 | + steps: 120 | |
| 37 | + lr: 0.001 | |
| 38 | + warmup: 10 | |
| 39 | + weight_decay: 0.1 | |
| 40 | + grad_clip: 1.0 | |
| 41 | + log_every: 50 | |
| 42 | + eval_every: 120 | |
| 43 | + eval_batches: 2 | |
| 44 | + ckpt_every: 120 | |
| 45 | +em_max_items: 32 | |
| 46 | +budgets: | |
| 47 | +- 0 | |
| 48 | +- 1 | |
| 49 | +- 2 | |
| 50 | +- 4 | |
| 51 | +- 8 | |
| 52 | +budget_probs: | |
| 53 | +- 0.2 | |
| 54 | +- 0.2 | |
| 55 | +- 0.2 | |
| 56 | +- 0.2 | |
| 57 | +- 0.2 | |
| 58 | +budget_per: position | |
| 59 | +em_budgets: | |
| 60 | +- 0 | |
| 61 | +- 2 | |
added
configs/experiments/routing_mini.yaml
+24 −0
@@ -0,0 +1,24 @@ | ||
| 1 | +seed: 1 | |
| 2 | +mode: prisme | |
| 3 | +model: from_checkpoint | |
| 4 | +checkpoint: experiments/runs/controller_mini_seed01_20261030005154/checkpoint | |
| 5 | +data: | |
| 6 | + kind: synthetic | |
| 7 | + tokenizer: char | |
| 8 | + splits_dir: data/splits/synthetic_v1 | |
| 9 | + loss_span: answer | |
| 10 | + split: dev_iid | |
| 11 | +batch_size: 16 | |
| 12 | +seq_len: 320 | |
| 13 | +n_batches: 2 | |
| 14 | +budgets: | |
| 15 | +- 1 | |
| 16 | +- 2 | |
| 17 | +oracle_batches: 1 | |
| 18 | +two_step_batches: 1 | |
| 19 | +entropy_thresholds: | |
| 20 | +- 1.0 | |
| 21 | +norm_thresholds: | |
| 22 | +- 0.1 | |
| 23 | +lambda_grid: | |
| 24 | +- 0.0 | |
added
experiments/logs/controller_mini.log
+14 −0
@@ -0,0 +1,14 @@ | ||
| 1 | +/Users/simon-pierreboucher/Desktop/Recherche-UQO/ia/prisme-slm/training/train_controller.py:131: UserWarning: Converting a tensor with requires_grad=True to a scalar may lead to unexpected behavior. | |
| 2 | +Consider using tensor.detach() first. (Triggered internally at /Users/runner/work/pytorch/pytorch/torch/csrc/autograd/generated/python_variable_methods.cpp:821.) | |
| 3 | + run.log(step=step, loss=float(loss), gain=float(L["gain"]), harm=float(L["harm"]), nll=float(L["nll"])) | |
| 4 | +step 0 loss 0.45115 gain 0.02663 harm 0.8158 | |
| 5 | +step 20 loss 0.13172 gain 0.00543 harm 0.5627 | |
| 6 | + calib: {'huber': 0.0175, 'sign_acc': 0.5467, 'harm_brier': 0.1334, 'harm_ece': 0.0955, 'n_labels': 1156, 'oracle_opportunity_per_state': 0.2508, 'regret_per_state': 0.1381, 'captured_fraction': 0.4494, 'top1_match': 0.0, 'n_audit_states': 124} | |
| 7 | +step 40 loss 0.07597 gain 0.00382 harm 0.4947 | |
| 8 | +step 59 loss 0.05327 gain 0.00333 harm 0.4847 | |
| 9 | + calib: {'huber': 0.0162, 'sign_acc': 0.7344, 'harm_brier': 0.1264, 'harm_ece': 0.0872, 'n_labels': 1156, 'oracle_opportunity_per_state': 0.2508, 'regret_per_state': 0.1129, 'captured_fraction': 0.5501, 'top1_match': 0.0, 'n_audit_states': 124} | |
| 10 | +restored controller from step 60 (calibration score -0.11286) | |
| 11 | +sweep {'lambda': 0.0, 'kappa': 0.0, 'loss': 2.059080786738835, 'edits_per_token': 2.5673758865248226, 'extra_ops_ratio': 1.4467924402115193} | |
| 12 | +sweep {'lambda': 0.3, 'kappa': 0.0, 'loss': 2.307212234388852, 'edits_per_token': 0.04964539007092199, 'extra_ops_ratio': 0.02571701665296622} | |
| 13 | +selected {'lambda': 0.3, 'kappa': 0.0, 'loss': 2.307212234388852, 'edits_per_token': 0.04964539007092199, 'extra_ops_ratio': 0.02571701665296622, 'loss_reduction': 0.04320390850094169, 'reduction_per_ops': 1.6799735787377388} | |
| 14 | +run controller_mini_seed01_20261030005154 | |
added
experiments/logs/labels_mini.log
+8 −0
@@ -0,0 +1,8 @@ | ||
| 1 | +/Users/simon-pierreboucher/Desktop/Recherche-UQO/ia/prisme-slm/training/train_editor.py:57: UserWarning: The given NumPy array is not writable, and PyTorch does not support non-writable tensors. This means writing to this tensor will result in undefined behavior. You may want to copy the array to protect its data or make it writable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at /Users/runner/work/pytorch/pytorch/torch/csrc/utils/tensor_numpy.cpp:214.) | |
| 2 | + return torch.from_numpy(acts).to(device), torch.from_numpy(np.ascontiguousarray(b)).to(device) | |
| 3 | +batch 0/12 r_pre=2 mean gain 0.02953 frac>0 0.615 | |
| 4 | +batch 10/12 r_pre=1 mean gain 0.02505 frac>0 0.578 | |
| 5 | +train {'file': 'experiments/runs/labels_mini_seed01_20261030005150/labels_train.pt', 'n_states': 1047, 'n_labels': 4188, 'mean_gain': 0.031750522553920746, 'frac_positive': 0.5690066814422607, 'frac_harm': 0.43099331855773926, 'seconds': 2.5, 'n_audit_batches': 6} | |
| 6 | +batch 0/4 r_pre=2 mean gain 0.05232 frac>0 0.560 | |
| 7 | +calib {'file': 'experiments/runs/labels_mini_seed01_20261030005150/labels_calib.pt', 'n_states': 289, 'n_labels': 1156, 'mean_gain': 0.19328418374061584, 'frac_positive': 0.6349480748176575, 'frac_harm': 0.36505189538002014, 'seconds': 0.8, 'n_audit_batches': 2} | |
| 8 | +run labels_mini_seed01_20261030005150 | |
added
experiments/logs/mini_backbone.log
+9 −0
@@ -0,0 +1,9 @@ | ||
| 1 | +step 0 loss 4.8830 lr 1.00e-04 gn 2.63 (0s) | |
| 2 | +step 50 loss 2.5086 lr 8.31e-04 gn 0.98 (1s) | |
| 3 | +step 100 loss 1.9095 lr 3.55e-04 gn 1.14 (2s) | |
| 4 | +step 149 loss 1.5540 lr 1.00e-04 gn 1.46 (3s) | |
| 5 | +/Users/simon-pierreboucher/Desktop/Recherche-UQO/ia/prisme-slm/training/train_editor.py:57: UserWarning: The given NumPy array is not writable, and PyTorch does not support non-writable tensors. This means writing to this tensor will result in undefined behavior. You may want to copy the array to protect its data or make it writable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at /Users/runner/work/pytorch/pytorch/torch/csrc/utils/tensor_numpy.cpp:214.) | |
| 6 | + return torch.from_numpy(acts).to(device), torch.from_numpy(np.ascontiguousarray(b)).to(device) | |
| 7 | + val loss by budget: {0: 1.661} | |
| 8 | + exact match dev_iid budget 0: 0.0000 (n=32) by family {'bind': 0.0, 'arith': 0.0, 'fsm': 0.0, 'excl': 0.0, 'sched': 0.0} | |
| 9 | +run mini_backbone_seed01_20261030005114 done | |
added
experiments/logs/mini_editor.log
+12 −0
@@ -0,0 +1,12 @@ | ||
| 1 | +loaded backbone from experiments/runs/mini_backbone_seed01_20261030005114/checkpoint missing: 36 | |
| 2 | +readout_scale set to backbone residual rms = 0.120 | |
| 3 | +/Users/simon-pierreboucher/Desktop/Recherche-UQO/ia/prisme-slm/training/train_editor.py:57: UserWarning: The given NumPy array is not writable, and PyTorch does not support non-writable tensors. This means writing to this tensor will result in undefined behavior. You may want to copy the array to protect its data or make it writable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at /Users/runner/work/pytorch/pytorch/torch/csrc/utils/tensor_numpy.cpp:214.) | |
| 4 | + return torch.from_numpy(acts).to(device), torch.from_numpy(np.ascontiguousarray(b)).to(device) | |
| 5 | +step 0 loss 2.2980 lr 1.00e-04 gn 0.09 (0s) | |
| 6 | +step 50 loss 2.0584 lr 7.37e-04 gn 0.12 (14s) | |
| 7 | +step 100 loss 1.9985 lr 1.71e-04 gn 0.21 (25s) | |
| 8 | +step 119 loss 2.2012 lr 1.00e-04 gn 0.21 (29s) | |
| 9 | + val loss by budget: {0: 2.391, 1: 2.178, 2: 2.1457, 4: 2.0783, 8: 2.0136} | |
| 10 | + exact match dev_iid budget 0: 0.0000 (n=32) by family {'bind': 0.0, 'arith': 0.0, 'fsm': 0.0, 'excl': 0.0, 'sched': 0.0} | |
| 11 | + exact match dev_iid budget 2: 0.0000 (n=32) by family {'bind': 0.0, 'arith': 0.0, 'fsm': 0.0, 'excl': 0.0, 'sched': 0.0} | |
| 12 | +run mini_editor_seed01_20261030005118 done | |
added
experiments/logs/routing_mini.log
+17 −0
@@ -0,0 +1,17 @@ | ||
| 1 | +{"policy": "budget0", "loss": 2.3909947187051004, "edits_per_token": 0.0, "extra_ops_ratio": 0.0, "n_tokens": 174} | |
| 2 | +/Users/simon-pierreboucher/Desktop/Recherche-UQO/ia/prisme-slm/training/train_editor.py:57: UserWarning: The given NumPy array is not writable, and PyTorch does not support non-writable tensors. This means writing to this tensor will result in undefined behavior. You may want to copy the array to protect its data or make it writable before converting it to a tensor. This type of warning will be suppressed for the rest of this program. (Triggered internally at /Users/runner/work/pytorch/pytorch/torch/csrc/utils/tensor_numpy.cpp:214.) | |
| 3 | + return torch.from_numpy(acts).to(device), torch.from_numpy(np.ascontiguousarray(b)).to(device) | |
| 4 | +{"policy": "random_forced", "budget": 1, "loss": 2.177954575111126, "edits_per_token": 1.0, "extra_ops_ratio": 0.6340132088496767, "n_tokens": 174} | |
| 5 | +{"policy": "uniform", "budget": 1, "loss": 2.187390908427622, "edits_per_token": 1.0, "extra_ops_ratio": 0.5180141843598465, "n_tokens": 174} | |
| 6 | +{"policy": "fixed_pair", "budget": 1, "loss": 2.1671100484913794, "edits_per_token": 1.0, "extra_ops_ratio": 0.7239716190031205, "n_tokens": 174} | |
| 7 | +{"policy": "random_forced", "budget": 2, "loss": 2.145720470910785, "edits_per_token": 2.0, "extra_ops_ratio": 1.2502715012122845, "n_tokens": 174} | |
| 8 | +{"policy": "uniform", "budget": 2, "loss": 2.167156175635327, "edits_per_token": 2.0, "extra_ops_ratio": 1.036028368719693, "n_tokens": 174} | |
| 9 | +{"policy": "fixed_pair", "budget": 2, "loss": 2.1463586215315194, "edits_per_token": 2.0, "extra_ops_ratio": 1.447943238006241, "n_tokens": 174} | |
| 10 | +{"policy": "entropy", "threshold": 1.0, "budget": 2, "loss": 2.147084027871318, "edits_per_token": 1.632183908045977, "extra_ops_ratio": 0.9839830727412783, "n_tokens": 174} | |
| 11 | +{"policy": "norm", "threshold": 0.1, "budget": 2, "loss": 2.149580155295887, "edits_per_token": 1.9885057471264367, "extra_ops_ratio": 1.194603536320829, "n_tokens": 174} | |
| 12 | +{"policy": "controller_locked", "lam": 0.3, "kap": 0.0, "budget": 2, "loss": 2.3621927897135415, "edits_per_token": 0.06896551724137931, "extra_ops_ratio": 0.03572511535951461, "n_tokens": 174} | |
| 13 | +{"policy": "controller", "lam": 0.0, "kap": 0.0, "budget": 2, "loss": 2.1407089233398438, "edits_per_token": 1.5344827586206897, "extra_ops_ratio": 0.8812912908093683, "n_tokens": 174} | |
| 14 | +{"policy": "oracle1_greedy", "budget": 1, "diagnostic": true, "loss": 2.1457042020909927, "edits_per_token": 0.6470588235294118, "extra_ops_ratio": 0.4587601156795726, "n_tokens": 85} | |
| 15 | +{"policy": "oracle1_greedy", "budget": 2, "diagnostic": true, "loss": 1.9766888786764707, "edits_per_token": 1.2470588235294118, "extra_ops_ratio": 0.854374605066636, "n_tokens": 85} | |
| 16 | +{"policy": "oracle_two_step", "diagnostic": true, "one_step_gain": 0.25905925526338464, "two_step_gain": 0.429955561020795, "greedy_then_best_gain": 0.42805216172162225, "n_tokens": 85} | |
| 17 | +wrote results/raw/routing_mini.json | |
added
experiments/runs/controller_mini_seed01_20261030005154/checkpoint/checkpoint.json
+49 −0
@@ -0,0 +1,49 @@ | ||
| 1 | +{ | |
| 2 | + "config": { | |
| 3 | + "name": "mini", | |
| 4 | + "vocab_size": 128, | |
| 5 | + "d_model": 96, | |
| 6 | + "n_layers": 2, | |
| 7 | + "n_heads": 4, | |
| 8 | + "n_kv_heads": 2, | |
| 9 | + "ffn_width": 256, | |
| 10 | + "max_seq_len": 320, | |
| 11 | + "rope_theta": 10000.0, | |
| 12 | + "norm_eps": 1e-05, | |
| 13 | + "tie_embeddings": true, | |
| 14 | + "init_std": 0.02, | |
| 15 | + "use_workspace": true, | |
| 16 | + "w": 32, | |
| 17 | + "ffn_w": 96, | |
| 18 | + "n_slots": 16, | |
| 19 | + "n_editor_blocks": 2, | |
| 20 | + "n_editor_heads": 2, | |
| 21 | + "r_max": 8, | |
| 22 | + "eta_max": 0.25, | |
| 23 | + "clip_c": 1.0, | |
| 24 | + "clip_eps": 1e-06, | |
| 25 | + "readout_zero_init": false, | |
| 26 | + "readout_init_std": 0.2, | |
| 27 | + "readout_scale": 0.11967716366052628, | |
| 28 | + "controller_hidden": 0, | |
| 29 | + "ctrl_input": "h", | |
| 30 | + "ctrl_use_entropy": true, | |
| 31 | + "lambda_cost": 0.3, | |
| 32 | + "kappa_risk": 0.0, | |
| 33 | + "dense_writes": false | |
| 34 | + }, | |
| 35 | + "saved_at": "2026-10-30T00:51:57-0400", | |
| 36 | + "run_id": "controller_mini_seed01_20261030005154", | |
| 37 | + "parent": "experiments/runs/mini_editor_seed01_20261030005118/checkpoint", | |
| 38 | + "selected": { | |
| 39 | + "lambda": 0.3, | |
| 40 | + "kappa": 0.0, | |
| 41 | + "loss": 2.307212234388852, | |
| 42 | + "edits_per_token": 0.04964539007092199, | |
| 43 | + "extra_ops_ratio": 0.02571701665296622, | |
| 44 | + "loss_reduction": 0.04320390850094169, | |
| 45 | + "reduction_per_ops": 1.6799735787377388 | |
| 46 | + }, | |
| 47 | + "locked": true, | |
| 48 | + "weights_sha256": "bb56e9c7b34c773d7cb314b50da687d910b37fa126243f4cfbe9b36c931da83e" | |
| 49 | +} | |
| \ No newline at end of file | ||
added
experiments/runs/controller_mini_seed01_20261030005154/config.yaml
+60 −0
@@ -0,0 +1,60 @@ | ||
| 1 | +experiment: | |
| 2 | + name: controller_mini | |
| 3 | + seed: 1 | |
| 4 | + mode: prisme | |
| 5 | + model: from_checkpoint | |
| 6 | + checkpoint: experiments/runs/mini_editor_seed01_20261030005118/checkpoint | |
| 7 | + labels: | |
| 8 | + train: experiments/runs/labels_mini_seed01_20261030005150/labels_train.pt | |
| 9 | + calib: experiments/runs/labels_mini_seed01_20261030005150/labels_calib.pt | |
| 10 | + train: | |
| 11 | + steps: 60 | |
| 12 | + lr: 0.001 | |
| 13 | + weight_decay: 0.01 | |
| 14 | + alpha: 1.0 | |
| 15 | + beta: 0.5 | |
| 16 | + gamma: 0.1 | |
| 17 | + huber_delta: 0.1 | |
| 18 | + log_every: 20 | |
| 19 | + eval_every: 30 | |
| 20 | + seq_len: 320 | |
| 21 | + lambda_grid: | |
| 22 | + - 0.0 | |
| 23 | + - 0.3 | |
| 24 | + kappa_grid: | |
| 25 | + - 0.0 | |
| 26 | + sweep_batches: 2 | |
| 27 | + max_budget: 4 | |
| 28 | + selection_rule: max_loss_reduction_per_ops | |
| 29 | +model: | |
| 30 | + name: mini | |
| 31 | + vocab_size: 128 | |
| 32 | + d_model: 96 | |
| 33 | + n_layers: 2 | |
| 34 | + n_heads: 4 | |
| 35 | + n_kv_heads: 2 | |
| 36 | + ffn_width: 256 | |
| 37 | + max_seq_len: 320 | |
| 38 | + rope_theta: 10000.0 | |
| 39 | + norm_eps: 1.0e-05 | |
| 40 | + tie_embeddings: true | |
| 41 | + init_std: 0.02 | |
| 42 | + use_workspace: true | |
| 43 | + w: 32 | |
| 44 | + ffn_w: 96 | |
| 45 | + n_slots: 16 | |
| 46 | + n_editor_blocks: 2 | |
| 47 | + n_editor_heads: 2 | |
| 48 | + r_max: 8 | |
| 49 | + eta_max: 0.25 | |
| 50 | + clip_c: 1.0 | |
| 51 | + clip_eps: 1.0e-06 | |
| 52 | + readout_zero_init: false | |
| 53 | + readout_init_std: 0.2 | |
| 54 | + readout_scale: 0.11967716366052628 | |
| 55 | + controller_hidden: 0 | |
| 56 | + ctrl_input: h | |
| 57 | + ctrl_use_entropy: true | |
| 58 | + lambda_cost: 0.0 | |
| 59 | + kappa_risk: 0.0 | |
| 60 | + dense_writes: false | |
added
experiments/runs/controller_mini_seed01_20261030005154/manifest.json
+79 −0
@@ -0,0 +1,79 @@ | ||
| 1 | +{ | |
| 2 | + "run_id": "controller_mini_seed01_20261030005154", | |
| 3 | + "name": "controller_mini", | |
| 4 | + "seed": 1, | |
| 5 | + "code_commit": "ede6705574e7140bdc16eff11931815070b471d1", | |
| 6 | + "config_sha256": "0471d90913fcc1fc2be8399872a1cb24835993f8ca0091d1534b4be963a5d588", | |
| 7 | + "started_at": "2026-10-30T00:51:54-0400", | |
| 8 | + "host": "MacBookPro-de-simon-pierre-2.local", | |
| 9 | + "python": "3.12.13", | |
| 10 | + "torch": "2.15.0", | |
| 11 | + "command": "/Users/simon-pierreboucher/Desktop/Recherche-UQO/ia/prisme-slm/training/train_controller.py --config configs/experiments/controller_mini.yaml --device cpu", | |
| 12 | + "state": "completed", | |
| 13 | + "wall_seconds": 3.14, | |
| 14 | + "device": "cpu", | |
| 15 | + "checkpoint_parent": "experiments/runs/mini_editor_seed01_20261030005118/checkpoint", | |
| 16 | + "labels_train": "experiments/runs/labels_mini_seed01_20261030005150/labels_train.pt", | |
| 17 | + "labels_calib": "experiments/runs/labels_mini_seed01_20261030005150/labels_calib.pt", | |
| 18 | + "finished_at": "2026-10-30T00:51:57-0400", | |
| 19 | + "eval_train": { | |
| 20 | + "huber": 0.0030732022628629334, | |
| 21 | + "sign_acc": 0.6184336198662846, | |
| 22 | + "harm_brier": 0.1599525462590521, | |
| 23 | + "harm_ece": 0.04834684729576111, | |
| 24 | + "n_labels": 4188, | |
| 25 | + "oracle_opportunity_per_state": 0.1721912329537528, | |
| 26 | + "regret_per_state": 0.1273838915143694, | |
| 27 | + "captured_fraction": 0.2602184830828045, | |
| 28 | + "top1_match": 0.0838095238095238, | |
| 29 | + "n_audit_states": 525 | |
| 30 | + }, | |
| 31 | + "eval_calib": { | |
| 32 | + "huber": 0.016214936043564422, | |
| 33 | + "sign_acc": 0.7344290657439446, | |
| 34 | + "harm_brier": 0.1263718605041504, | |
| 35 | + "harm_ece": 0.08718162029981613, | |
| 36 | + "n_labels": 1156, | |
| 37 | + "oracle_opportunity_per_state": 0.2508483394499748, | |
| 38 | + "regret_per_state": 0.11286073538564867, | |
| 39 | + "captured_fraction": 0.550083785154353, | |
| 40 | + "top1_match": 0.0, | |
| 41 | + "n_audit_states": 124 | |
| 42 | + }, | |
| 43 | + "sweep": [ | |
| 44 | + { | |
| 45 | + "lambda": 0.0, | |
| 46 | + "kappa": 0.0, | |
| 47 | + "loss": 2.059080786738835, | |
| 48 | + "edits_per_token": 2.5673758865248226, | |
| 49 | + "extra_ops_ratio": 1.4467924402115193, | |
| 50 | + "loss_reduction": 0.2913353561509586, | |
| 51 | + "reduction_per_ops": 0.20136637989922435 | |
| 52 | + }, | |
| 53 | + { | |
| 54 | + "lambda": 0.3, | |
| 55 | + "kappa": 0.0, | |
| 56 | + "loss": 2.307212234388852, | |
| 57 | + "edits_per_token": 0.04964539007092199, | |
| 58 | + "extra_ops_ratio": 0.02571701665296622, | |
| 59 | + "loss_reduction": 0.04320390850094169, | |
| 60 | + "reduction_per_ops": 1.6799735787377388 | |
| 61 | + } | |
| 62 | + ], | |
| 63 | + "baseline_budget0": { | |
| 64 | + "loss": 2.350416142889794, | |
| 65 | + "edits_per_token": 0.0, | |
| 66 | + "extra_ops_ratio": 0.0 | |
| 67 | + }, | |
| 68 | + "selected": { | |
| 69 | + "lambda": 0.3, | |
| 70 | + "kappa": 0.0, | |
| 71 | + "loss": 2.307212234388852, | |
| 72 | + "edits_per_token": 0.04964539007092199, | |
| 73 | + "extra_ops_ratio": 0.02571701665296622, | |
| 74 | + "loss_reduction": 0.04320390850094169, | |
| 75 | + "reduction_per_ops": 1.6799735787377388 | |
| 76 | + }, | |
| 77 | + "checkpoint_sha256": "bb56e9c7b34c773d7cb314b50da687d910b37fa126243f4cfbe9b36c931da83e", | |
| 78 | + "selection_rule": "max_loss_reduction_per_ops" | |
| 79 | +} | |
| \ No newline at end of file | ||
added
experiments/runs/controller_mini_seed01_20261030005154/metrics.jsonl
+7 −0
@@ -0,0 +1,7 @@ | ||
| 1 | +{"step": 0, "loss": 0.45115095376968384, "gain": 0.026630813255906105, "harm": 0.8158032894134521, "nll": 0.16618479788303375, "t": 0.54} | |
| 2 | +{"step": 20, "loss": 0.13172240555286407, "gain": 0.005428161472082138, "harm": 0.5627143383026123, "nll": -1.5506292581558228, "t": 1.06} | |
| 3 | +{"step": 29, "calib_huber": 0.01750746204366321, "calib_sign_acc": 0.5467128027681661, "calib_harm_brier": 0.1334372787739579, "calib_harm_ece": 0.09551648795604706, "calib_n_labels": 1156, "calib_oracle_opportunity_per_state": 0.2508483394499748, "calib_regret_per_state": 0.13811139137514175, "calib_captured_fraction": 0.4494227401386307, "calib_top1_match": 0.0, "calib_n_audit_states": 124, "t": 1.38} | |
| 4 | +{"step": 40, "loss": 0.07597307860851288, "gain": 0.0038186139427125454, "harm": 0.4946993291378021, "nll": -1.751952052116394, "t": 1.71} | |
| 5 | +{"step": 59, "loss": 0.053273364901542664, "gain": 0.0033322509843856096, "harm": 0.48466554284095764, "nll": -1.9239165782928467, "t": 2.29} | |
| 6 | +{"step": 59, "calib_huber": 0.016214936043564422, "calib_sign_acc": 0.7344290657439446, "calib_harm_brier": 0.1263718605041504, "calib_harm_ece": 0.08718162029981613, "calib_n_labels": 1156, "calib_oracle_opportunity_per_state": 0.2508483394499748, "calib_regret_per_state": 0.11286073538564867, "calib_captured_fraction": 0.550083785154353, "calib_top1_match": 0.0, "calib_n_audit_states": 124, "t": 2.37} | |
| 7 | +{"event": "restored_best_calibration_checkpoint", "step": 60, "score": -0.11286073538564867, "t": 2.37} | |
added
experiments/runs/controller_v2s2_seed01_20261030004717/checkpoint/checkpoint.json
+49 −0
@@ -0,0 +1,49 @@ | ||
| 1 | +{ | |
| 2 | + "config": { | |
| 3 | + "name": "tiny_p4v2", | |
| 4 | + "vocab_size": 128, | |
| 5 | + "d_model": 256, | |
| 6 | + "n_layers": 6, | |
| 7 | + "n_heads": 8, | |
| 8 | + "n_kv_heads": 4, | |
| 9 | + "ffn_width": 768, | |
| 10 | + "max_seq_len": 320, | |
| 11 | + "rope_theta": 10000.0, | |
| 12 | + "norm_eps": 1e-05, | |
| 13 | + "tie_embeddings": true, | |
| 14 | + "init_std": 0.02, | |
| 15 | + "use_workspace": true, | |
| 16 | + "w": 64, | |
| 17 | + "ffn_w": 192, | |
| 18 | + "n_slots": 16, | |
| 19 | + "n_editor_blocks": 2, | |
| 20 | + "n_editor_heads": 2, | |
| 21 | + "r_max": 8, | |
| 22 | + "eta_max": 0.25, | |
| 23 | + "clip_c": 1.0, | |
| 24 | + "clip_eps": 1e-06, | |
| 25 | + "readout_zero_init": false, | |
| 26 | + "readout_init_std": 0.2, | |
| 27 | + "readout_scale": 38.51451873779297, | |
| 28 | + "controller_hidden": 0, | |
| 29 | + "ctrl_input": "h", | |
| 30 | + "ctrl_use_entropy": true, | |
| 31 | + "lambda_cost": 0.3, | |
| 32 | + "kappa_risk": 0.5, | |
| 33 | + "dense_writes": false | |
| 34 | + }, | |
| 35 | + "saved_at": "2026-10-30T00:50:30-0400", | |
| 36 | + "run_id": "controller_v2s2_seed01_20261030004717", | |
| 37 | + "parent": "experiments/runs/p4v2_prisme_seed02_20261030001749/checkpoint", | |
| 38 | + "selected": { | |
| 39 | + "lambda": 0.3, | |
| 40 | + "kappa": 0.5, | |
| 41 | + "loss": 0.4873708813215914, | |
| 42 | + "edits_per_token": 0.020166073546856466, | |
| 43 | + "extra_ops_ratio": 0.0021535491621649844, | |
| 44 | + "loss_reduction": 3.514453892466962e-05, | |
| 45 | + "reduction_per_ops": 0.016319357617700477 | |
| 46 | + }, | |
| 47 | + "locked": true, | |
| 48 | + "weights_sha256": "809bef042a202eb089b8c2860bdd01a30faec25414290983bc7de06b17c27445" | |
| 49 | +} | |
| \ No newline at end of file | ||
added
experiments/runs/controller_v2s2_seed01_20261030004717/config.yaml
+67 −0
@@ -0,0 +1,67 @@ | ||
| 1 | +experiment: | |
| 2 | + name: controller_v2s2 | |
| 3 | + seed: 1 | |
| 4 | + mode: prisme | |
| 5 | + model: from_checkpoint | |
| 6 | + checkpoint: experiments/runs/p4v2_prisme_seed02_20261030001749/checkpoint | |
| 7 | + labels: | |
| 8 | + train: experiments/runs/labels_v2s2_seed01_20261030004543/labels_train.pt | |
| 9 | + calib: experiments/runs/labels_v2s2_seed01_20261030004543/labels_calib.pt | |
| 10 | + train: | |
| 11 | + steps: 2000 | |
| 12 | + lr: 0.001 | |
| 13 | + weight_decay: 0.01 | |
| 14 | + alpha: 1.0 | |
| 15 | + beta: 0.5 | |
| 16 | + gamma: 0.1 | |
| 17 | + huber_delta: 0.1 | |
| 18 | + log_every: 100 | |
| 19 | + eval_every: 250 | |
| 20 | + seq_len: 320 | |
| 21 | + lambda_grid: | |
| 22 | + - 0.0 | |
| 23 | + - 0.01 | |
| 24 | + - 0.03 | |
| 25 | + - 0.1 | |
| 26 | + - 0.3 | |
| 27 | + kappa_grid: | |
| 28 | + - 0.0 | |
| 29 | + - 0.5 | |
| 30 | + sweep_batches: 10 | |
| 31 | + max_budget: 8 | |
| 32 | + selection_rule: max_loss_reduction_per_ops | |
| 33 | + model_overrides: | |
| 34 | + ctrl_input: h | |
| 35 | + ctrl_use_entropy: true | |
| 36 | +model: | |
| 37 | + name: tiny_p4v2 | |
| 38 | + vocab_size: 128 | |
| 39 | + d_model: 256 | |
| 40 | + n_layers: 6 | |
| 41 | + n_heads: 8 | |
| 42 | + n_kv_heads: 4 | |
| 43 | + ffn_width: 768 | |
| 44 | + max_seq_len: 320 | |
| 45 | + rope_theta: 10000.0 | |
| 46 | + norm_eps: 1.0e-05 | |
| 47 | + tie_embeddings: true | |
| 48 | + init_std: 0.02 | |
| 49 | + use_workspace: true | |
| 50 | + w: 64 | |
| 51 | + ffn_w: 192 | |
| 52 | + n_slots: 16 | |
| 53 | + n_editor_blocks: 2 | |
| 54 | + n_editor_heads: 2 | |
| 55 | + r_max: 8 | |
| 56 | + eta_max: 0.25 | |
| 57 | + clip_c: 1.0 | |
| 58 | + clip_eps: 1.0e-06 | |
| 59 | + readout_zero_init: false | |
| 60 | + readout_init_std: 0.2 | |
| 61 | + readout_scale: 38.51451873779297 | |
| 62 | + controller_hidden: 0 | |
| 63 | + ctrl_input: h | |
| 64 | + ctrl_use_entropy: true | |
| 65 | + lambda_cost: 0.0 | |
| 66 | + kappa_risk: 0.0 | |
| 67 | + dense_writes: false | |
added
experiments/runs/controller_v2s2_seed01_20261030004717/manifest.json
+151 −0
@@ -0,0 +1,151 @@ | ||
| 1 | +{ | |
| 2 | + "run_id": "controller_v2s2_seed01_20261030004717", | |
| 3 | + "name": "controller_v2s2", | |
| 4 | + "seed": 1, | |
| 5 | + "code_commit": "unknown", | |
| 6 | + "config_sha256": "8cdd361620875bda3cfcae976e78a784064bfff845c0433fa1fafec7f9805f54", | |
| 7 | + "started_at": "2026-10-30T00:47:17-0400", | |
| 8 | + "host": "M4M64c", | |
| 9 | + "python": "3.12.14", | |
| 10 | + "torch": "2.15.0", | |
| 11 | + "command": "/Users/simon-pierreboucher/wp31/prisme-slm/training/train_controller.py --config configs/experiments/controller_v2s2.yaml --device mps", | |
| 12 | + "state": "completed", | |
| 13 | + "wall_seconds": 193.23, | |
| 14 | + "device": "mps", | |
| 15 | + "checkpoint_parent": "experiments/runs/p4v2_prisme_seed02_20261030001749/checkpoint", | |
| 16 | + "labels_train": "experiments/runs/labels_v2s2_seed01_20261030004543/labels_train.pt", | |
| 17 | + "labels_calib": "experiments/runs/labels_v2s2_seed01_20261030004543/labels_calib.pt", | |
| 18 | + "finished_at": "2026-10-30T00:50:30-0400", | |
| 19 | + "eval_train": { | |
| 20 | + "huber": 0.0010070554593935765, | |
| 21 | + "sign_acc": 0.4106531766106234, | |
| 22 | + "harm_brier": 0.1394085687570071, | |
| 23 | + "harm_ece": 0.02013043873012066, | |
| 24 | + "n_labels": 26884, | |
| 25 | + "oracle_opportunity_per_state": 0.01949981483372454, | |
| 26 | + "regret_per_state": 0.013346665076057068, | |
| 27 | + "captured_fraction": 0.3155491377808227, | |
| 28 | + "top1_match": 0.059802712700369916, | |
| 29 | + "n_audit_states": 1622 | |
| 30 | + }, | |
| 31 | + "eval_calib": { | |
| 32 | + "huber": 0.001002937499951388, | |
| 33 | + "sign_acc": 0.412654183385347, | |
| 34 | + "harm_brier": 0.1532348860141019, | |
| 35 | + "harm_ece": 0.03501247614622116, | |
| 36 | + "n_labels": 26916, | |
| 37 | + "oracle_opportunity_per_state": 0.020023393703449098, | |
| 38 | + "regret_per_state": 0.013364227492033892, | |
| 39 | + "captured_fraction": 0.3325693091809977, | |
| 40 | + "top1_match": 0.06930091185410335, | |
| 41 | + "n_audit_states": 1645 | |
| 42 | + }, | |
| 43 | + "sweep": [ | |
| 44 | + { | |
| 45 | + "lambda": 0.0, | |
| 46 | + "kappa": 0.0, | |
| 47 | + "loss": 0.5010346970382817, | |
| 48 | + "edits_per_token": 6.505338078291815, | |
| 49 | + "extra_ops_ratio": 0.842747028753568, | |
| 50 | + "loss_reduction": -0.013628671177765672, | |
| 51 | + "reduction_per_ops": -0.016171722608055498 | |
| 52 | + }, | |
| 53 | + { | |
| 54 | + "lambda": 0.0, | |
| 55 | + "kappa": 0.5, | |
| 56 | + "loss": 0.4934385713733388, | |
| 57 | + "edits_per_token": 3.9359430604982206, | |
| 58 | + "extra_ops_ratio": 0.4958741628119671, | |
| 59 | + "loss_reduction": -0.006032545512822729, | |
| 60 | + "reduction_per_ops": -0.012165476576988422 | |
| 61 | + }, | |
| 62 | + { | |
| 63 | + "lambda": 0.01, | |
| 64 | + "kappa": 0.0, | |
| 65 | + "loss": 0.49886353244985127, | |
| 66 | + "edits_per_token": 6.35349940688019, | |
| 67 | + "extra_ops_ratio": 0.815659252632838, | |
| 68 | + "loss_reduction": -0.011457506589335198, | |
| 69 | + "reduction_per_ops": -0.01404692774875282 | |
| 70 | + }, | |
| 71 | + { | |
| 72 | + "lambda": 0.01, | |
| 73 | + "kappa": 0.5, | |
| 74 | + "loss": 0.49234691180933976, | |
| 75 | + "edits_per_token": 3.7265717674970342, | |
| 76 | + "extra_ops_ratio": 0.4669636967343368, | |
| 77 | + "loss_reduction": -0.004940885948823692, | |
| 78 | + "reduction_per_ops": -0.010580878092616784 | |
| 79 | + }, | |
| 80 | + { | |
| 81 | + "lambda": 0.03, | |
| 82 | + "kappa": 0.0, | |
| 83 | + "loss": 0.49679631949319536, | |
| 84 | + "edits_per_token": 5.992289442467379, | |
| 85 | + "extra_ops_ratio": 0.7534280869743012, | |
| 86 | + "loss_reduction": -0.009390293632679292, | |
| 87 | + "reduction_per_ops": -0.012463423908696925 | |
| 88 | + }, | |
| 89 | + { | |
| 90 | + "lambda": 0.03, | |
| 91 | + "kappa": 0.5, | |
| 92 | + "loss": 0.4901708600642701, | |
| 93 | + "edits_per_token": 3.0759193357058128, | |
| 94 | + "extra_ops_ratio": 0.37601326142624464, | |
| 95 | + "loss_reduction": -0.0027648342037540075, | |
| 96 | + "reduction_per_ops": -0.007353023117500691 | |
| 97 | + }, | |
| 98 | + { | |
| 99 | + "lambda": 0.1, | |
| 100 | + "kappa": 0.0, | |
| 101 | + "loss": 0.4935920529801085, | |
| 102 | + "edits_per_token": 3.5118623962040334, | |
| 103 | + "extra_ops_ratio": 0.4023556692320257, | |
| 104 | + "loss_reduction": -0.00618602711959243, | |
| 105 | + "reduction_per_ops": -0.015374524562807005 | |
| 106 | + }, | |
| 107 | + { | |
| 108 | + "lambda": 0.1, | |
| 109 | + "kappa": 0.5, | |
| 110 | + "loss": 0.48869777602515896, | |
| 111 | + "edits_per_token": 1.2004744958481612, | |
| 112 | + "extra_ops_ratio": 0.1326800710648687, | |
| 113 | + "loss_reduction": -0.0012917501646428908, | |
| 114 | + "reduction_per_ops": -0.009735826596078174 | |
| 115 | + }, | |
| 116 | + { | |
| 117 | + "lambda": 0.3, | |
| 118 | + "kappa": 0.0, | |
| 119 | + "loss": 0.4878548206949291, | |
| 120 | + "edits_per_token": 0.6435349940688019, | |
| 121 | + "extra_ops_ratio": 0.06894260369161694, | |
| 122 | + "loss_reduction": -0.00044879483441301327, | |
| 123 | + "reduction_per_ops": -0.006509687919830977 | |
| 124 | + }, | |
| 125 | + { | |
| 126 | + "lambda": 0.3, | |
| 127 | + "kappa": 0.5, | |
| 128 | + "loss": 0.4873708813215914, | |
| 129 | + "edits_per_token": 0.020166073546856466, | |
| 130 | + "extra_ops_ratio": 0.0021535491621649844, | |
| 131 | + "loss_reduction": 3.514453892466962e-05, | |
| 132 | + "reduction_per_ops": 0.016319357617700477 | |
| 133 | + } | |
| 134 | + ], | |
| 135 | + "baseline_budget0": { | |
| 136 | + "loss": 0.48740602586051607, | |
| 137 | + "edits_per_token": 0.0, | |
| 138 | + "extra_ops_ratio": 0.0 | |
| 139 | + }, | |
| 140 | + "selected": { | |
| 141 | + "lambda": 0.3, | |
| 142 | + "kappa": 0.5, | |
| 143 | + "loss": 0.4873708813215914, | |
| 144 | + "edits_per_token": 0.020166073546856466, | |
| 145 | + "extra_ops_ratio": 0.0021535491621649844, | |
| 146 | + "loss_reduction": 3.514453892466962e-05, | |
| 147 | + "reduction_per_ops": 0.016319357617700477 | |
| 148 | + }, | |
| 149 | + "checkpoint_sha256": "809bef042a202eb089b8c2860bdd01a30faec25414290983bc7de06b17c27445", | |
| 150 | + "selection_rule": "max_loss_reduction_per_ops" | |
| 151 | +} | |
| \ No newline at end of file | ||
added
experiments/runs/controller_v2s2_seed01_20261030004717/metrics.jsonl
+30 −0
@@ -0,0 +1,30 @@ | ||
| 1 | +{"step": 0, "loss": 9.83135986328125, "gain": 0.14342276751995087, "harm": 0.6234025359153748, "nll": 93.76235961914062, "t": 0.65} | |
| 2 | +{"step": 100, "loss": 0.036009281873703, "gain": 0.0035093766637146473, "harm": 0.44542667269706726, "nll": -1.9021341800689697, "t": 8.75} | |
| 3 | +{"step": 200, "loss": 0.1008618026971817, "gain": 0.003002654295414686, "harm": 0.6249974966049194, "nll": -2.1463959217071533, "t": 15.93} | |
| 4 | +{"step": 249, "calib_huber": 0.01094102960476852, "calib_sign_acc": 0.6051790756427404, "calib_harm_brier": 0.19434303400473638, "calib_harm_ece": 0.09549890458583832, "calib_n_labels": 26916, "calib_oracle_opportunity_per_state": 0.020023393703449098, "calib_regret_per_state": 0.017705129490072604, "calib_captured_fraction": 0.11577778710794495, "calib_top1_match": 0.08206686930091185, "calib_n_audit_states": 1645, "t": 21.98} | |
| 5 | +{"step": 300, "loss": 0.0225842148065567, "gain": 0.0018381704576313496, "harm": 0.5111701488494873, "nll": -2.3483903408050537, "t": 25.41} | |
| 6 | +{"step": 400, "loss": -0.003825247287750244, "gain": 0.0019429537933319807, "harm": 0.47566935420036316, "nll": -2.4360287189483643, "t": 32.64} | |
| 7 | +{"step": 499, "calib_huber": 0.0015247461168314978, "calib_sign_acc": 0.43884678258285037, "calib_harm_brier": 0.17252413148351367, "calib_harm_ece": 0.017360275611281395, "calib_n_labels": 26916, "calib_oracle_opportunity_per_state": 0.020023393703449098, "calib_regret_per_state": 0.01528218683863121, "calib_captured_fraction": 0.23678338123078502, "calib_top1_match": 0.06565349544072949, "calib_n_audit_states": 1645, "t": 41.7} | |
| 8 | +{"step": 500, "loss": 0.060030609369277954, "gain": 0.0015156494919210672, "harm": 0.6202768683433533, "nll": -2.5162346363067627, "t": 41.75} | |
| 9 | +{"step": 600, "loss": 0.13166989386081696, "gain": 0.00890484731644392, "harm": 0.4930534064769745, "nll": -1.2376166582107544, "t": 48.59} | |
| 10 | +{"step": 700, "loss": 0.18399077653884888, "gain": 0.010280882008373737, "harm": 0.4504131078720093, "nll": -0.514966607093811, "t": 55.35} | |
| 11 | +{"step": 749, "calib_huber": 0.004172799588667016, "calib_sign_acc": 0.5681007579135087, "calib_harm_brier": 0.16633579595993525, "calib_harm_ece": 0.0329064205288887, "calib_n_labels": 26916, "calib_oracle_opportunity_per_state": 0.020023393703449098, "calib_regret_per_state": 0.014974688251692474, "calib_captured_fraction": 0.2521403477616768, "calib_top1_match": 0.060790273556231005, "calib_n_audit_states": 1645, "t": 61.43} | |
| 12 | +{"step": 800, "loss": 0.009334906935691833, "gain": 0.008806868456304073, "harm": 0.4048343598842621, "nll": -2.0188913345336914, "t": 64.89} | |
| 13 | +{"step": 900, "loss": 0.028008311986923218, "gain": 0.002588255563750863, "harm": 0.4612581431865692, "nll": -2.0520901679992676, "t": 71.84} | |
| 14 | +{"step": 999, "calib_huber": 0.0018093500733109814, "calib_sign_acc": 0.5104398870560262, "calib_harm_brier": 0.15887767702744113, "calib_harm_ece": 0.02854321524500847, "calib_n_labels": 26916, "calib_oracle_opportunity_per_state": 0.020023393703449098, "calib_regret_per_state": 0.014404436375232452, "calib_captured_fraction": 0.28061962979076627, "calib_top1_match": 0.08389057750759879, "calib_n_audit_states": 1645, "t": 81.28} | |
| 15 | +{"step": 1000, "loss": -0.015576347708702087, "gain": 0.0019178803777322173, "harm": 0.40998339653015137, "nll": -2.2248592376708984, "t": 81.38} | |
| 16 | +{"step": 1100, "loss": -0.06739456951618195, "gain": 0.0009511433891020715, "harm": 0.4489712417125702, "nll": -2.9283132553100586, "t": 88.41} | |
| 17 | +{"step": 1200, "loss": -0.08154422044754028, "gain": 0.0012713662581518292, "harm": 0.46403712034225464, "nll": -3.148341417312622, "t": 95.24} | |
| 18 | +{"step": 1249, "calib_huber": 0.0010799360305828226, "calib_sign_acc": 0.48424728785852283, "calib_harm_brier": 0.15457595845603858, "calib_harm_ece": 0.024711085483431816, "calib_n_labels": 26916, "calib_oracle_opportunity_per_state": 0.020023393703449098, "calib_regret_per_state": 0.014418237549918039, "calib_captured_fraction": 0.2799303772649465, "calib_top1_match": 0.07355623100303951, "calib_n_audit_states": 1645, "t": 101.23} | |
| 19 | +{"step": 1300, "loss": -0.10255365073680878, "gain": 0.0005639962619170547, "harm": 0.4233770966529846, "nll": -3.148061990737915, "t": 104.82} | |
| 20 | +{"step": 1400, "loss": -0.06496067345142365, "gain": 0.0011079360265284777, "harm": 0.4857495129108429, "nll": -3.0894336700439453, "t": 112.24} | |
| 21 | +{"step": 1499, "calib_huber": 0.0010084362830958407, "calib_sign_acc": 0.6550750482984099, "calib_harm_brier": 0.15728407888289173, "calib_harm_ece": 0.022302670404314995, "calib_n_labels": 26916, "calib_oracle_opportunity_per_state": 0.020023393703449098, "calib_regret_per_state": 0.014015099197897868, "calib_captured_fraction": 0.3000637451640519, "calib_top1_match": 0.06930091185410335, "calib_n_audit_states": 1645, "t": 121.73} | |
| 22 | +{"step": 1500, "loss": -0.09400822222232819, "gain": 0.0005882722325623035, "harm": 0.45213499665260315, "nll": -3.2066397666931152, "t": 121.82} | |
| 23 | +{"step": 1600, "loss": -0.06699615716934204, "gain": 0.001017246162518859, "harm": 0.4579717516899109, "nll": -2.9699926376342773, "t": 128.88} | |
| 24 | +{"step": 1700, "loss": -0.149380624294281, "gain": 0.0009441319270990789, "harm": 0.3887898921966553, "nll": -3.4471969604492188, "t": 135.87} | |
| 25 | +{"step": 1749, "calib_huber": 0.0011374952911285398, "calib_sign_acc": 0.75817357705454, "calib_harm_brier": 0.15767023378786882, "calib_harm_ece": 0.019358007237315178, "calib_n_labels": 26916, "calib_oracle_opportunity_per_state": 0.020023393703449098, "calib_regret_per_state": 0.01419691836580317, "calib_captured_fraction": 0.29098340790463995, "calib_top1_match": 0.07537993920972644, "calib_n_audit_states": 1645, "t": 141.68} | |
| 26 | +{"step": 1800, "loss": -0.07670816779136658, "gain": 0.0007706652977503836, "harm": 0.4373716115951538, "nll": -2.961646318435669, "t": 145.4} | |
| 27 | +{"step": 1900, "loss": -0.06387145817279816, "gain": 0.0019935278687626123, "harm": 0.4595317840576172, "nll": -2.956308603286743, "t": 152.6} | |
| 28 | +{"step": 1999, "loss": -0.08407506346702576, "gain": 0.0018677458865568042, "harm": 0.47809404134750366, "nll": -3.2498981952667236, "t": 159.38} | |
| 29 | +{"step": 1999, "calib_huber": 0.001002937499951388, "calib_sign_acc": 0.412654183385347, "calib_harm_brier": 0.1532348860141019, "calib_harm_ece": 0.03501247614622116, "calib_n_labels": 26916, "calib_oracle_opportunity_per_state": 0.020023393703449098, "calib_regret_per_state": 0.013364227492033892, "calib_captured_fraction": 0.3325693091809977, "calib_top1_match": 0.06930091185410335, "calib_n_audit_states": 1645, "t": 161.96} | |
| 30 | +{"event": "restored_best_calibration_checkpoint", "step": 2000, "score": -0.013364227492033892, "t": 161.97} | |
added
experiments/runs/controller_v2s3_seed01_20261030004720/checkpoint/checkpoint.json
+49 −0
@@ -0,0 +1,49 @@ | ||
| 1 | +{ | |
| 2 | + "config": { | |
| 3 | + "name": "tiny_p4v2", | |
| 4 | + "vocab_size": 128, | |
| 5 | + "d_model": 256, | |
| 6 | + "n_layers": 6, | |
| 7 | + "n_heads": 8, | |
| 8 | + "n_kv_heads": 4, | |
| 9 | + "ffn_width": 768, | |
| 10 | + "max_seq_len": 320, | |
| 11 | + "rope_theta": 10000.0, | |
| 12 | + "norm_eps": 1e-05, | |
| 13 | + "tie_embeddings": true, | |
| 14 | + "init_std": 0.02, | |
| 15 | + "use_workspace": true, | |
| 16 | + "w": 64, | |
| 17 | + "ffn_w": 192, | |
| 18 | + "n_slots": 16, | |
| 19 | + "n_editor_blocks": 2, | |
| 20 | + "n_editor_heads": 2, | |
| 21 | + "r_max": 8, | |
| 22 | + "eta_max": 0.25, | |
| 23 | + "clip_c": 1.0, | |
| 24 | + "clip_eps": 1e-06, | |
| 25 | + "readout_zero_init": false, | |
| 26 | + "readout_init_std": 0.2, | |
| 27 | + "readout_scale": 38.98434829711914, | |
| 28 | + "controller_hidden": 0, | |
| 29 | + "ctrl_input": "h", | |
| 30 | + "ctrl_use_entropy": true, | |
| 31 | + "lambda_cost": 0.3, | |
| 32 | + "kappa_risk": 0.0, | |
| 33 | + "dense_writes": false | |
| 34 | + }, | |
| 35 | + "saved_at": "2026-10-30T00:50:38-0400", | |
| 36 | + "run_id": "controller_v2s3_seed01_20261030004720", | |
| 37 | + "parent": "experiments/runs/p4v2_prisme_seed03_20261030001749/checkpoint", | |
| 38 | + "selected": { | |
| 39 | + "lambda": 0.3, | |
| 40 | + "kappa": 0.0, | |
| 41 | + "loss": 0.4887911139292508, | |
| 42 | + "edits_per_token": 4.198102016607355, | |
| 43 | + "extra_ops_ratio": 0.4771132757655242, | |
| 44 | + "loss_reduction": -0.001385088068734719, | |
| 45 | + "reduction_per_ops": -0.002903059166635757 | |
| 46 | + }, | |
| 47 | + "locked": true, | |
| 48 | + "weights_sha256": "34ec25bc13935a5276c68155f7bd978233d297fd543a288cd9612686fa7e6c75" | |
| 49 | +} | |
| \ No newline at end of file | ||
added
experiments/runs/controller_v2s3_seed01_20261030004720/config.yaml
+67 −0
@@ -0,0 +1,67 @@ | ||
| 1 | +experiment: | |
| 2 | + name: controller_v2s3 | |
| 3 | + seed: 1 | |
| 4 | + mode: prisme | |
| 5 | + model: from_checkpoint | |
| 6 | + checkpoint: experiments/runs/p4v2_prisme_seed03_20261030001749/checkpoint | |
| 7 | + labels: | |
| 8 | + train: experiments/runs/labels_v2s3_seed01_20261030004544/labels_train.pt | |
| 9 | + calib: experiments/runs/labels_v2s3_seed01_20261030004544/labels_calib.pt | |
| 10 | + train: | |
| 11 | + steps: 2000 | |
| 12 | + lr: 0.001 | |
| 13 | + weight_decay: 0.01 | |
| 14 | + alpha: 1.0 | |
| 15 | + beta: 0.5 | |
| 16 | + gamma: 0.1 | |
| 17 | + huber_delta: 0.1 | |
| 18 | + log_every: 100 | |
| 19 | + eval_every: 250 | |
| 20 | + seq_len: 320 | |
| 21 | + lambda_grid: | |
| 22 | + - 0.0 | |
| 23 | + - 0.01 | |
| 24 | + - 0.03 | |
| 25 | + - 0.1 | |
| 26 | + - 0.3 | |
| 27 | + kappa_grid: | |
| 28 | + - 0.0 | |
| 29 | + - 0.5 | |
| 30 | + sweep_batches: 10 | |
| 31 | + max_budget: 8 | |
| 32 | + selection_rule: max_loss_reduction_per_ops | |
| 33 | + model_overrides: | |
| 34 | + ctrl_input: h | |
| 35 | + ctrl_use_entropy: true | |
| 36 | +model: | |
| 37 | + name: tiny_p4v2 | |
| 38 | + vocab_size: 128 | |
| 39 | + d_model: 256 | |
| 40 | + n_layers: 6 | |
| 41 | + n_heads: 8 | |
| 42 | + n_kv_heads: 4 | |
| 43 | + ffn_width: 768 | |
| 44 | + max_seq_len: 320 | |
| 45 | + rope_theta: 10000.0 | |
| 46 | + norm_eps: 1.0e-05 | |
| 47 | + tie_embeddings: true | |
| 48 | + init_std: 0.02 | |
| 49 | + use_workspace: true | |
| 50 | + w: 64 | |
| 51 | + ffn_w: 192 | |
| 52 | + n_slots: 16 | |
| 53 | + n_editor_blocks: 2 | |
| 54 | + n_editor_heads: 2 | |
| 55 | + r_max: 8 | |
| 56 | + eta_max: 0.25 | |
| 57 | + clip_c: 1.0 | |
| 58 | + clip_eps: 1.0e-06 | |
| 59 | + readout_zero_init: false | |
| 60 | + readout_init_std: 0.2 | |
| 61 | + readout_scale: 38.98434829711914 | |
| 62 | + controller_hidden: 0 | |
| 63 | + ctrl_input: h | |
| 64 | + ctrl_use_entropy: true | |
| 65 | + lambda_cost: 0.0 | |
| 66 | + kappa_risk: 0.0 | |
| 67 | + dense_writes: false | |
added
experiments/runs/controller_v2s3_seed01_20261030004720/manifest.json
+151 −0
@@ -0,0 +1,151 @@ | ||
| 1 | +{ | |
| 2 | + "run_id": "controller_v2s3_seed01_20261030004720", | |
| 3 | + "name": "controller_v2s3", | |
| 4 | + "seed": 1, | |
| 5 | + "code_commit": "unknown", | |
| 6 | + "config_sha256": "e56154e7ec9666ab6d7e4a94427e0c31397f8975c9b339b0344bd8cbb90bb651", | |
| 7 | + "started_at": "2026-10-30T00:47:20-0400", | |
| 8 | + "host": "MacStudnpierre6", | |
| 9 | + "python": "3.12.13", | |
| 10 | + "torch": "2.15.0", | |
| 11 | + "command": "/Users/simon-pierreboucher/wp31/prisme-slm/training/train_controller.py --config configs/experiments/controller_v2s3.yaml --device mps", | |
| 12 | + "state": "completed", | |
| 13 | + "wall_seconds": 197.97, | |
| 14 | + "device": "mps", | |
| 15 | + "checkpoint_parent": "experiments/runs/p4v2_prisme_seed03_20261030001749/checkpoint", | |
| 16 | + "labels_train": "experiments/runs/labels_v2s3_seed01_20261030004544/labels_train.pt", | |
| 17 | + "labels_calib": "experiments/runs/labels_v2s3_seed01_20261030004544/labels_calib.pt", | |
| 18 | + "finished_at": "2026-10-30T00:50:38-0400", | |
| 19 | + "eval_train": { | |
| 20 | + "huber": 0.007815325425114948, | |
| 21 | + "sign_acc": 0.48322422258592473, | |
| 22 | + "harm_brier": 0.19074533085368287, | |
| 23 | + "harm_ece": 0.061203483492136, | |
| 24 | + "n_labels": 26884, | |
| 25 | + "oracle_opportunity_per_state": 0.019982138044590134, | |
| 26 | + "regret_per_state": 0.01430556020078177, | |
| 27 | + "captured_fraction": 0.28408260573223354, | |
| 28 | + "top1_match": 0.1029593094944513, | |
| 29 | + "n_audit_states": 1622 | |
| 30 | + }, | |
| 31 | + "eval_calib": { | |
| 32 | + "huber": 0.007724088622620563, | |
| 33 | + "sign_acc": 0.5044954673799971, | |
| 34 | + "harm_brier": 0.19917026808329547, | |
| 35 | + "harm_ece": 0.08023828268051147, | |
| 36 | + "n_labels": 26916, | |
| 37 | + "oracle_opportunity_per_state": 0.0200653997960424, | |
| 38 | + "regret_per_state": 0.013944871664771917, | |
| 39 | + "captured_fraction": 0.30502896495875775, | |
| 40 | + "top1_match": 0.08936170212765958, | |
| 41 | + "n_audit_states": 1645 | |
| 42 | + }, | |
| 43 | + "sweep": [ | |
| 44 | + { | |
| 45 | + "lambda": 0.0, | |
| 46 | + "kappa": 0.0, | |
| 47 | + "loss": 0.4941370365599862, | |
| 48 | + "edits_per_token": 5.279359430604982, | |
| 49 | + "extra_ops_ratio": 0.6436597794683236, | |
| 50 | + "loss_reduction": -0.00673101069947013, | |
| 51 | + "reduction_per_ops": -0.010457404539134145 | |
| 52 | + }, | |
| 53 | + { | |
| 54 | + "lambda": 0.0, | |
| 55 | + "kappa": 0.5, | |
| 56 | + "loss": 0.49054730687984227, | |
| 57 | + "edits_per_token": 2.98220640569395, | |
| 58 | + "extra_ops_ratio": 0.34909897257848993, | |
| 59 | + "loss_reduction": -0.003141281019326203, | |
| 60 | + "reduction_per_ops": -0.00899825340683273 | |
| 61 | + }, | |
| 62 | + { | |
| 63 | + "lambda": 0.01, | |
| 64 | + "kappa": 0.0, | |
| 65 | + "loss": 0.4926429264344637, | |
| 66 | + "edits_per_token": 5.233096085409253, | |
| 67 | + "extra_ops_ratio": 0.6357123396433404, | |
| 68 | + "loss_reduction": -0.005236900573947656, | |
| 69 | + "reduction_per_ops": -0.008237846345543273 | |
| 70 | + }, | |
| 71 | + { | |
| 72 | + "lambda": 0.01, | |
| 73 | + "kappa": 0.5, | |
| 74 | + "loss": 0.4901237397290068, | |
| 75 | + "edits_per_token": 2.9187425860023724, | |
| 76 | + "extra_ops_ratio": 0.3409675064177417, | |
| 77 | + "loss_reduction": -0.0027177138684907343, | |
| 78 | + "reduction_per_ops": -0.007970594902263456 | |
| 79 | + }, | |
| 80 | + { | |
| 81 | + "lambda": 0.03, | |
| 82 | + "kappa": 0.0, | |
| 83 | + "loss": 0.49175829451844927, | |
| 84 | + "edits_per_token": 5.177935943060498, | |
| 85 | + "extra_ops_ratio": 0.6265161045929716, | |
| 86 | + "loss_reduction": -0.0043522686579332, | |
| 87 | + "reduction_per_ops": -0.006946778584024965 | |
| 88 | + }, | |
| 89 | + { | |
| 90 | + "lambda": 0.03, | |
| 91 | + "kappa": 0.5, | |
| 92 | + "loss": 0.4906825974035659, | |
| 93 | + "edits_per_token": 2.820284697508897, | |
| 94 | + "extra_ops_ratio": 0.3285812454857153, | |
| 95 | + "loss_reduction": -0.0032765715430498332, | |
| 96 | + "reduction_per_ops": -0.009971876326070711 | |
| 97 | + }, | |
| 98 | + { | |
| 99 | + "lambda": 0.1, | |
| 100 | + "kappa": 0.0, | |
| 101 | + "loss": 0.49028573992130736, | |
| 102 | + "edits_per_token": 4.982799525504152, | |
| 103 | + "extra_ops_ratio": 0.5937093098958334, | |
| 104 | + "loss_reduction": -0.002879714060791294, | |
| 105 | + "reduction_per_ops": -0.004850377133713031 | |
| 106 | + }, | |
| 107 | + { | |
| 108 | + "lambda": 0.1, | |
| 109 | + "kappa": 0.5, | |
| 110 | + "loss": 0.4904432398568693, | |
| 111 | + "edits_per_token": 2.4905100830367735, | |
| 112 | + "extra_ops_ratio": 0.285856970971448, | |
| 113 | + "loss_reduction": -0.003037213996353205, | |
| 114 | + "reduction_per_ops": -0.010624942907747275 | |
| 115 | + }, | |
| 116 | + { | |
| 117 | + "lambda": 0.3, | |
| 118 | + "kappa": 0.0, | |
| 119 | + "loss": 0.4887911139292508, | |
| 120 | + "edits_per_token": 4.198102016607355, | |
| 121 | + "extra_ops_ratio": 0.4771132757655242, | |
| 122 | + "loss_reduction": -0.001385088068734719, | |
| 123 | + "reduction_per_ops": -0.002903059166635757 | |
| 124 | + }, | |
| 125 | + { | |
| 126 | + "lambda": 0.3, | |
| 127 | + "kappa": 0.5, | |
| 128 | + "loss": 0.48979161444649294, | |
| 129 | + "edits_per_token": 1.568208778173191, | |
| 130 | + "extra_ops_ratio": 0.17398185096460164, | |
| 131 | + "loss_reduction": -0.002385588585976872, | |
| 132 | + "reduction_per_ops": -0.0137117094268772 | |
| 133 | + } | |
| 134 | + ], | |
| 135 | + "baseline_budget0": { | |
| 136 | + "loss": 0.48740602586051607, | |
| 137 | + "edits_per_token": 0.0, | |
| 138 | + "extra_ops_ratio": 0.0 | |
| 139 | + }, | |
| 140 | + "selected": { | |
| 141 | + "lambda": 0.3, | |
| 142 | + "kappa": 0.0, | |
| 143 | + "loss": 0.4887911139292508, | |
| 144 | + "edits_per_token": 4.198102016607355, | |
| 145 | + "extra_ops_ratio": 0.4771132757655242, | |
| 146 | + "loss_reduction": -0.001385088068734719, | |
| 147 | + "reduction_per_ops": -0.002903059166635757 | |
| 148 | + }, | |
| 149 | + "checkpoint_sha256": "34ec25bc13935a5276c68155f7bd978233d297fd543a288cd9612686fa7e6c75", | |
| 150 | + "selection_rule": "max_loss_reduction_per_ops" | |
| 151 | +} | |
| \ No newline at end of file | ||
added
experiments/runs/controller_v2s3_seed01_20261030004720/metrics.jsonl
+30 −0
@@ -0,0 +1,30 @@ | ||
| 1 | +{"step": 0, "loss": 0.5471222400665283, "gain": 0.08188310265541077, "harm": 0.7777696847915649, "nll": 0.763542890548706, "t": 1.29} | |
| 2 | +{"step": 100, "loss": 0.10401472449302673, "gain": 0.003353619482368231, "harm": 0.5848105549812317, "nll": -1.917441725730896, "t": 10.42} | |
| 3 | +{"step": 200, "loss": 0.06753906607627869, "gain": 0.002697773976251483, "harm": 0.5347252488136292, "nll": -2.0252132415771484, "t": 17.76} | |
| 4 | +{"step": 249, "calib_huber": 0.007724088622620563, "calib_sign_acc": 0.5044954673799971, "calib_harm_brier": 0.19917026808329547, "calib_harm_ece": 0.08023828268051147, "calib_n_labels": 26916, "calib_oracle_opportunity_per_state": 0.0200653997960424, "calib_regret_per_state": 0.013944871664771917, "calib_captured_fraction": 0.30502896495875775, "calib_top1_match": 0.08936170212765958, "calib_n_audit_states": 1645, "t": 23.98} | |
| 5 | +{"step": 300, "loss": 0.03441177308559418, "gain": 0.0029057699721306562, "harm": 0.5025796890258789, "nll": -2.197838306427002, "t": 27.54} | |
| 6 | +{"step": 400, "loss": 0.10745498538017273, "gain": 0.005344087723642588, "harm": 0.5453636646270752, "nll": -1.7057093381881714, "t": 34.69} | |
| 7 | +{"step": 499, "calib_huber": 0.0029885766587333207, "calib_sign_acc": 0.4259919750334374, "calib_harm_brier": 0.1813072681356139, "calib_harm_ece": 0.0780940130352974, "calib_n_labels": 26916, "calib_oracle_opportunity_per_state": 0.0200653997960424, "calib_regret_per_state": 0.014313748107492743, "calib_captured_fraction": 0.2866452573590925, "calib_top1_match": 0.0547112462006079, "calib_n_audit_states": 1645, "t": 44.21} | |
| 8 | +{"step": 500, "loss": 0.07936693727970123, "gain": 0.002874889876693487, "harm": 0.5229513049125671, "nll": -1.849835991859436, "t": 44.29} | |
| 9 | +{"step": 600, "loss": 0.006543099880218506, "gain": 0.001932281069457531, "harm": 0.48412805795669556, "nll": -2.3745319843292236, "t": 51.1} | |
| 10 | +{"step": 700, "loss": 0.06510673463344574, "gain": 0.00877080112695694, "harm": 0.4454459547996521, "nll": -1.6638703346252441, "t": 58.48} | |
| 11 | +{"step": 749, "calib_huber": 0.002168223534212865, "calib_sign_acc": 0.49041462327240304, "calib_harm_brier": 0.16566909980518818, "calib_harm_ece": 0.042970336973667145, "calib_n_labels": 26916, "calib_oracle_opportunity_per_state": 0.0200653997960424, "calib_regret_per_state": 0.015758255694774872, "calib_captured_fraction": 0.21465528447218118, "calib_top1_match": 0.041945288753799395, "calib_n_audit_states": 1645, "t": 64.88} | |
| 12 | +{"step": 800, "loss": 0.06329897046089172, "gain": 0.0020338173490017653, "harm": 0.5008138418197632, "nll": -1.8914177417755127, "t": 68.52} | |
| 13 | +{"step": 900, "loss": -0.044697314500808716, "gain": 0.001048971083946526, "harm": 0.44541195034980774, "nll": -2.6845223903656006, "t": 75.49} | |
| 14 | +{"step": 999, "calib_huber": 0.0013120168749990958, "calib_sign_acc": 0.3987591023926289, "calib_harm_brier": 0.1603591404196447, "calib_harm_ece": 0.026692669838666916, "calib_n_labels": 26916, "calib_oracle_opportunity_per_state": 0.0200653997960424, "calib_regret_per_state": 0.01603862224741185, "calib_captured_fraction": 0.2006826472216502, "calib_top1_match": 0.04012158054711246, "calib_n_audit_states": 1645, "t": 85.15} | |
| 15 | +{"step": 1000, "loss": -0.02209603786468506, "gain": 0.0009799482068046927, "harm": 0.5161257386207581, "nll": -2.8113887310028076, "t": 85.23} | |
| 16 | +{"step": 1100, "loss": -0.10085465013980865, "gain": 0.0010887801181524992, "harm": 0.434581995010376, "nll": -3.1923441886901855, "t": 92.09} | |
| 17 | +{"step": 1200, "loss": -0.10687923431396484, "gain": 0.0008391870651394129, "harm": 0.4322952926158905, "nll": -3.2386605739593506, "t": 99.33} | |
| 18 | +{"step": 1249, "calib_huber": 0.0011769543454628994, "calib_sign_acc": 0.36168078466339726, "calib_harm_brier": 0.15637497314462195, "calib_harm_ece": 0.017439356073737144, "calib_n_labels": 26916, "calib_oracle_opportunity_per_state": 0.0200653997960424, "calib_regret_per_state": 0.01591340959253282, "calib_captured_fraction": 0.20692287448608404, "calib_top1_match": 0.044984802431610946, "calib_n_audit_states": 1645, "t": 105.4} | |
| 19 | +{"step": 1300, "loss": -0.10567505657672882, "gain": 0.0011399664217606187, "harm": 0.4573471248149872, "nll": -3.3548858165740967, "t": 109.09} | |
| 20 | +{"step": 1400, "loss": -0.1049814522266388, "gain": 0.0012958016013726592, "harm": 0.45608627796173096, "nll": -3.3432040214538574, "t": 116.11} | |
| 21 | +{"step": 1499, "calib_huber": 0.001097509661557363, "calib_sign_acc": 0.5441744687174914, "calib_harm_brier": 0.15651853762368848, "calib_harm_ece": 0.01747792400419712, "calib_n_labels": 26916, "calib_oracle_opportunity_per_state": 0.0200653997960424, "calib_regret_per_state": 0.015713384810914385, "calib_captured_fraction": 0.21689151621022695, "calib_top1_match": 0.0486322188449848, "calib_n_audit_states": 1645, "t": 125.65} | |
| 22 | +{"step": 1500, "loss": -0.1010504961013794, "gain": 0.0016412652330473065, "harm": 0.4739455282688141, "nll": -3.3966450691223145, "t": 125.7} | |
| 23 | +{"step": 1600, "loss": -0.06810225546360016, "gain": 0.0016716807149350643, "harm": 0.47334086894989014, "nll": -3.064443826675415, "t": 132.59} | |
| 24 | +{"step": 1700, "loss": -0.10438083112239838, "gain": 0.0014919735258445144, "harm": 0.4370725750923157, "nll": -3.2440907955169678, "t": 139.85} | |
| 25 | +{"step": 1749, "calib_huber": 0.001152203617478253, "calib_sign_acc": 0.6283251597562788, "calib_harm_brier": 0.15444377882729704, "calib_harm_ece": 0.021278375759720802, "calib_n_labels": 26916, "calib_oracle_opportunity_per_state": 0.0200653997960424, "calib_regret_per_state": 0.01586139586196482, "calib_captured_fraction": 0.20951508451412748, "calib_top1_match": 0.0547112462006079, "calib_n_audit_states": 1645, "t": 145.83} | |
| 26 | +{"step": 1800, "loss": -0.12716279923915863, "gain": 0.0009756564977578819, "harm": 0.42070525884628296, "nll": -3.384910821914673, "t": 149.48} | |
| 27 | +{"step": 1900, "loss": -0.11546054482460022, "gain": 0.0011908027809113264, "harm": 0.4737454354763031, "nll": -3.535240411758423, "t": 156.56} | |
| 28 | +{"step": 1999, "loss": -0.14543230831623077, "gain": 0.001172536169178784, "harm": 0.42771992087364197, "nll": -3.6046481132507324, "t": 163.78} | |
| 29 | +{"step": 1999, "calib_huber": 0.0010707473310660352, "calib_sign_acc": 0.38646158418784365, "calib_harm_brier": 0.15663047594378546, "calib_harm_ece": 0.018951764330267906, "calib_n_labels": 26916, "calib_oracle_opportunity_per_state": 0.0200653997960424, "calib_regret_per_state": 0.01485436325015268, "calib_captured_fraction": 0.2597026024329462, "calib_top1_match": 0.06504559270516717, "calib_n_audit_states": 1645, "t": 166.28} | |
| 30 | +{"event": "restored_best_calibration_checkpoint", "step": 250, "score": -0.013944871664771917, "t": 166.29} | |
added
experiments/runs/controller_v2s4_seed01_20261030004719/checkpoint/checkpoint.json
+49 −0
@@ -0,0 +1,49 @@ | ||
| 1 | +{ | |
| 2 | + "config": { | |
| 3 | + "name": "tiny_p4v2", | |
| 4 | + "vocab_size": 128, | |
| 5 | + "d_model": 256, | |
| 6 | + "n_layers": 6, | |
| 7 | + "n_heads": 8, | |
| 8 | + "n_kv_heads": 4, | |
| 9 | + "ffn_width": 768, | |
| 10 | + "max_seq_len": 320, | |
| 11 | + "rope_theta": 10000.0, | |
| 12 | + "norm_eps": 1e-05, | |
| 13 | + "tie_embeddings": true, | |
| 14 | + "init_std": 0.02, | |
| 15 | + "use_workspace": true, | |
| 16 | + "w": 64, | |
| 17 | + "ffn_w": 192, | |
| 18 | + "n_slots": 16, | |
| 19 | + "n_editor_blocks": 2, | |
| 20 | + "n_editor_heads": 2, | |
| 21 | + "r_max": 8, | |
| 22 | + "eta_max": 0.25, | |
| 23 | + "clip_c": 1.0, | |
| 24 | + "clip_eps": 1e-06, | |
| 25 | + "readout_zero_init": false, | |
| 26 | + "readout_init_std": 0.2, | |
| 27 | + "readout_scale": 39.0492057800293, | |
| 28 | + "controller_hidden": 0, | |
| 29 | + "ctrl_input": "h", | |
| 30 | + "ctrl_use_entropy": true, | |
| 31 | + "lambda_cost": 0.3, | |
| 32 | + "kappa_risk": 0.5, | |
| 33 | + "dense_writes": false | |
| 34 | + }, | |
| 35 | + "saved_at": "2026-10-30T00:50:56-0400", | |
| 36 | + "run_id": "controller_v2s4_seed01_20261030004719", | |
| 37 | + "parent": "experiments/runs/p4v2_prisme_seed04_20261030001749/checkpoint", | |
| 38 | + "selected": { | |
| 39 | + "lambda": 0.3, | |
| 40 | + "kappa": 0.5, | |
| 41 | + "loss": 0.48625035585740567, | |
| 42 | + "edits_per_token": 0.1951364175563464, | |
| 43 | + "extra_ops_ratio": 0.02227253153089385, | |
| 44 | + "loss_reduction": 0.0011556700031103984, | |
| 45 | + "reduction_per_ops": 0.05188768063959807 | |
| 46 | + }, | |
| 47 | + "locked": true, | |
| 48 | + "weights_sha256": "ce86e3a12b5d5af217859afaccfe238677ad488c5ee0b4f219200742f99a7fa2" | |
| 49 | +} | |
| \ No newline at end of file | ||
added
experiments/runs/controller_v2s4_seed01_20261030004719/config.yaml
+67 −0
@@ -0,0 +1,67 @@ | ||
| 1 | +experiment: | |
| 2 | + name: controller_v2s4 | |
| 3 | + seed: 1 | |
| 4 | + mode: prisme | |
| 5 | + model: from_checkpoint | |
| 6 | + checkpoint: experiments/runs/p4v2_prisme_seed04_20261030001749/checkpoint | |
| 7 | + labels: | |
| 8 | + train: experiments/runs/labels_v2s4_seed01_20261030004544/labels_train.pt | |
| 9 | + calib: experiments/runs/labels_v2s4_seed01_20261030004544/labels_calib.pt | |
| 10 | + train: | |
| 11 | + steps: 2000 | |
| 12 | + lr: 0.001 | |
| 13 | + weight_decay: 0.01 | |
| 14 | + alpha: 1.0 | |
| 15 | + beta: 0.5 | |
| 16 | + gamma: 0.1 | |
| 17 | + huber_delta: 0.1 | |
| 18 | + log_every: 100 | |
| 19 | + eval_every: 250 | |
| 20 | + seq_len: 320 | |
| 21 | + lambda_grid: | |
| 22 | + - 0.0 | |
| 23 | + - 0.01 | |
| 24 | + - 0.03 | |
| 25 | + - 0.1 | |
| 26 | + - 0.3 | |
| 27 | + kappa_grid: | |
| 28 | + - 0.0 | |
| 29 | + - 0.5 | |
| 30 | + sweep_batches: 10 | |
| 31 | + max_budget: 8 | |
| 32 | + selection_rule: max_loss_reduction_per_ops | |
| 33 | + model_overrides: | |
| 34 | + ctrl_input: h | |
| 35 | + ctrl_use_entropy: true | |
| 36 | +model: | |
| 37 | + name: tiny_p4v2 | |
| 38 | + vocab_size: 128 | |
| 39 | + d_model: 256 | |
| 40 | + n_layers: 6 | |
| 41 | + n_heads: 8 | |
| 42 | + n_kv_heads: 4 | |
| 43 | + ffn_width: 768 | |
| 44 | + max_seq_len: 320 | |
| 45 | + rope_theta: 10000.0 | |
| 46 | + norm_eps: 1.0e-05 | |
| 47 | + tie_embeddings: true | |
| 48 | + init_std: 0.02 | |
| 49 | + use_workspace: true | |
| 50 | + w: 64 | |
| 51 | + ffn_w: 192 | |
| 52 | + n_slots: 16 | |
| 53 | + n_editor_blocks: 2 | |
| 54 | + n_editor_heads: 2 | |
| 55 | + r_max: 8 | |
| 56 | + eta_max: 0.25 | |
| 57 | + clip_c: 1.0 | |
| 58 | + clip_eps: 1.0e-06 | |
| 59 | + readout_zero_init: false | |
| 60 | + readout_init_std: 0.2 | |
| 61 | + readout_scale: 39.0492057800293 | |
| 62 | + controller_hidden: 0 | |
| 63 | + ctrl_input: h | |
| 64 | + ctrl_use_entropy: true | |
| 65 | + lambda_cost: 0.0 | |
| 66 | + kappa_risk: 0.0 | |
| 67 | + dense_writes: false | |
added
experiments/runs/controller_v2s4_seed01_20261030004719/manifest.json
+151 −0
@@ -0,0 +1,151 @@ | ||
| 1 | +{ | |
| 2 | + "run_id": "controller_v2s4_seed01_20261030004719", | |
| 3 | + "name": "controller_v2s4", | |
| 4 | + "seed": 1, | |
| 5 | + "code_commit": "unknown", | |
| 6 | + "config_sha256": "e2fd878b8eb564a3b6415335bf21da1ff862fdf95dfbdb47fefa2577cda90381", | |
| 7 | + "started_at": "2026-10-30T00:47:19-0400", | |
| 8 | + "host": "M5M36", | |
| 9 | + "python": "3.12.14", | |
| 10 | + "torch": "2.15.0", | |
| 11 | + "command": "/Users/simon-pierreboucher/wp31/prisme-slm/training/train_controller.py --config configs/experiments/controller_v2s4.yaml --device mps", | |
| 12 | + "state": "completed", | |
| 13 | + "wall_seconds": 217.1, | |
| 14 | + "device": "mps", | |
| 15 | + "checkpoint_parent": "experiments/runs/p4v2_prisme_seed04_20261030001749/checkpoint", | |
| 16 | + "labels_train": "experiments/runs/labels_v2s4_seed01_20261030004544/labels_train.pt", | |
| 17 | + "labels_calib": "experiments/runs/labels_v2s4_seed01_20261030004544/labels_calib.pt", | |
| 18 | + "finished_at": "2026-10-30T00:50:56-0400", | |
| 19 | + "eval_train": { | |
| 20 | + "huber": 0.0012207997952024066, | |
| 21 | + "sign_acc": 0.6253905668799286, | |
| 22 | + "harm_brier": 0.14596635829549232, | |
| 23 | + "harm_ece": 0.06639833003282547, | |
| 24 | + "n_labels": 26884, | |
| 25 | + "oracle_opportunity_per_state": 0.017455400138836164, | |
| 26 | + "regret_per_state": 0.012565521732358545, | |
| 27 | + "captured_fraction": 0.28013556650576177, | |
| 28 | + "top1_match": 0.059802712700369916, | |
| 29 | + "n_audit_states": 1622 | |
| 30 | + }, | |
| 31 | + "eval_calib": { | |
| 32 | + "huber": 0.0012847311736074417, | |
| 33 | + "sign_acc": 0.6326348640213999, | |
| 34 | + "harm_brier": 0.15521432896712006, | |
| 35 | + "harm_ece": 0.07186548411846161, | |
| 36 | + "n_labels": 26916, | |
| 37 | + "oracle_opportunity_per_state": 0.023318092004144083, | |
| 38 | + "regret_per_state": 0.011166786567780747, | |
| 39 | + "captured_fraction": 0.52111062235297, | |
| 40 | + "top1_match": 0.06018237082066869, | |
| 41 | + "n_audit_states": 1645 | |
| 42 | + }, | |
| 43 | + "sweep": [ | |
| 44 | + { | |
| 45 | + "lambda": 0.0, | |
| 46 | + "kappa": 0.0, | |
| 47 | + "loss": 0.49249181147854804, | |
| 48 | + "edits_per_token": 3.6684460260972718, | |
| 49 | + "extra_ops_ratio": 0.470991978583104, | |
| 50 | + "loss_reduction": -0.005085785618031968, | |
| 51 | + "reduction_per_ops": -0.010798030219817446 | |
| 52 | + }, | |
| 53 | + { | |
| 54 | + "lambda": 0.0, | |
| 55 | + "kappa": 0.5, | |
| 56 | + "loss": 0.4869922624364018, | |
| 57 | + "edits_per_token": 1.9780545670225385, | |
| 58 | + "extra_ops_ratio": 0.23909690739279824, | |
| 59 | + "loss_reduction": 0.00041376342411425515, | |
| 60 | + "reduction_per_ops": 0.0017305260391114452 | |
| 61 | + }, | |
| 62 | + { | |
| 63 | + "lambda": 0.01, | |
| 64 | + "kappa": 0.0, | |
| 65 | + "loss": 0.4923982970937998, | |
| 66 | + "edits_per_token": 3.5539739027283512, | |
| 67 | + "extra_ops_ratio": 0.4550833967939673, | |
| 68 | + "loss_reduction": -0.004992271233283718, | |
| 69 | + "reduction_per_ops": -0.010970013998431808 | |
| 70 | + }, | |
| 71 | + { | |
| 72 | + "lambda": 0.01, | |
| 73 | + "kappa": 0.5, | |
| 74 | + "loss": 0.48735612482362795, | |
| 75 | + "edits_per_token": 1.8612099644128113, | |
| 76 | + "extra_ops_ratio": 0.22442850155903918, | |
| 77 | + "loss_reduction": 4.990103688812253e-05, | |
| 78 | + "reduction_per_ops": 0.00022234714638058275 | |
| 79 | + }, | |
| 80 | + { | |
| 81 | + "lambda": 0.03, | |
| 82 | + "kappa": 0.0, | |
| 83 | + "loss": 0.4913539094574228, | |
| 84 | + "edits_per_token": 3.295373665480427, | |
| 85 | + "extra_ops_ratio": 0.4207166149098678, | |
| 86 | + "loss_reduction": -0.003947883596906732, | |
| 87 | + "reduction_per_ops": -0.009383712116414766 | |
| 88 | + }, | |
| 89 | + { | |
| 90 | + "lambda": 0.03, | |
| 91 | + "kappa": 0.5, | |
| 92 | + "loss": 0.48911659177370626, | |
| 93 | + "edits_per_token": 1.6779359430604983, | |
| 94 | + "extra_ops_ratio": 0.20157079821096763, | |
| 95 | + "loss_reduction": -0.0017105659131901874, | |
| 96 | + "reduction_per_ops": -0.008486179190499004 | |
| 97 | + }, | |
| 98 | + { | |
| 99 | + "lambda": 0.1, | |
| 100 | + "kappa": 0.0, | |
| 101 | + "loss": 0.4855112390303244, | |
| 102 | + "edits_per_token": 2.543890865954923, | |
| 103 | + "extra_ops_ratio": 0.3220053658083806, | |
| 104 | + "loss_reduction": 0.0018947868301916748, | |
| 105 | + "reduction_per_ops": 0.0058843330931299676 | |
| 106 | + }, | |
| 107 | + { | |
| 108 | + "lambda": 0.1, | |
| 109 | + "kappa": 0.5, | |
| 110 | + "loss": 0.486984067398741, | |
| 111 | + "edits_per_token": 1.0504151838671412, | |
| 112 | + "extra_ops_ratio": 0.12493916508141786, | |
| 113 | + "loss_reduction": 0.0004219584617750627, | |
| 114 | + "reduction_per_ops": 0.0033773113618943205 | |
| 115 | + }, | |
| 116 | + { | |
| 117 | + "lambda": 0.3, | |
| 118 | + "kappa": 0.0, | |
| 119 | + "loss": 0.4817445196149471, | |
| 120 | + "edits_per_token": 1.0581257413997627, | |
| 121 | + "extra_ops_ratio": 0.1268179996440702, | |
| 122 | + "loss_reduction": 0.005661506245568992, | |
| 123 | + "reduction_per_ops": 0.04464276570722361 | |
| 124 | + }, | |
| 125 | + { | |
| 126 | + "lambda": 0.3, | |
| 127 | + "kappa": 0.5, | |
| 128 | + "loss": 0.48625035585740567, | |
| 129 | + "edits_per_token": 0.1951364175563464, | |
| 130 | + "extra_ops_ratio": 0.02227253153089385, | |
| 131 | + "loss_reduction": 0.0011556700031103984, | |
| 132 | + "reduction_per_ops": 0.05188768063959807 | |
| 133 | + } | |
| 134 | + ], | |
| 135 | + "baseline_budget0": { | |
| 136 | + "loss": 0.48740602586051607, | |
| 137 | + "edits_per_token": 0.0, | |
| 138 | + "extra_ops_ratio": 0.0 | |
| 139 | + }, | |
| 140 | + "selected": { | |
| 141 | + "lambda": 0.3, | |
| 142 | + "kappa": 0.5, | |
| 143 | + "loss": 0.48625035585740567, | |
| 144 | + "edits_per_token": 0.1951364175563464, | |
| 145 | + "extra_ops_ratio": 0.02227253153089385, | |
| 146 | + "loss_reduction": 0.0011556700031103984, | |
| 147 | + "reduction_per_ops": 0.05188768063959807 | |
| 148 | + }, | |
| 149 | + "checkpoint_sha256": "ce86e3a12b5d5af217859afaccfe238677ad488c5ee0b4f219200742f99a7fa2", | |
| 150 | + "selection_rule": "max_loss_reduction_per_ops" | |
| 151 | +} | |
| \ No newline at end of file | ||
added
experiments/runs/controller_v2s4_seed01_20261030004719/metrics.jsonl
+30 −0
@@ -0,0 +1,30 @@ | ||
| 1 | +{"step": 0, "loss": 0.43164244294166565, "gain": 0.027255289256572723, "harm": 0.7605108022689819, "nll": 0.24131746590137482, "t": 1.48} | |
| 2 | +{"step": 100, "loss": 0.2405385822057724, "gain": 0.004398028831928968, "harm": 0.4923504889011383, "nll": -0.10034700483083725, "t": 11.1} | |
| 3 | +{"step": 200, "loss": 0.0673132985830307, "gain": 0.0024042660370469093, "harm": 0.5429790616035461, "nll": -2.065804958343506, "t": 19.72} | |
| 4 | +{"step": 249, "calib_huber": 0.002094036332741413, "calib_sign_acc": 0.4631817506315946, "calib_harm_brier": 0.17309671079692593, "calib_harm_ece": 0.048935920000076294, "calib_n_labels": 26916, "calib_oracle_opportunity_per_state": 0.023318092004144083, "calib_regret_per_state": 0.014540166550494255, "calib_captured_fraction": 0.3764426974595442, "calib_top1_match": 0.07173252279635259, "calib_n_audit_states": 1645, "t": 26.52} | |
| 5 | +{"step": 300, "loss": 0.005617067217826843, "gain": 0.0021593354176729918, "harm": 0.48432907462120056, "nll": -2.387068033218384, "t": 30.22} | |
| 6 | +{"step": 400, "loss": -0.01675678789615631, "gain": 0.001087905722670257, "harm": 0.4958101809024811, "nll": -2.6574976444244385, "t": 38.24} | |
| 7 | +{"step": 499, "calib_huber": 0.001623512151461332, "calib_sign_acc": 0.5320627136275821, "calib_harm_brier": 0.15747589369836365, "calib_harm_ece": 0.029524514451622963, "calib_n_labels": 26916, "calib_oracle_opportunity_per_state": 0.023318092004144083, "calib_regret_per_state": 0.014382726008406526, "calib_captured_fraction": 0.38319455957844095, "calib_top1_match": 0.0668693009118541, "calib_n_audit_states": 1645, "t": 48.85} | |
| 8 | +{"step": 500, "loss": -0.02444365620613098, "gain": 0.0012579343747347593, "harm": 0.5083814263343811, "nll": -2.7989227771759033, "t": 48.92} | |
| 9 | +{"step": 600, "loss": -0.011498332023620605, "gain": 0.001862199860624969, "harm": 0.4400762915611267, "nll": -2.333986759185791, "t": 56.83} | |
| 10 | +{"step": 700, "loss": 0.02981466054916382, "gain": 0.0019247914897277951, "harm": 0.4267236590385437, "nll": -1.854719638824463, "t": 65.16} | |
| 11 | +{"step": 749, "calib_huber": 0.0018654652089345578, "calib_sign_acc": 0.4522588794768911, "calib_harm_brier": 0.16276104536324382, "calib_harm_ece": 0.09062658995389938, "calib_n_labels": 26916, "calib_oracle_opportunity_per_state": 0.023318092004144083, "calib_regret_per_state": 0.012852072280953359, "calib_captured_fraction": 0.4488368825944553, "calib_top1_match": 0.0662613981762918, "calib_n_audit_states": 1645, "t": 71.46} | |
| 12 | +{"step": 800, "loss": -0.009733706712722778, "gain": 0.0018562733894214034, "harm": 0.3807581663131714, "nll": -2.01969051361084, "t": 75.0} | |
| 13 | +{"step": 900, "loss": -0.04677686095237732, "gain": 0.0012354672653600574, "harm": 0.4526765048503876, "nll": -2.7435057163238525, "t": 82.81} | |
| 14 | +{"step": 999, "calib_huber": 0.0014452590856372841, "calib_sign_acc": 0.48970872343587457, "calib_harm_brier": 0.14695231233172473, "calib_harm_ece": 0.03946586325764656, "calib_n_labels": 26916, "calib_oracle_opportunity_per_state": 0.023318092004144083, "calib_regret_per_state": 0.011811167273477943, "calib_captured_fraction": 0.493476255631084, "calib_top1_match": 0.05531914893617021, "calib_n_audit_states": 1645, "t": 93.47} | |
| 15 | +{"step": 1000, "loss": -0.0617438405752182, "gain": 0.0008112452342174947, "harm": 0.4560224115848541, "nll": -2.905662775039673, "t": 93.57} | |
| 16 | +{"step": 1100, "loss": -0.10207153856754303, "gain": 0.001203094725497067, "harm": 0.3867413103580475, "nll": -2.9664528369903564, "t": 101.64} | |
| 17 | +{"step": 1200, "loss": -0.09816358983516693, "gain": 0.001390167511999607, "harm": 0.41572046279907227, "nll": -3.0741398334503174, "t": 109.49} | |
| 18 | +{"step": 1249, "calib_huber": 0.0012847311736074417, "calib_sign_acc": 0.6326348640213999, "calib_harm_brier": 0.15521432896712006, "calib_harm_ece": 0.07186548411846161, "calib_n_labels": 26916, "calib_oracle_opportunity_per_state": 0.023318092004144083, "calib_regret_per_state": 0.011166786567780747, "calib_captured_fraction": 0.52111062235297, "calib_top1_match": 0.06018237082066869, "calib_n_audit_states": 1645, "t": 116.26} | |
| 19 | +{"step": 1300, "loss": -0.11031846702098846, "gain": 0.0005297428579069674, "harm": 0.4200277030467987, "nll": -3.208620548248291, "t": 120.53} | |
| 20 | +{"step": 1400, "loss": -0.08227270841598511, "gain": 0.0012564704520627856, "harm": 0.41779661178588867, "nll": -2.9242746829986572, "t": 128.5} | |
| 21 | +{"step": 1499, "calib_huber": 0.0011141103800169725, "calib_sign_acc": 0.5541313716748403, "calib_harm_brier": 0.14586461934988063, "calib_harm_ece": 0.04005922004580498, "calib_n_labels": 26916, "calib_oracle_opportunity_per_state": 0.023318092004144083, "calib_regret_per_state": 0.011563696035135844, "calib_captured_fraction": 0.5040890981525956, "calib_top1_match": 0.0668693009118541, "calib_n_audit_states": 1645, "t": 139.64} | |
| 22 | +{"step": 1500, "loss": -0.11083218455314636, "gain": 0.0005095681408420205, "harm": 0.46461519598960876, "nll": -3.436493396759033, "t": 139.74} | |
| 23 | +{"step": 1600, "loss": -0.06091587245464325, "gain": 0.0010667721508070827, "harm": 0.4672386944293976, "nll": -2.956019878387451, "t": 147.54} | |
| 24 | +{"step": 1700, "loss": -0.08807265758514404, "gain": 0.0010536278132349253, "harm": 0.44384080171585083, "nll": -3.110466718673706, "t": 155.32} | |
| 25 | +{"step": 1749, "calib_huber": 0.0010563022508134387, "calib_sign_acc": 0.4426363501263189, "calib_harm_brier": 0.141879980127247, "calib_harm_ece": 0.02590574137866497, "calib_n_labels": 26916, "calib_oracle_opportunity_per_state": 0.023318092004144083, "calib_regret_per_state": 0.01162012717644132, "calib_captured_fraction": 0.5016690398864454, "calib_top1_match": 0.06322188449848025, "calib_n_audit_states": 1645, "t": 161.98} | |
| 26 | +{"step": 1800, "loss": -0.1428903043270111, "gain": 0.0009566989610902965, "harm": 0.3898843228816986, "nll": -3.3878915309906006, "t": 166.42} | |
| 27 | +{"step": 1900, "loss": -0.10342848300933838, "gain": 0.0008749199332669377, "harm": 0.5072088241577148, "nll": -3.579077959060669, "t": 174.07} | |
| 28 | +{"step": 1999, "loss": -0.0823371410369873, "gain": 0.0009618307230994105, "harm": 0.4634293019771576, "nll": -3.1501359939575195, "t": 181.79} | |
| 29 | +{"step": 1999, "calib_huber": 0.0010995379567305744, "calib_sign_acc": 0.45567692079060784, "calib_harm_brier": 0.14569287350422597, "calib_harm_ece": 0.0276187714189291, "calib_n_labels": 26916, "calib_oracle_opportunity_per_state": 0.023318092004144083, "calib_regret_per_state": 0.011232054849526078, "calib_captured_fraction": 0.5183115819454731, "calib_top1_match": 0.06930091185410335, "calib_n_audit_states": 1645, "t": 184.54} | |
| 30 | +{"event": "restored_best_calibration_checkpoint", "step": 1250, "score": -0.011166786567780747, "t": 184.54} | |
added
experiments/runs/controller_v2s5_seed01_20261030004719/checkpoint/checkpoint.json
+49 −0
@@ -0,0 +1,49 @@ | ||
| 1 | +{ | |
| 2 | + "config": { | |
| 3 | + "name": "tiny_p4v2", | |
| 4 | + "vocab_size": 128, | |
| 5 | + "d_model": 256, | |
| 6 | + "n_layers": 6, | |
| 7 | + "n_heads": 8, | |
| 8 | + "n_kv_heads": 4, | |
| 9 | + "ffn_width": 768, | |
| 10 | + "max_seq_len": 320, | |
| 11 | + "rope_theta": 10000.0, | |
| 12 | + "norm_eps": 1e-05, | |
| 13 | + "tie_embeddings": true, | |
| 14 | + "init_std": 0.02, | |
| 15 | + "use_workspace": true, | |
| 16 | + "w": 64, | |
| 17 | + "ffn_w": 192, | |
| 18 | + "n_slots": 16, | |
| 19 | + "n_editor_blocks": 2, | |
| 20 | + "n_editor_heads": 2, | |
| 21 | + "r_max": 8, | |
| 22 | + "eta_max": 0.25, | |
| 23 | + "clip_c": 1.0, | |
| 24 | + "clip_eps": 1e-06, | |
| 25 | + "readout_zero_init": false, | |
| 26 | + "readout_init_std": 0.2, | |
| 27 | + "readout_scale": 39.13882827758789, | |
| 28 | + "controller_hidden": 0, | |
| 29 | + "ctrl_input": "h", | |
| 30 | + "ctrl_use_entropy": true, | |
| 31 | + "lambda_cost": 0.3, | |
| 32 | + "kappa_risk": 0.5, | |
| 33 | + "dense_writes": false | |
| 34 | + }, | |
| 35 | + "saved_at": "2026-10-30T00:50:54-0400", | |
| 36 | + "run_id": "controller_v2s5_seed01_20261030004719", | |
| 37 | + "parent": "experiments/runs/p4v2_prisme_seed05_20261030001839/checkpoint", | |
| 38 | + "selected": { | |
| 39 | + "lambda": 0.3, | |
| 40 | + "kappa": 0.5, | |
| 41 | + "loss": 0.48367020866059185, | |
| 42 | + "edits_per_token": 0.2568208778173191, | |
| 43 | + "extra_ops_ratio": 0.027824353634391955, | |
| 44 | + "loss_reduction": 0.0037358171999242185, | |
| 45 | + "reduction_per_ops": 0.13426429411487234 | |
| 46 | + }, | |
| 47 | + "locked": true, | |
| 48 | + "weights_sha256": "958788a3ebabeed125e43ca842c6e0c0a26b2eb9741f65b990ede4325bfbceb9" | |
| 49 | +} | |
| \ No newline at end of file | ||
added
experiments/runs/controller_v2s5_seed01_20261030004719/config.yaml
+67 −0
@@ -0,0 +1,67 @@ | ||
| 1 | +experiment: | |
| 2 | + name: controller_v2s5 | |
| 3 | + seed: 1 | |
| 4 | + mode: prisme | |
| 5 | + model: from_checkpoint | |
| 6 | + checkpoint: experiments/runs/p4v2_prisme_seed05_20261030001839/checkpoint | |
| 7 | + labels: | |
| 8 | + train: experiments/runs/labels_v2s5_seed01_20261030004544/labels_train.pt | |
| 9 | + calib: experiments/runs/labels_v2s5_seed01_20261030004544/labels_calib.pt | |
| 10 | + train: | |
| 11 | + steps: 2000 | |
| 12 | + lr: 0.001 | |
| 13 | + weight_decay: 0.01 | |
| 14 | + alpha: 1.0 | |
| 15 | + beta: 0.5 | |
| 16 | + gamma: 0.1 | |
| 17 | + huber_delta: 0.1 | |
| 18 | + log_every: 100 | |
| 19 | + eval_every: 250 | |
| 20 | + seq_len: 320 | |
| 21 | + lambda_grid: | |
| 22 | + - 0.0 | |
| 23 | + - 0.01 | |
| 24 | + - 0.03 | |
| 25 | + - 0.1 | |
| 26 | + - 0.3 | |
| 27 | + kappa_grid: | |
| 28 | + - 0.0 | |
| 29 | + - 0.5 | |
| 30 | + sweep_batches: 10 | |
| 31 | + max_budget: 8 | |
| 32 | + selection_rule: max_loss_reduction_per_ops | |
| 33 | + model_overrides: | |
| 34 | + ctrl_input: h | |
| 35 | + ctrl_use_entropy: true | |
| 36 | +model: | |
| 37 | + name: tiny_p4v2 | |
| 38 | + vocab_size: 128 | |
| 39 | + d_model: 256 | |
| 40 | + n_layers: 6 | |
| 41 | + n_heads: 8 | |
| 42 | + n_kv_heads: 4 | |
| 43 | + ffn_width: 768 | |
| 44 | + max_seq_len: 320 | |
| 45 | + rope_theta: 10000.0 | |
| 46 | + norm_eps: 1.0e-05 | |
| 47 | + tie_embeddings: true | |
| 48 | + init_std: 0.02 | |
| 49 | + use_workspace: true | |
| 50 | + w: 64 | |
| 51 | + ffn_w: 192 | |
| 52 | + n_slots: 16 | |
| 53 | + n_editor_blocks: 2 | |
| 54 | + n_editor_heads: 2 | |
| 55 | + r_max: 8 | |
| 56 | + eta_max: 0.25 | |
| 57 | + clip_c: 1.0 | |
| 58 | + clip_eps: 1.0e-06 | |
| 59 | + readout_zero_init: false | |
| 60 | + readout_init_std: 0.2 | |
| 61 | + readout_scale: 39.13882827758789 | |
| 62 | + controller_hidden: 0 | |
| 63 | + ctrl_input: h | |
| 64 | + ctrl_use_entropy: true | |
| 65 | + lambda_cost: 0.0 | |
| 66 | + kappa_risk: 0.0 | |
| 67 | + dense_writes: false | |
added
experiments/runs/controller_v2s5_seed01_20261030004719/manifest.json
+151 −0
@@ -0,0 +1,151 @@ | ||
| 1 | +{ | |
| 2 | + "run_id": "controller_v2s5_seed01_20261030004719", | |
| 3 | + "name": "controller_v2s5", | |
| 4 | + "seed": 1, | |
| 5 | + "code_commit": "unknown", | |
| 6 | + "config_sha256": "04f738198090a4de2d6b75ad91a1103ff5874eb3930ee4ddeb93d485c82d210e", | |
| 7 | + "started_at": "2026-10-30T00:47:19-0400", | |
| 8 | + "host": "simonpirresMBP2", | |
| 9 | + "python": "3.12.13", | |
| 10 | + "torch": "2.15.0", | |
| 11 | + "command": "/Users/simon-pierreboucher/wp31/prisme-slm/training/train_controller.py --config configs/experiments/controller_v2s5.yaml --device mps", | |
| 12 | + "state": "completed", | |
| 13 | + "wall_seconds": 214.63, | |
| 14 | + "device": "mps", | |
| 15 | + "checkpoint_parent": "experiments/runs/p4v2_prisme_seed05_20261030001839/checkpoint", | |
| 16 | + "labels_train": "experiments/runs/labels_v2s5_seed01_20261030004544/labels_train.pt", | |
| 17 | + "labels_calib": "experiments/runs/labels_v2s5_seed01_20261030004544/labels_calib.pt", | |
| 18 | + "finished_at": "2026-10-30T00:50:54-0400", | |
| 19 | + "eval_train": { | |
| 20 | + "huber": 0.0011708975357059353, | |
| 21 | + "sign_acc": 0.5854783514357983, | |
| 22 | + "harm_brier": 0.1559505601703296, | |
| 23 | + "harm_ece": 0.036413855850696564, | |
| 24 | + "n_labels": 26884, | |
| 25 | + "oracle_opportunity_per_state": 0.018150935190673526, | |
| 26 | + "regret_per_state": 0.01348762697415052, | |
| 27 | + "captured_fraction": 0.2569183442911057, | |
| 28 | + "top1_match": 0.13070283600493218, | |
| 29 | + "n_audit_states": 1622 | |
| 30 | + }, | |
| 31 | + "eval_calib": { | |
| 32 | + "huber": 0.0012304305638312443, | |
| 33 | + "sign_acc": 0.5724847674245802, | |
| 34 | + "harm_brier": 0.15660187138333365, | |
| 35 | + "harm_ece": 0.035052504390478134, | |
| 36 | + "n_labels": 26916, | |
| 37 | + "oracle_opportunity_per_state": 0.01748203463105083, | |
| 38 | + "regret_per_state": 0.012242587069247631, | |
| 39 | + "captured_fraction": 0.29970467810978474, | |
| 40 | + "top1_match": 0.12401215805471125, | |
| 41 | + "n_audit_states": 1645 | |
| 42 | + }, | |
| 43 | + "sweep": [ | |
| 44 | + { | |
| 45 | + "lambda": 0.0, | |
| 46 | + "kappa": 0.0, | |
| 47 | + "loss": 0.487720724809495, | |
| 48 | + "edits_per_token": 4.8795966785290625, | |
| 49 | + "extra_ops_ratio": 0.6287084242344468, | |
| 50 | + "loss_reduction": -0.0003146989489789531, | |
| 51 | + "reduction_per_ops": -0.0005005483255010452 | |
| 52 | + }, | |
| 53 | + { | |
| 54 | + "lambda": 0.0, | |
| 55 | + "kappa": 0.5, | |
| 56 | + "loss": 0.48171681215188966, | |
| 57 | + "edits_per_token": 2.2829181494661923, | |
| 58 | + "extra_ops_ratio": 0.28294448807287614, | |
| 59 | + "loss_reduction": 0.005689213708626406, | |
| 60 | + "reduction_per_ops": 0.020107172779280553 | |
| 61 | + }, | |
| 62 | + { | |
| 63 | + "lambda": 0.01, | |
| 64 | + "kappa": 0.0, | |
| 65 | + "loss": 0.48751331704932743, | |
| 66 | + "edits_per_token": 4.635231316725979, | |
| 67 | + "extra_ops_ratio": 0.5936513789890783, | |
| 68 | + "loss_reduction": -0.00010729118881136479, | |
| 69 | + "reduction_per_ops": -0.00018073096872792523 | |
| 70 | + }, | |
| 71 | + { | |
| 72 | + "lambda": 0.01, | |
| 73 | + "kappa": 0.5, | |
| 74 | + "loss": 0.4818692801261712, | |
| 75 | + "edits_per_token": 2.0604982206405693, | |
| 76 | + "extra_ops_ratio": 0.2531782197782578, | |
| 77 | + "loss_reduction": 0.005536745734344872, | |
| 78 | + "reduction_per_ops": 0.021868965423621926 | |
| 79 | + }, | |
| 80 | + { | |
| 81 | + "lambda": 0.03, | |
| 82 | + "kappa": 0.0, | |
| 83 | + "loss": 0.4871485858342543, | |
| 84 | + "edits_per_token": 4.19276393831554, | |
| 85 | + "extra_ops_ratio": 0.5301106680330433, | |
| 86 | + "loss_reduction": 0.0002574400262617682, | |
| 87 | + "reduction_per_ops": 0.0004856344944292297 | |
| 88 | + }, | |
| 89 | + { | |
| 90 | + "lambda": 0.03, | |
| 91 | + "kappa": 0.5, | |
| 92 | + "loss": 0.481783123627252, | |
| 93 | + "edits_per_token": 1.6470937129300118, | |
| 94 | + "extra_ops_ratio": 0.19815764874043132, | |
| 95 | + "loss_reduction": 0.00562290223326406, | |
| 96 | + "reduction_per_ops": 0.028375903070133598 | |
| 97 | + }, | |
| 98 | + { | |
| 99 | + "lambda": 0.1, | |
| 100 | + "kappa": 0.0, | |
| 101 | + "loss": 0.48400851076608026, | |
| 102 | + "edits_per_token": 2.6008303677342823, | |
| 103 | + "extra_ops_ratio": 0.3149032049756033, | |
| 104 | + "loss_reduction": 0.00339751509443581, | |
| 105 | + "reduction_per_ops": 0.010789077534790501 | |
| 106 | + }, | |
| 107 | + { | |
| 108 | + "lambda": 0.1, | |
| 109 | + "kappa": 0.5, | |
| 110 | + "loss": 0.48234007847832333, | |
| 111 | + "edits_per_token": 0.9513641755634639, | |
| 112 | + "extra_ops_ratio": 0.10998045705250008, | |
| 113 | + "loss_reduction": 0.005065947382192737, | |
| 114 | + "reduction_per_ops": 0.04606225067581293 | |
| 115 | + }, | |
| 116 | + { | |
| 117 | + "lambda": 0.3, | |
| 118 | + "kappa": 0.0, | |
| 119 | + "loss": 0.48033914758358703, | |
| 120 | + "edits_per_token": 0.8896797153024911, | |
| 121 | + "extra_ops_ratio": 0.10432906903123233, | |
| 122 | + "loss_reduction": 0.007066878276929034, | |
| 123 | + "reduction_per_ops": 0.06773642612313034 | |
| 124 | + }, | |
| 125 | + { | |
| 126 | + "lambda": 0.3, | |
| 127 | + "kappa": 0.5, | |
| 128 | + "loss": 0.48367020866059185, | |
| 129 | + "edits_per_token": 0.2568208778173191, | |
| 130 | + "extra_ops_ratio": 0.027824353634391955, | |
| 131 | + "loss_reduction": 0.0037358171999242185, | |
| 132 | + "reduction_per_ops": 0.13426429411487234 | |
| 133 | + } | |
| 134 | + ], | |
| 135 | + "baseline_budget0": { | |
| 136 | + "loss": 0.48740602586051607, | |
| 137 | + "edits_per_token": 0.0, | |
| 138 | + "extra_ops_ratio": 0.0 | |
| 139 | + }, | |
| 140 | + "selected": { | |
| 141 | + "lambda": 0.3, | |
| 142 | + "kappa": 0.5, | |
| 143 | + "loss": 0.48367020866059185, | |
| 144 | + "edits_per_token": 0.2568208778173191, | |
| 145 | + "extra_ops_ratio": 0.027824353634391955, | |
| 146 | + "loss_reduction": 0.0037358171999242185, | |
| 147 | + "reduction_per_ops": 0.13426429411487234 | |
| 148 | + }, | |
| 149 | + "checkpoint_sha256": "958788a3ebabeed125e43ca842c6e0c0a26b2eb9741f65b990ede4325bfbceb9", | |
| 150 | + "selection_rule": "max_loss_reduction_per_ops" | |
| 151 | +} | |
| \ No newline at end of file | ||
added
experiments/runs/controller_v2s5_seed01_20261030004719/metrics.jsonl
+30 −0
@@ -0,0 +1,30 @@ | ||
| 1 | +{"step": 0, "loss": 0.6009260416030884, "gain": 0.025353258475661278, "harm": 1.1652307510375977, "nll": -0.07042573392391205, "t": 1.47} | |
| 2 | +{"step": 100, "loss": 0.052918702363967896, "gain": 0.0025010141544044018, "harm": 0.5386670231819153, "nll": -2.1891582012176514, "t": 10.82} | |
| 3 | +{"step": 200, "loss": 0.0400976687669754, "gain": 0.002108088694512844, "harm": 0.5279691219329834, "nll": -2.2599499225616455, "t": 18.57} | |
| 4 | +{"step": 249, "calib_huber": 0.001786176477893711, "calib_sign_acc": 0.6061450438400952, "calib_harm_brier": 0.17967378715824667, "calib_harm_ece": 0.034954383969306946, "calib_n_labels": 26916, "calib_oracle_opportunity_per_state": 0.01748203463105083, "calib_regret_per_state": 0.013481558420013149, "calib_captured_fraction": 0.2288335594492078, "calib_top1_match": 0.2419452887537994, "calib_n_audit_states": 1645, "t": 25.57} | |
| 5 | +{"step": 300, "loss": -0.00807507336139679, "gain": 0.0019955975003540516, "harm": 0.47073397040367126, "nll": -2.454376459121704, "t": 29.46} | |
| 6 | +{"step": 400, "loss": 0.026988893747329712, "gain": 0.0029338584281504154, "harm": 0.48882630467414856, "nll": -2.2035810947418213, "t": 37.19} | |
| 7 | +{"step": 499, "calib_huber": 0.0017630479823499542, "calib_sign_acc": 0.35506761777381485, "calib_harm_brier": 0.1670329606556081, "calib_harm_ece": 0.028670895844697952, "calib_n_labels": 26916, "calib_oracle_opportunity_per_state": 0.01748203463105083, "calib_regret_per_state": 0.012952019378407023, "calib_captured_fraction": 0.2591240292247099, "calib_top1_match": 0.1641337386018237, "calib_n_audit_states": 1645, "t": 47.46} | |
| 8 | +{"step": 500, "loss": -0.014808416366577148, "gain": 0.0016823651967570186, "harm": 0.44348418712615967, "nll": -2.382328748703003, "t": 47.51} | |
| 9 | +{"step": 600, "loss": -0.029391378164291382, "gain": 0.001406138646416366, "harm": 0.4671512246131897, "nll": -2.643731117248535, "t": 54.78} | |
| 10 | +{"step": 700, "loss": -0.015222936868667603, "gain": 0.002538476837798953, "harm": 0.49512016773223877, "nll": -2.653214931488037, "t": 62.4} | |
| 11 | +{"step": 749, "calib_huber": 0.0015491647973849313, "calib_sign_acc": 0.4713181750631595, "calib_harm_brier": 0.1611957550048828, "calib_harm_ece": 0.024784980341792107, "calib_n_labels": 26916, "calib_oracle_opportunity_per_state": 0.01748203463105083, "calib_regret_per_state": 0.012397703646164172, "calib_captured_fraction": 0.29083176484824536, "calib_top1_match": 0.1884498480243161, "calib_n_audit_states": 1645, "t": 69.19} | |
| 12 | +{"step": 800, "loss": 0.010756880044937134, "gain": 0.0014659083681181073, "harm": 0.51109778881073, "nll": -2.4625792503356934, "t": 73.05} | |
| 13 | +{"step": 900, "loss": -0.056453630328178406, "gain": 0.00099285994656384, "harm": 0.45843425393104553, "nll": -2.866636037826538, "t": 80.96} | |
| 14 | +{"step": 999, "calib_huber": 0.0012512370193318177, "calib_sign_acc": 0.6000148610491901, "calib_harm_brier": 0.15350908105662858, "calib_harm_ece": 0.023563070222735405, "calib_n_labels": 26916, "calib_oracle_opportunity_per_state": 0.01748203463105083, "calib_regret_per_state": 0.012571540284664073, "calib_captured_fraction": 0.28088803448912913, "calib_top1_match": 0.1574468085106383, "calib_n_audit_states": 1645, "t": 91.8} | |
| 15 | +{"step": 1000, "loss": -0.0725633054971695, "gain": 0.0009630027925595641, "harm": 0.45913979411125183, "nll": -3.0309619903564453, "t": 91.91} | |
| 16 | +{"step": 1100, "loss": -0.040834128856658936, "gain": 0.002096452284604311, "harm": 0.4717967212200165, "nll": -2.7882893085479736, "t": 100.07} | |
| 17 | +{"step": 1200, "loss": -0.03172867000102997, "gain": 0.0011572788935154676, "harm": 0.48979225754737854, "nll": -2.7778208255767822, "t": 108.23} | |
| 18 | +{"step": 1249, "calib_huber": 0.0012304305638312443, "calib_sign_acc": 0.5724847674245802, "calib_harm_brier": 0.15660187138333365, "calib_harm_ece": 0.035052504390478134, "calib_n_labels": 26916, "calib_oracle_opportunity_per_state": 0.01748203463105083, "calib_regret_per_state": 0.012242587069247631, "calib_captured_fraction": 0.29970467810978474, "calib_top1_match": 0.12401215805471125, "calib_n_audit_states": 1645, "t": 115.16} | |
| 19 | +{"step": 1300, "loss": -0.06661693751811981, "gain": 0.0013761329464614391, "harm": 0.44009917974472046, "nll": -2.8804266452789307, "t": 119.1} | |
| 20 | +{"step": 1400, "loss": -0.0755835771560669, "gain": 0.001288717263378203, "harm": 0.44805818796157837, "nll": -3.0090136528015137, "t": 127.07} | |
| 21 | +{"step": 1499, "calib_huber": 0.0012288513208750117, "calib_sign_acc": 0.3700401248328132, "calib_harm_brier": 0.15635650029312112, "calib_harm_ece": 0.048394825309515, "calib_n_labels": 26916, "calib_oracle_opportunity_per_state": 0.01748203463105083, "calib_regret_per_state": 0.012370924094527688, "calib_captured_fraction": 0.29236359750969765, "calib_top1_match": 0.12340425531914893, "calib_n_audit_states": 1645, "t": 136.64} | |
| 22 | +{"step": 1500, "loss": -0.07361167669296265, "gain": 0.002028031274676323, "harm": 0.4226808249950409, "nll": -2.8698012828826904, "t": 136.7} | |
| 23 | +{"step": 1600, "loss": -0.10407041013240814, "gain": 0.0010646757436916232, "harm": 0.40758389234542847, "nll": -3.0892701148986816, "t": 145.17} | |
| 24 | +{"step": 1700, "loss": -0.11090679466724396, "gain": 0.0011634068796411157, "harm": 0.38715100288391113, "nll": -3.056457042694092, "t": 153.32} | |
| 25 | +{"step": 1749, "calib_huber": 0.0011720137856374756, "calib_sign_acc": 0.4157378510922871, "calib_harm_brier": 0.1486822443777995, "calib_harm_ece": 0.02741112746298313, "calib_n_labels": 26916, "calib_oracle_opportunity_per_state": 0.01748203463105083, "calib_regret_per_state": 0.012749458083990497, "calib_captured_fraction": 0.2707108552830879, "calib_top1_match": 0.12036474164133738, "calib_n_audit_states": 1645, "t": 159.93} | |
| 26 | +{"step": 1800, "loss": -0.08084483444690704, "gain": 0.0019545548129826784, "harm": 0.4462049901485443, "nll": -3.059018850326538, "t": 163.84} | |
| 27 | +{"step": 1900, "loss": -0.10664400458335876, "gain": 0.0009064441546797752, "harm": 0.44814813137054443, "nll": -3.3162450790405273, "t": 171.89} | |
| 28 | +{"step": 1999, "loss": -0.1065276712179184, "gain": 0.0009493434336036444, "harm": 0.4388728737831116, "nll": -3.269134521484375, "t": 180.2} | |
| 29 | +{"step": 1999, "calib_huber": 0.0011068101828954676, "calib_sign_acc": 0.7025189478377173, "calib_harm_brier": 0.15148265224665974, "calib_harm_ece": 0.03780340030789375, "calib_n_labels": 26916, "calib_oracle_opportunity_per_state": 0.01748203463105083, "calib_regret_per_state": 0.013182831970029327, "calib_captured_fraction": 0.24592118433316945, "calib_top1_match": 0.2066869300911854, "calib_n_audit_states": 1645, "t": 182.99} | |
| 30 | +{"event": "restored_best_calibration_checkpoint", "step": 1250, "score": -0.012242587069247631, "t": 183.0} | |
added
experiments/runs/labels_mini_seed01_20261030005150/config.yaml
+58 −0
@@ -0,0 +1,58 @@ | ||
| 1 | +experiment: | |
| 2 | + name: labels_mini | |
| 3 | + seed: 1 | |
| 4 | + mode: prisme | |
| 5 | + model: from_checkpoint | |
| 6 | + checkpoint: experiments/runs/mini_editor_seed01_20261030005118/checkpoint | |
| 7 | + use_policy: false | |
| 8 | + data: | |
| 9 | + kind: synthetic | |
| 10 | + tokenizer: char | |
| 11 | + splits_dir: data/splits/synthetic_v1 | |
| 12 | + loss_span: answer | |
| 13 | + collect: | |
| 14 | + batch_size: 16 | |
| 15 | + seq_len: 320 | |
| 16 | + max_prefix: 2 | |
| 17 | + audit_every: 2 | |
| 18 | + partitions: | |
| 19 | + train: | |
| 20 | + split: ctrl_train | |
| 21 | + n_batches: 12 | |
| 22 | + stream_seed: 11 | |
| 23 | + calib: | |
| 24 | + split: calib | |
| 25 | + n_batches: 4 | |
| 26 | + stream_seed: 12 | |
| 27 | +model: | |
| 28 | + name: mini | |
| 29 | + vocab_size: 128 | |
| 30 | + d_model: 96 | |
| 31 | + n_layers: 2 | |
| 32 | + n_heads: 4 | |
| 33 | + n_kv_heads: 2 | |
| 34 | + ffn_width: 256 | |
| 35 | + max_seq_len: 320 | |
| 36 | + rope_theta: 10000.0 | |
| 37 | + norm_eps: 1.0e-05 | |
| 38 | + tie_embeddings: true | |
| 39 | + init_std: 0.02 | |
| 40 | + use_workspace: true | |
| 41 | + w: 32 | |
| 42 | + ffn_w: 96 | |
| 43 | + n_slots: 16 | |
| 44 | + n_editor_blocks: 2 | |
| 45 | + n_editor_heads: 2 | |
| 46 | + r_max: 8 | |
| 47 | + eta_max: 0.25 | |
| 48 | + clip_c: 1.0 | |
| 49 | + clip_eps: 1.0e-06 | |
| 50 | + readout_zero_init: false | |
| 51 | + readout_init_std: 0.2 | |
| 52 | + readout_scale: 0.11967716366052628 | |
| 53 | + controller_hidden: 0 | |
| 54 | + ctrl_input: h | |
| 55 | + ctrl_use_entropy: true | |
| 56 | + lambda_cost: 0.0 | |
| 57 | + kappa_risk: 0.0 | |
| 58 | + dense_writes: false | |
added
experiments/runs/labels_mini_seed01_20261030005150/manifest.json
+40 −0
@@ -0,0 +1,40 @@ | ||
| 1 | +{ | |
| 2 | + "run_id": "labels_mini_seed01_20261030005150", | |
| 3 | + "name": "labels_mini", | |
| 4 | + "seed": 1, | |
| 5 | + "code_commit": "ede6705574e7140bdc16eff11931815070b471d1", | |
| 6 | + "config_sha256": "b9587d93828ab89aeb300076bf2c326ea5443f3caa6b19e75e1ba9e2cd29d884", | |
| 7 | + "started_at": "2026-10-30T00:51:50-0400", | |
| 8 | + "host": "MacBookPro-de-simon-pierre-2.local", | |
| 9 | + "python": "3.12.13", | |
| 10 | + "torch": "2.15.0", | |
| 11 | + "command": "/Users/simon-pierreboucher/Desktop/Recherche-UQO/ia/prisme-slm/training/collect_interventions.py --config configs/experiments/labels_mini.yaml --device cpu", | |
| 12 | + "state": "completed", | |
| 13 | + "wall_seconds": 3.44, | |
| 14 | + "device": "cpu", | |
| 15 | + "checkpoint_parent": "experiments/runs/mini_editor_seed01_20261030005118/checkpoint", | |
| 16 | + "checkpoint_sha256": "cd59f80c64ff29b3a0baf145c64778a34c9f6080457eded4e4f6cdda3649aeb2", | |
| 17 | + "finished_at": "2026-10-30T00:51:53-0400", | |
| 18 | + "partitions": { | |
| 19 | + "train": { | |
| 20 | + "file": "experiments/runs/labels_mini_seed01_20261030005150/labels_train.pt", | |
| 21 | + "n_states": 1047, | |
| 22 | + "n_labels": 4188, | |
| 23 | + "mean_gain": 0.031750522553920746, | |
| 24 | + "frac_positive": 0.5690066814422607, | |
| 25 | + "frac_harm": 0.43099331855773926, | |
| 26 | + "seconds": 2.5, | |
| 27 | + "n_audit_batches": 6 | |
| 28 | + }, | |
| 29 | + "calib": { | |
| 30 | + "file": "experiments/runs/labels_mini_seed01_20261030005150/labels_calib.pt", | |
| 31 | + "n_states": 289, | |
| 32 | + "n_labels": 1156, | |
| 33 | + "mean_gain": 0.19328418374061584, | |
| 34 | + "frac_positive": 0.6349480748176575, | |
| 35 | + "frac_harm": 0.36505189538002014, | |
| 36 | + "seconds": 0.8, | |
| 37 | + "n_audit_batches": 2 | |
| 38 | + } | |
| 39 | + } | |
| 40 | +} | |
| \ No newline at end of file | ||
added
experiments/runs/labels_mini_seed01_20261030005150/metrics.jsonl
+0 −0
added
experiments/runs/labels_v2s2_seed01_20261030004543/config.yaml
+58 −0
@@ -0,0 +1,58 @@ | ||
| 1 | +experiment: | |
| 2 | + name: labels_v2s2 | |
| 3 | + seed: 1 | |
| 4 | + mode: prisme | |
| 5 | + model: from_checkpoint | |
| 6 | + checkpoint: experiments/runs/p4v2_prisme_seed02_20261030001749/checkpoint | |
| 7 | + use_policy: false | |
| 8 | + data: | |
| 9 | + kind: synthetic | |
| 10 | + tokenizer: char | |
| 11 | + splits_dir: data/splits/synthetic_v1 | |
| 12 | + loss_span: answer | |
| 13 | + collect: | |
| 14 | + batch_size: 32 | |
| 15 | + seq_len: 320 | |
| 16 | + max_prefix: 3 | |
| 17 | + audit_every: 4 | |
| 18 | + partitions: | |
| 19 | + train: | |
| 20 | + split: ctrl_train | |
| 21 | + n_batches: 300 | |
| 22 | + stream_seed: 11 | |
| 23 | + calib: | |
| 24 | + split: calib | |
| 25 | + n_batches: 40 | |
| 26 | + stream_seed: 12 | |
| 27 | +model: | |
| 28 | + name: tiny_p4v2 | |
| 29 | + vocab_size: 128 | |
| 30 | + d_model: 256 | |
| 31 | + n_layers: 6 | |
| 32 | + n_heads: 8 | |
| 33 | + n_kv_heads: 4 | |
| 34 | + ffn_width: 768 | |
| 35 | + max_seq_len: 320 | |
| 36 | + rope_theta: 10000.0 | |
| 37 | + norm_eps: 1.0e-05 | |
| 38 | + tie_embeddings: true | |
| 39 | + init_std: 0.02 | |
| 40 | + use_workspace: true | |
| 41 | + w: 64 | |
| 42 | + ffn_w: 192 | |
| 43 | + n_slots: 16 | |
| 44 | + n_editor_blocks: 2 | |
| 45 | + n_editor_heads: 2 | |
| 46 | + r_max: 8 | |
| 47 | + eta_max: 0.25 | |
| 48 | + clip_c: 1.0 | |
| 49 | + clip_eps: 1.0e-06 | |
| 50 | + readout_zero_init: false | |
| 51 | + readout_init_std: 0.2 | |
| 52 | + readout_scale: 38.51451873779297 | |
| 53 | + controller_hidden: 0 | |
| 54 | + ctrl_input: z | |
| 55 | + ctrl_use_entropy: false | |
| 56 | + lambda_cost: 0.0 | |
| 57 | + kappa_risk: 0.0 | |
| 58 | + dense_writes: false | |
added
experiments/runs/labels_v2s2_seed01_20261030004543/manifest.json
+40 −0
@@ -0,0 +1,40 @@ | ||
| 1 | +{ | |
| 2 | + "run_id": "labels_v2s2_seed01_20261030004543", | |
| 3 | + "name": "labels_v2s2", | |
| 4 | + "seed": 1, | |
| 5 | + "code_commit": "unknown", | |
| 6 | + "config_sha256": "6a21697296bc29a1e0aadb5290c67d26ba03db6c47d75dd5dbb30ae5ab87de09", | |
| 7 | + "started_at": "2026-10-30T00:45:43-0400", | |
| 8 | + "host": "M4M64c", | |
| 9 | + "python": "3.12.14", | |
| 10 | + "torch": "2.15.0", | |
| 11 | + "command": "/Users/simon-pierreboucher/wp31/prisme-slm/training/collect_interventions.py --config configs/experiments/labels_v2s2.yaml --device mps", | |
| 12 | + "state": "completed", | |
| 13 | + "wall_seconds": 92.45, | |
| 14 | + "device": "mps", | |
| 15 | + "checkpoint_parent": "experiments/runs/p4v2_prisme_seed02_20261030001749/checkpoint", | |
| 16 | + "checkpoint_sha256": "1bf30758cec69e8b90d8883422f2d37540f7d714a0afe033a8da68747ef89cd4", | |
| 17 | + "finished_at": "2026-10-30T00:47:16-0400", | |
| 18 | + "partitions": { | |
| 19 | + "train": { | |
| 20 | + "file": "experiments/runs/labels_v2s2_seed01_20261030004543/labels_train.pt", | |
| 21 | + "n_states": 49965, | |
| 22 | + "n_labels": 199860, | |
| 23 | + "mean_gain": 0.00514591857790947, | |
| 24 | + "frac_positive": 0.294676274061203, | |
| 25 | + "frac_harm": 0.6189132332801819, | |
| 26 | + "seconds": 81.2, | |
| 27 | + "n_audit_batches": 75 | |
| 28 | + }, | |
| 29 | + "calib": { | |
| 30 | + "file": "experiments/runs/labels_v2s2_seed01_20261030004543/labels_calib.pt", | |
| 31 | + "n_states": 6729, | |
| 32 | + "n_labels": 26916, | |
| 33 | + "mean_gain": 0.005497753620147705, | |
| 34 | + "frac_positive": 0.3081066906452179, | |
| 35 | + "frac_harm": 0.6064794063568115, | |
| 36 | + "seconds": 11.1, | |
| 37 | + "n_audit_batches": 10 | |
| 38 | + } | |
| 39 | + } | |
| 40 | +} | |
| \ No newline at end of file | ||
added
experiments/runs/labels_v2s2_seed01_20261030004543/metrics.jsonl
+0 −0
added
experiments/runs/labels_v2s3_seed01_20261030004544/config.yaml
+58 −0
@@ -0,0 +1,58 @@ | ||
| 1 | +experiment: | |
| 2 | + name: labels_v2s3 | |
| 3 | + seed: 1 | |
| 4 | + mode: prisme | |
| 5 | + model: from_checkpoint | |
| 6 | + checkpoint: experiments/runs/p4v2_prisme_seed03_20261030001749/checkpoint | |
| 7 | + use_policy: false | |
| 8 | + data: | |
| 9 | + kind: synthetic | |
| 10 | + tokenizer: char | |
| 11 | + splits_dir: data/splits/synthetic_v1 | |
| 12 | + loss_span: answer | |
| 13 | + collect: | |
| 14 | + batch_size: 32 | |
| 15 | + seq_len: 320 | |
| 16 | + max_prefix: 3 | |
| 17 | + audit_every: 4 | |
| 18 | + partitions: | |
| 19 | + train: | |
| 20 | + split: ctrl_train | |
| 21 | + n_batches: 300 | |
| 22 | + stream_seed: 11 | |
| 23 | + calib: | |
| 24 | + split: calib | |
| 25 | + n_batches: 40 | |
| 26 | + stream_seed: 12 | |
| 27 | +model: | |
| 28 | + name: tiny_p4v2 | |
| 29 | + vocab_size: 128 | |
| 30 | + d_model: 256 | |
| 31 | + n_layers: 6 | |
| 32 | + n_heads: 8 | |
| 33 | + n_kv_heads: 4 | |
| 34 | + ffn_width: 768 | |
| 35 | + max_seq_len: 320 | |
| 36 | + rope_theta: 10000.0 | |
| 37 | + norm_eps: 1.0e-05 | |
| 38 | + tie_embeddings: true | |
| 39 | + init_std: 0.02 | |
| 40 | + use_workspace: true | |
| 41 | + w: 64 | |
| 42 | + ffn_w: 192 | |
| 43 | + n_slots: 16 | |
| 44 | + n_editor_blocks: 2 | |
| 45 | + n_editor_heads: 2 | |
| 46 | + r_max: 8 | |
| 47 | + eta_max: 0.25 | |
| 48 | + clip_c: 1.0 | |
| 49 | + clip_eps: 1.0e-06 | |
| 50 | + readout_zero_init: false | |
| 51 | + readout_init_std: 0.2 | |
| 52 | + readout_scale: 38.98434829711914 | |
| 53 | + controller_hidden: 0 | |
| 54 | + ctrl_input: z | |
| 55 | + ctrl_use_entropy: false | |
| 56 | + lambda_cost: 0.0 | |
| 57 | + kappa_risk: 0.0 | |
| 58 | + dense_writes: false | |
added
experiments/runs/labels_v2s3_seed01_20261030004544/manifest.json
+40 −0
@@ -0,0 +1,40 @@ | ||
| 1 | +{ | |
| 2 | + "run_id": "labels_v2s3_seed01_20261030004544", | |
| 3 | + "name": "labels_v2s3", | |
| 4 | + "seed": 1, | |
| 5 | + "code_commit": "unknown", | |
| 6 | + "config_sha256": "3c4aa7dc79bb27712d0740d0d0a88101b1d6233a44ecb69b0f9aca0f484ba83f", | |
| 7 | + "started_at": "2026-10-30T00:45:44-0400", | |
| 8 | + "host": "MacStudnpierre6", | |
| 9 | + "python": "3.12.13", | |
| 10 | + "torch": "2.15.0", | |
| 11 | + "command": "/Users/simon-pierreboucher/wp31/prisme-slm/training/collect_interventions.py --config configs/experiments/labels_v2s3.yaml --device mps", | |
| 12 | + "state": "completed", | |
| 13 | + "wall_seconds": 95.57, | |
| 14 | + "device": "mps", | |
| 15 | + "checkpoint_parent": "experiments/runs/p4v2_prisme_seed03_20261030001749/checkpoint", | |
| 16 | + "checkpoint_sha256": "a359b2a0ce1fd5fc872d7c87fcf343373e4a9151aa6652a8b4257dc82dc909d5", | |
| 17 | + "finished_at": "2026-10-30T00:47:19-0400", | |
| 18 | + "partitions": { | |
| 19 | + "train": { | |
| 20 | + "file": "experiments/runs/labels_v2s3_seed01_20261030004544/labels_train.pt", | |
| 21 | + "n_states": 49965, | |
| 22 | + "n_labels": 199860, | |
| 23 | + "mean_gain": 0.00484828744083643, | |
| 24 | + "frac_positive": 0.29701289534568787, | |
| 25 | + "frac_harm": 0.5792404413223267, | |
| 26 | + "seconds": 84.1, | |
| 27 | + "n_audit_batches": 75 | |
| 28 | + }, | |
| 29 | + "calib": { | |
| 30 | + "file": "experiments/runs/labels_v2s3_seed01_20261030004544/labels_calib.pt", | |
| 31 | + "n_states": 6729, | |
| 32 | + "n_labels": 26916, | |
| 33 | + "mean_gain": 0.005673468578606844, | |
| 34 | + "frac_positive": 0.3196611702442169, | |
| 35 | + "frac_harm": 0.5492643713951111, | |
| 36 | + "seconds": 11.4, | |
| 37 | + "n_audit_batches": 10 | |
| 38 | + } | |
| 39 | + } | |
| 40 | +} | |
| \ No newline at end of file | ||
added
experiments/runs/labels_v2s3_seed01_20261030004544/metrics.jsonl
+0 −0
added
experiments/runs/labels_v2s4_seed01_20261030004544/config.yaml
+58 −0
@@ -0,0 +1,58 @@ | ||
| 1 | +experiment: | |
| 2 | + name: labels_v2s4 | |
| 3 | + seed: 1 | |
| 4 | + mode: prisme | |
| 5 | + model: from_checkpoint | |
| 6 | + checkpoint: experiments/runs/p4v2_prisme_seed04_20261030001749/checkpoint | |
| 7 | + use_policy: false | |
| 8 | + data: | |
| 9 | + kind: synthetic | |
| 10 | + tokenizer: char | |
| 11 | + splits_dir: data/splits/synthetic_v1 | |
| 12 | + loss_span: answer | |
| 13 | + collect: | |
| 14 | + batch_size: 32 | |
| 15 | + seq_len: 320 | |
| 16 | + max_prefix: 3 | |
| 17 | + audit_every: 4 | |
| 18 | + partitions: | |
| 19 | + train: | |
| 20 | + split: ctrl_train | |
| 21 | + n_batches: 300 | |
| 22 | + stream_seed: 11 | |
| 23 | + calib: | |
| 24 | + split: calib | |
| 25 | + n_batches: 40 | |
| 26 | + stream_seed: 12 | |
| 27 | +model: | |
| 28 | + name: tiny_p4v2 | |
| 29 | + vocab_size: 128 | |
| 30 | + d_model: 256 | |
| 31 | + n_layers: 6 | |
| 32 | + n_heads: 8 | |
| 33 | + n_kv_heads: 4 | |
| 34 | + ffn_width: 768 | |
| 35 | + max_seq_len: 320 | |
| 36 | + rope_theta: 10000.0 | |
| 37 | + norm_eps: 1.0e-05 | |
| 38 | + tie_embeddings: true | |
| 39 | + init_std: 0.02 | |
| 40 | + use_workspace: true | |
| 41 | + w: 64 | |
| 42 | + ffn_w: 192 | |
| 43 | + n_slots: 16 | |
| 44 | + n_editor_blocks: 2 | |
| 45 | + n_editor_heads: 2 | |
| 46 | + r_max: 8 | |
| 47 | + eta_max: 0.25 | |
| 48 | + clip_c: 1.0 | |
| 49 | + clip_eps: 1.0e-06 | |
| 50 | + readout_zero_init: false | |
| 51 | + readout_init_std: 0.2 | |
| 52 | + readout_scale: 39.0492057800293 | |
| 53 | + controller_hidden: 0 | |
| 54 | + ctrl_input: z | |
| 55 | + ctrl_use_entropy: false | |
| 56 | + lambda_cost: 0.0 | |
| 57 | + kappa_risk: 0.0 | |
| 58 | + dense_writes: false | |
added
experiments/runs/labels_v2s4_seed01_20261030004544/manifest.json
+40 −0
@@ -0,0 +1,40 @@ | ||
| 1 | +{ | |
| 2 | + "run_id": "labels_v2s4_seed01_20261030004544", | |
| 3 | + "name": "labels_v2s4", | |
| 4 | + "seed": 1, | |
| 5 | + "code_commit": "unknown", | |
| 6 | + "config_sha256": "b6557feb819ee58db9f5b8c62d51c4ca63831687724cb1bae9c15bb064103682", | |
| 7 | + "started_at": "2026-10-30T00:45:44-0400", | |
| 8 | + "host": "M5M36", | |
| 9 | + "python": "3.12.14", | |
| 10 | + "torch": "2.15.0", | |
| 11 | + "command": "/Users/simon-pierreboucher/wp31/prisme-slm/training/collect_interventions.py --config configs/experiments/labels_v2s4.yaml --device mps", | |
| 12 | + "state": "completed", | |
| 13 | + "wall_seconds": 94.03, | |
| 14 | + "device": "mps", | |
| 15 | + "checkpoint_parent": "experiments/runs/p4v2_prisme_seed04_20261030001749/checkpoint", | |
| 16 | + "checkpoint_sha256": "65045ef16316b83087e70da42e8febdbff86fe691e7547db981b3b3e65988cba", | |
| 17 | + "finished_at": "2026-10-30T00:47:18-0400", | |
| 18 | + "partitions": { | |
| 19 | + "train": { | |
| 20 | + "file": "experiments/runs/labels_v2s4_seed01_20261030004544/labels_train.pt", | |
| 21 | + "n_states": 49965, | |
| 22 | + "n_labels": 199860, | |
| 23 | + "mean_gain": 0.004884881898760796, | |
| 24 | + "frac_positive": 0.33358851075172424, | |
| 25 | + "frac_harm": 0.4972881078720093, | |
| 26 | + "seconds": 83.1, | |
| 27 | + "n_audit_batches": 75 | |
| 28 | + }, | |
| 29 | + "calib": { | |
| 30 | + "file": "experiments/runs/labels_v2s4_seed01_20261030004544/labels_calib.pt", | |
| 31 | + "n_states": 6729, | |
| 32 | + "n_labels": 26916, | |
| 33 | + "mean_gain": 0.007247418165206909, | |
| 34 | + "frac_positive": 0.35662803053855896, | |
| 35 | + "frac_harm": 0.4809035658836365, | |
| 36 | + "seconds": 10.8, | |
| 37 | + "n_audit_batches": 10 | |
| 38 | + } | |
| 39 | + } | |
| 40 | +} | |
| \ No newline at end of file | ||
added
experiments/runs/labels_v2s4_seed01_20261030004544/metrics.jsonl
+0 −0
added
experiments/runs/labels_v2s5_seed01_20261030004544/config.yaml
+58 −0
@@ -0,0 +1,58 @@ | ||
| 1 | +experiment: | |
| 2 | + name: labels_v2s5 | |
| 3 | + seed: 1 | |
| 4 | + mode: prisme | |
| 5 | + model: from_checkpoint | |
| 6 | + checkpoint: experiments/runs/p4v2_prisme_seed05_20261030001839/checkpoint | |
| 7 | + use_policy: false | |
| 8 | + data: | |
| 9 | + kind: synthetic | |
| 10 | + tokenizer: char | |
| 11 | + splits_dir: data/splits/synthetic_v1 | |
| 12 | + loss_span: answer | |
| 13 | + collect: | |
| 14 | + batch_size: 32 | |
| 15 | + seq_len: 320 | |
| 16 | + max_prefix: 3 | |
| 17 | + audit_every: 4 | |
| 18 | + partitions: | |
| 19 | + train: | |
| 20 | + split: ctrl_train | |
| 21 | + n_batches: 300 | |
| 22 | + stream_seed: 11 | |
| 23 | + calib: | |
| 24 | + split: calib | |
| 25 | + n_batches: 40 | |
| 26 | + stream_seed: 12 | |
| 27 | +model: | |
| 28 | + name: tiny_p4v2 | |
| 29 | + vocab_size: 128 | |
| 30 | + d_model: 256 | |
| 31 | + n_layers: 6 | |
| 32 | + n_heads: 8 | |
| 33 | + n_kv_heads: 4 | |
| 34 | + ffn_width: 768 | |
| 35 | + max_seq_len: 320 | |
| 36 | + rope_theta: 10000.0 | |
| 37 | + norm_eps: 1.0e-05 | |
| 38 | + tie_embeddings: true | |
| 39 | + init_std: 0.02 | |
| 40 | + use_workspace: true | |
| 41 | + w: 64 | |
| 42 | + ffn_w: 192 | |
| 43 | + n_slots: 16 | |
| 44 | + n_editor_blocks: 2 | |
| 45 | + n_editor_heads: 2 | |
| 46 | + r_max: 8 | |
| 47 | + eta_max: 0.25 | |
| 48 | + clip_c: 1.0 | |
| 49 | + clip_eps: 1.0e-06 | |
| 50 | + readout_zero_init: false | |
| 51 | + readout_init_std: 0.2 | |
| 52 | + readout_scale: 39.13882827758789 | |
| 53 | + controller_hidden: 0 | |
| 54 | + ctrl_input: z | |
| 55 | + ctrl_use_entropy: false | |
| 56 | + lambda_cost: 0.0 | |
| 57 | + kappa_risk: 0.0 | |
| 58 | + dense_writes: false | |
added
experiments/runs/labels_v2s5_seed01_20261030004544/manifest.json
+40 −0
@@ -0,0 +1,40 @@ | ||
| 1 | +{ | |
| 2 | + "run_id": "labels_v2s5_seed01_20261030004544", | |
| 3 | + "name": "labels_v2s5", | |
| 4 | + "seed": 1, | |
| 5 | + "code_commit": "unknown", | |
| 6 | + "config_sha256": "93af5b8ca14be2272e711ad3fcb295fb9f459d31ac452a8c4c41cb4ea00ed0a7", | |
| 7 | + "started_at": "2026-10-30T00:45:44-0400", | |
| 8 | + "host": "simonpirresMBP2", | |
| 9 | + "python": "3.12.13", | |
| 10 | + "torch": "2.15.0", | |
| 11 | + "command": "/Users/simon-pierreboucher/wp31/prisme-slm/training/collect_interventions.py --config configs/experiments/labels_v2s5.yaml --device mps", | |
| 12 | + "state": "completed", | |
| 13 | + "wall_seconds": 94.68, | |
| 14 | + "device": "mps", | |
| 15 | + "checkpoint_parent": "experiments/runs/p4v2_prisme_seed05_20261030001839/checkpoint", | |
| 16 | + "checkpoint_sha256": "1a62de8a37bc40aa10e76c5a32052b4ad3638b4527a737a8b4d5c5d0460b44c2", | |
| 17 | + "finished_at": "2026-10-30T00:47:19-0400", | |
| 18 | + "partitions": { | |
| 19 | + "train": { | |
| 20 | + "file": "experiments/runs/labels_v2s5_seed01_20261030004544/labels_train.pt", | |
| 21 | + "n_states": 49965, | |
| 22 | + "n_labels": 199860, | |
| 23 | + "mean_gain": 0.005353890359401703, | |
| 24 | + "frac_positive": 0.30365756154060364, | |
| 25 | + "frac_harm": 0.5638096928596497, | |
| 26 | + "seconds": 83.3, | |
| 27 | + "n_audit_batches": 75 | |
| 28 | + }, | |
| 29 | + "calib": { | |
| 30 | + "file": "experiments/runs/labels_v2s5_seed01_20261030004544/labels_calib.pt", | |
| 31 | + "n_states": 6729, | |
| 32 | + "n_labels": 26916, | |
| 33 | + "mean_gain": 0.0057229893282055855, | |
| 34 | + "frac_positive": 0.31230494379997253, | |
| 35 | + "frac_harm": 0.5646827220916748, | |
| 36 | + "seconds": 11.3, | |
| 37 | + "n_audit_batches": 10 | |
| 38 | + } | |
| 39 | + } | |
| 40 | +} | |
| \ No newline at end of file | ||
added
experiments/runs/labels_v2s5_seed01_20261030004544/metrics.jsonl
+0 −0
added
experiments/runs/mini_backbone_seed01_20261030005114/checkpoint/checkpoint.json
+39 −0
@@ -0,0 +1,39 @@ | ||
| 1 | +{ | |
| 2 | + "config": { | |
| 3 | + "name": "mini", | |
| 4 | + "vocab_size": 128, | |
| 5 | + "d_model": 96, | |
| 6 | + "n_layers": 2, | |
| 7 | + "n_heads": 4, | |
| 8 | + "n_kv_heads": 2, | |
| 9 | + "ffn_width": 256, | |
| 10 | + "max_seq_len": 320, | |
| 11 | + "rope_theta": 10000.0, | |
| 12 | + "norm_eps": 1e-05, | |
| 13 | + "tie_embeddings": true, | |
| 14 | + "init_std": 0.02, | |
| 15 | + "use_workspace": false, | |
| 16 | + "w": 32, | |
| 17 | + "ffn_w": 96, | |
| 18 | + "n_slots": 16, | |
| 19 | + "n_editor_blocks": 2, | |
| 20 | + "n_editor_heads": 2, | |
| 21 | + "r_max": 8, | |
| 22 | + "eta_max": 0.25, | |
| 23 | + "clip_c": 1.0, | |
| 24 | + "clip_eps": 1e-06, | |
| 25 | + "readout_zero_init": false, | |
| 26 | + "readout_init_std": 0.2, | |
| 27 | + "readout_scale": 1.0, | |
| 28 | + "controller_hidden": 0, | |
| 29 | + "ctrl_input": "h", | |
| 30 | + "ctrl_use_entropy": true, | |
| 31 | + "lambda_cost": 0.0, | |
| 32 | + "kappa_risk": 0.0, | |
| 33 | + "dense_writes": false | |
| 34 | + }, | |
| 35 | + "saved_at": "2026-10-30T00:51:17-0400", | |
| 36 | + "step": 150, | |
| 37 | + "run_id": "mini_backbone_seed01_20261030005114", | |
| 38 | + "weights_sha256": "fff6ca1bd1170d08423861d53f6e4c270ed2c20a4359ccfe7b8eb78e091d694b" | |
| 39 | +} | |
| \ No newline at end of file | ||
added
experiments/runs/mini_backbone_seed01_20261030005114/config.yaml
+88 −0
@@ -0,0 +1,88 @@ | ||
| 1 | +experiment: | |
| 2 | + name: mini_backbone | |
| 3 | + seed: 1 | |
| 4 | + mode: backbone_only | |
| 5 | + model: | |
| 6 | + name: mini | |
| 7 | + vocab_size: 128 | |
| 8 | + d_model: 96 | |
| 9 | + n_layers: 2 | |
| 10 | + n_heads: 4 | |
| 11 | + n_kv_heads: 2 | |
| 12 | + ffn_width: 256 | |
| 13 | + max_seq_len: 320 | |
| 14 | + w: 32 | |
| 15 | + ffn_w: 96 | |
| 16 | + n_slots: 16 | |
| 17 | + n_editor_heads: 2 | |
| 18 | + r_max: 8 | |
| 19 | + readout_zero_init: false | |
| 20 | + readout_init_std: 0.2 | |
| 21 | + ctrl_input: h | |
| 22 | + ctrl_use_entropy: true | |
| 23 | + init: | |
| 24 | + freeze_backbone: false | |
| 25 | + data: | |
| 26 | + kind: synthetic | |
| 27 | + tokenizer: char | |
| 28 | + splits_dir: data/splits/synthetic_v1 | |
| 29 | + loss_span: all | |
| 30 | + eval_splits: | |
| 31 | + - dev_iid | |
| 32 | + train: | |
| 33 | + batch_size: 16 | |
| 34 | + seq_len: 320 | |
| 35 | + steps: 150 | |
| 36 | + lr: 0.001 | |
| 37 | + warmup: 10 | |
| 38 | + weight_decay: 0.1 | |
| 39 | + grad_clip: 1.0 | |
| 40 | + log_every: 50 | |
| 41 | + eval_every: 150 | |
| 42 | + eval_batches: 2 | |
| 43 | + ckpt_every: 150 | |
| 44 | + em_max_items: 32 | |
| 45 | +model: | |
| 46 | + name: mini | |
| 47 | + vocab_size: 128 | |
| 48 | + d_model: 96 | |
| 49 | + n_layers: 2 | |
| 50 | + n_heads: 4 | |
| 51 | + n_kv_heads: 2 | |
| 52 | + ffn_width: 256 | |
| 53 | + max_seq_len: 320 | |
| 54 | + rope_theta: 10000.0 | |
| 55 | + norm_eps: 1.0e-05 | |
| 56 | + tie_embeddings: true | |
| 57 | + init_std: 0.02 | |
| 58 | + use_workspace: false | |
| 59 | + w: 32 | |
| 60 | + ffn_w: 96 | |
| 61 | + n_slots: 16 | |
| 62 | + n_editor_blocks: 2 | |
| 63 | + n_editor_heads: 2 | |
| 64 | + r_max: 8 | |
| 65 | + eta_max: 0.25 | |
| 66 | + clip_c: 1.0 | |
| 67 | + clip_eps: 1.0e-06 | |
| 68 | + readout_zero_init: false | |
| 69 | + readout_init_std: 0.2 | |
| 70 | + readout_scale: 1.0 | |
| 71 | + controller_hidden: 0 | |
| 72 | + ctrl_input: h | |
| 73 | + ctrl_use_entropy: true | |
| 74 | + lambda_cost: 0.0 | |
| 75 | + kappa_risk: 0.0 | |
| 76 | + dense_writes: false | |
| 77 | +resolved_train: | |
| 78 | + batch_size: 16 | |
| 79 | + seq_len: 320 | |
| 80 | + steps: 150 | |
| 81 | + lr: 0.001 | |
| 82 | + warmup: 10 | |
| 83 | + weight_decay: 0.1 | |
| 84 | + grad_clip: 1.0 | |
| 85 | + log_every: 50 | |
| 86 | + eval_every: 150 | |
| 87 | + eval_batches: 2 | |
| 88 | + ckpt_every: 150 | |
added
experiments/runs/mini_backbone_seed01_20261030005114/em_dev_iid_b0.json
+1 −0
@@ -0,0 +1 @@ | ||
| 1 | +[{"uid": "9a904786ae771a51", "family": "bind", "template": 2, "depth": 1, "pred": "Answer: Ans", "truth": "44", "correct": false, "edits_per_token": 0.0}, {"uid": "f19b2d158a1b2321", "family": "arith", "template": 0, "depth": 1, "pred": "11111111111", "truth": "-2", "correct": false, "edits_per_token": 0.0}, {"uid": "48cf7992aeed57ad", "family": "bind", "template": 1, "depth": 1, "pred": "1, tenswer:", "truth": "26", "correct": false, "edits_per_token": 0.0}, {"uid": "18870a74d2eaa830", "family": "arith", "template": 1, "depth": 3, "pred": "11111111111", "truth": "210", "correct": false, "edits_per_token": 0.0}, {"uid": "f814b131252c7d64", "family": "fsm", "template": 2, "depth": 2, "pred": "Answer: Ans", "truth": "14", "correct": false, "edits_per_token": 0.0}, {"uid": "03c45fea1f8f04e3", "family": "arith", "template": 0, "depth": 3, "pred": "11111111111", "truth": "44", "correct": false, "edits_per_token": 0.0}, {"uid": "f025613adc1381e6", "family": "arith", "template": 0, "depth": 4, "pred": "11111111111", "truth": "67", "correct": false, "edits_per_token": 0.0}, {"uid": "b8d5ed26d645710e", "family": "bind", "template": 0, "depth": 2, "pred": "111, Answer", "truth": "16", "correct": false, "edits_per_token": 0.0}, {"uid": "cbc5614b2da64a6a", "family": "arith", "template": 1, "depth": 4, "pred": "11111111111", "truth": "-50", "correct": false, "edits_per_token": 0.0}, {"uid": "12ab692979396f5c", "family": "bind", "template": 2, "depth": 3, "pred": "11, = = = =", "truth": "36", "correct": false, "edits_per_token": 0.0}, {"uid": "c4d7459d76e0bccb", "family": "arith", "template": 2, "depth": 2, "pred": "11111111111", "truth": "24", "correct": false, "edits_per_token": 0.0}, {"uid": "0070225255190df8", "family": "bind", "template": 1, "depth": 3, "pred": "111, = = 1,", "truth": "-6", "correct": false, "edits_per_token": 0.0}, {"uid": "7e4a5eedc90f317e", "family": "arith", "template": 2, "depth": 4, "pred": "11111111111", "truth": "707", "correct": false, "edits_per_token": 0.0}, {"uid": "9377b954fbae3ecd", "family": "bind", "template": 2, "depth": 4, "pred": "11, = = = 1", "truth": "-4", "correct": false, "edits_per_token": 0.0}, {"uid": "d6bbe76ab7ae5dea", "family": "bind", "template": 0, "depth": 4, "pred": "1, = = = 1,", "truth": "2", "correct": false, "edits_per_token": 0.0}, {"uid": "b81b6a9bf582b351", "family": "fsm", "template": 1, "depth": 2, "pred": "11111111111", "truth": "5", "correct": false, "edits_per_token": 0.0}, {"uid": "46b570766ec22e2a", "family": "fsm", "template": 0, "depth": 3, "pred": "111111111,", "truth": "3", "correct": false, "edits_per_token": 0.0}, {"uid": "8716a204b9fa7afb", "family": "fsm", "template": 2, "depth": 4, "pred": "An ther: An", "truth": "-28", "correct": false, "edits_per_token": 0.0}, {"uid": "324c8cdae8f3169c", "family": "fsm", "template": 1, "depth": 4, "pred": "111, ter: A", "truth": "-6", "correct": false, "edits_per_token": 0.0}, {"uid": "a53b485a5b805471", "family": "excl", "template": 2, "depth": 1, "pred": "An (1111111", "truth": "plum fig yam kiwi", "correct": false, "edits_per_token": 0.0}, {"uid": "b92a8bb6a6b6c2fc", "family": "sched", "template": 2, "depth": 1, "pred": "Answer: Ans", "truth": "none", "correct": false, "edits_per_token": 0.0}, {"uid": "c9dda90c7d0ad8ed", "family": "sched", "template": 1, "depth": 2, "pred": "Answer: Ans", "truth": "A", "correct": false, "edits_per_token": 0.0}, {"uid": "8146db2f7a31cd89", "family": "excl", "template": 1, "depth": 1, "pred": "An t than t", "truth": "bean fig", "correct": false, "edits_per_token": 0.0}, {"uid": "dc7a2b700ef3eec3", "family": "sched", "template": 0, "depth": 2, "pred": "Answer: Ans", "truth": "none", "correct": false, "edits_per_token": 0.0}, {"uid": "1b7f8f05a6c5a7a3", "family": "excl", "template": 2, "depth": 2, "pred": "An thanswer", "truth": "plum apple", "correct": false, "edits_per_token": 0.0}, {"uid": "302f485c304f8e1c", "family": "excl", "template": 0, "depth": 4, "pred": "Answer: Ans", "truth": "none", "correct": false, "edits_per_token": 0.0}, {"uid": "9bc00d0671abd8ee", "family": "sched", "template": 2, "depth": 3, "pred": "Answer: Ans", "truth": "none", "correct": false, "edits_per_token": 0.0}, {"uid": "89a256c76069f616", "family": "excl", "template": 1, "depth": 3, "pred": "An t terere", "truth": "plum lime", "correct": false, "edits_per_token": 0.0}, {"uid": "ec0058c7de654adf", "family": "excl", "template": 0, "depth": 2, "pred": "Answer: Ans", "truth": "date", "correct": false, "edits_per_token": 0.0}, {"uid": "86c8be0ac076a890", "family": "excl", "template": 2, "depth": 4, "pred": "Answer: Ans", "truth": "none", "correct": false, "edits_per_token": 0.0}, {"uid": "3088630483a27717", "family": "sched", "template": 1, "depth": 3, "pred": "Answer: Ans", "truth": "C", "correct": false, "edits_per_token": 0.0}, {"uid": "ecc84ca69997e2f2", "family": "sched", "template": 0, "depth": 4, "pred": "Answer: Ans", "truth": "D", "correct": false, "edits_per_token": 0.0}] | |
| \ No newline at end of file | ||
added
experiments/runs/mini_backbone_seed01_20261030005114/manifest.json
+42 −0
@@ -0,0 +1,42 @@ | ||
| 1 | +{ | |
| 2 | + "run_id": "mini_backbone_seed01_20261030005114", | |
| 3 | + "name": "mini_backbone", | |
| 4 | + "seed": 1, | |
| 5 | + "code_commit": "ede6705574e7140bdc16eff11931815070b471d1", | |
| 6 | + "config_sha256": "0e8e51f08d94ef726dd36738b68101b90d7f73ed4e94a0b052106b0a6194c9df", | |
| 7 | + "started_at": "2026-10-30T00:51:14-0400", | |
| 8 | + "host": "MacBookPro-de-simon-pierre-2.local", | |
| 9 | + "python": "3.12.13", | |
| 10 | + "torch": "2.15.0", | |
| 11 | + "command": "/Users/simon-pierreboucher/Desktop/Recherche-UQO/ia/prisme-slm/training/train_editor.py --config configs/experiments/mini_backbone.yaml --device cpu --run-root experiments/runs", | |
| 12 | + "state": "completed", | |
| 13 | + "wall_seconds": 3.6, | |
| 14 | + "device": "cpu", | |
| 15 | + "backend": "cpu", | |
| 16 | + "precision": "fp32", | |
| 17 | + "n_params": 215520, | |
| 18 | + "n_trainable": 215520, | |
| 19 | + "checkpoint_parent": null, | |
| 20 | + "mode": "backbone_only", | |
| 21 | + "freeze_backbone": false, | |
| 22 | + "finished_at": "2026-10-30T00:51:17-0400", | |
| 23 | + "train_tokens": 279708, | |
| 24 | + "peak_memory_bytes": 674185216, | |
| 25 | + "final_exact_match": { | |
| 26 | + "dev_iid": { | |
| 27 | + "0": { | |
| 28 | + "accuracy": 0.0, | |
| 29 | + "n": 32, | |
| 30 | + "by_family": { | |
| 31 | + "bind": 0.0, | |
| 32 | + "arith": 0.0, | |
| 33 | + "fsm": 0.0, | |
| 34 | + "excl": 0.0, | |
| 35 | + "sched": 0.0 | |
| 36 | + }, | |
| 37 | + "edits_per_token": 0.0 | |
| 38 | + } | |
| 39 | + } | |
| 40 | + }, | |
| 41 | + "metrics_file": "experiments/runs/mini_backbone_seed01_20261030005114/metrics.jsonl" | |
| 42 | +} | |
| \ No newline at end of file | ||
added
experiments/runs/mini_backbone_seed01_20261030005114/metrics.jsonl
+6 −0
@@ -0,0 +1,6 @@ | ||
| 1 | +{"step": 0, "loss": 4.882978916168213, "lr": 0.0001, "grad_norm": 2.631913661956787, "tokens": 1708, "tok_per_s": 12605.103772273553, "t": 0.71} | |
| 2 | +{"step": 50, "loss": 2.508582353591919, "lr": 0.0008305704108364302, "grad_norm": 0.9815729856491089, "tokens": 94447, "tok_per_s": 88797.80277866195, "t": 1.64} | |
| 3 | +{"step": 100, "loss": 1.909483790397644, "lr": 0.0003547523173970989, "grad_norm": 1.143792748451233, "tokens": 187214, "tok_per_s": 95544.55275035149, "t": 2.54} | |
| 4 | +{"step": 149, "loss": 1.5540279150009155, "lr": 0.00010011329427587207, "grad_norm": 1.4631657600402832, "tokens": 279708, "tok_per_s": 96143.08211684186, "t": 3.49} | |
| 5 | +{"step": 149, "val_loss_b0": 1.6609648618492778, "t": 3.5} | |
| 6 | +{"step": 149, "checkpoint_sha256": "fff6ca1bd1170d08423861d53f6e4c270ed2c20a4359ccfe7b8eb78e091d694b", "t": 3.51} | |
added
experiments/runs/mini_editor_seed01_20261030005118/checkpoint/checkpoint.json
+39 −0
@@ -0,0 +1,39 @@ | ||
| 1 | +{ | |
| 2 | + "config": { | |
| 3 | + "name": "mini", | |
| 4 | + "vocab_size": 128, | |
| 5 | + "d_model": 96, | |
| 6 | + "n_layers": 2, | |
| 7 | + "n_heads": 4, | |
| 8 | + "n_kv_heads": 2, | |
| 9 | + "ffn_width": 256, | |
| 10 | + "max_seq_len": 320, | |
| 11 | + "rope_theta": 10000.0, | |
| 12 | + "norm_eps": 1e-05, | |
| 13 | + "tie_embeddings": true, | |
| 14 | + "init_std": 0.02, | |
| 15 | + "use_workspace": true, | |
| 16 | + "w": 32, | |
| 17 | + "ffn_w": 96, | |
| 18 | + "n_slots": 16, | |
| 19 | + "n_editor_blocks": 2, | |
| 20 | + "n_editor_heads": 2, | |
| 21 | + "r_max": 8, | |
| 22 | + "eta_max": 0.25, | |
| 23 | + "clip_c": 1.0, | |
| 24 | + "clip_eps": 1e-06, | |
| 25 | + "readout_zero_init": false, | |
| 26 | + "readout_init_std": 0.2, | |
| 27 | + "readout_scale": 0.11967716366052628, | |
| 28 | + "controller_hidden": 0, | |
| 29 | + "ctrl_input": "h", | |
| 30 | + "ctrl_use_entropy": true, | |
| 31 | + "lambda_cost": 0.0, | |
| 32 | + "kappa_risk": 0.0, | |
| 33 | + "dense_writes": false | |
| 34 | + }, | |
| 35 | + "saved_at": "2026-10-30T00:51:48-0400", | |
| 36 | + "step": 120, | |
| 37 | + "run_id": "mini_editor_seed01_20261030005118", | |
| 38 | + "weights_sha256": "cd59f80c64ff29b3a0baf145c64778a34c9f6080457eded4e4f6cdda3649aeb2" | |
| 39 | +} | |
| \ No newline at end of file | ||
added
experiments/runs/mini_editor_seed01_20261030005118/config.yaml
+106 −0
@@ -0,0 +1,106 @@ | ||
| 1 | +experiment: | |
| 2 | + name: mini_editor | |
| 3 | + seed: 1 | |
| 4 | + mode: prisme | |
| 5 | + model: | |
| 6 | + name: mini | |
| 7 | + vocab_size: 128 | |
| 8 | + d_model: 96 | |
| 9 | + n_layers: 2 | |
| 10 | + n_heads: 4 | |
| 11 | + n_kv_heads: 2 | |
| 12 | + ffn_width: 256 | |
| 13 | + max_seq_len: 320 | |
| 14 | + w: 32 | |
| 15 | + ffn_w: 96 | |
| 16 | + n_slots: 16 | |
| 17 | + n_editor_heads: 2 | |
| 18 | + r_max: 8 | |
| 19 | + readout_zero_init: false | |
| 20 | + readout_init_std: 0.2 | |
| 21 | + ctrl_input: h | |
| 22 | + ctrl_use_entropy: true | |
| 23 | + init: | |
| 24 | + backbone_checkpoint: experiments/runs/mini_backbone_seed01_20261030005114/checkpoint | |
| 25 | + freeze_backbone: true | |
| 26 | + auto_readout_scale: true | |
| 27 | + data: | |
| 28 | + kind: synthetic | |
| 29 | + tokenizer: char | |
| 30 | + splits_dir: data/splits/synthetic_v1 | |
| 31 | + loss_span: answer | |
| 32 | + eval_splits: | |
| 33 | + - dev_iid | |
| 34 | + train: | |
| 35 | + batch_size: 16 | |
| 36 | + seq_len: 320 | |
| 37 | + steps: 120 | |
| 38 | + lr: 0.001 | |
| 39 | + warmup: 10 | |
| 40 | + weight_decay: 0.1 | |
| 41 | + grad_clip: 1.0 | |
| 42 | + log_every: 50 | |
| 43 | + eval_every: 120 | |
| 44 | + eval_batches: 2 | |
| 45 | + ckpt_every: 120 | |
| 46 | + em_max_items: 32 | |
| 47 | + budgets: | |
| 48 | + - 0 | |
| 49 | + - 1 | |
| 50 | + - 2 | |
| 51 | + - 4 | |
| 52 | + - 8 | |
| 53 | + budget_probs: | |
| 54 | + - 0.2 | |
| 55 | + - 0.2 | |
| 56 | + - 0.2 | |
| 57 | + - 0.2 | |
| 58 | + - 0.2 | |
| 59 | + budget_per: position | |
| 60 | + em_budgets: | |
| 61 | + - 0 | |
| 62 | + - 2 | |
| 63 | +model: | |
| 64 | + name: mini | |
| 65 | + vocab_size: 128 | |
| 66 | + d_model: 96 | |
| 67 | + n_layers: 2 | |
| 68 | + n_heads: 4 | |
| 69 | + n_kv_heads: 2 | |
| 70 | + ffn_width: 256 | |
| 71 | + max_seq_len: 320 | |
| 72 | + rope_theta: 10000.0 | |
| 73 | + norm_eps: 1.0e-05 | |
| 74 | + tie_embeddings: true | |
| 75 | + init_std: 0.02 | |
| 76 | + use_workspace: true | |
| 77 | + w: 32 | |
| 78 | + ffn_w: 96 | |
| 79 | + n_slots: 16 | |
| 80 | + n_editor_blocks: 2 | |
| 81 | + n_editor_heads: 2 | |
| 82 | + r_max: 8 | |
| 83 | + eta_max: 0.25 | |
| 84 | + clip_c: 1.0 | |
| 85 | + clip_eps: 1.0e-06 | |
| 86 | + readout_zero_init: false | |
| 87 | + readout_init_std: 0.2 | |
| 88 | + readout_scale: 1.0 | |
| 89 | + controller_hidden: 0 | |
| 90 | + ctrl_input: h | |
| 91 | + ctrl_use_entropy: true | |
| 92 | + lambda_cost: 0.0 | |
| 93 | + kappa_risk: 0.0 | |
| 94 | + dense_writes: false | |
| 95 | +resolved_train: | |
| 96 | + batch_size: 16 | |
| 97 | + seq_len: 320 | |
| 98 | + steps: 120 | |
| 99 | + lr: 0.001 | |
| 100 | + warmup: 10 | |
| 101 | + weight_decay: 0.1 | |
| 102 | + grad_clip: 1.0 | |
| 103 | + log_every: 50 | |
| 104 | + eval_every: 120 | |
| 105 | + eval_batches: 2 | |
| 106 | + ckpt_every: 120 | |
added
experiments/runs/mini_editor_seed01_20261030005118/em_dev_iid_b0.json
+1 −0
@@ -0,0 +1 @@ | ||
| 1 | +[{"uid": "9a904786ae771a51", "family": "bind", "template": 2, "depth": 1, "pred": "Answer: Ans", "truth": "44", "correct": false, "edits_per_token": 0.0}, {"uid": "f19b2d158a1b2321", "family": "arith", "template": 0, "depth": 1, "pred": "11111111111", "truth": "-2", "correct": false, "edits_per_token": 0.0}, {"uid": "48cf7992aeed57ad", "family": "bind", "template": 1, "depth": 1, "pred": "1, tenswer:", "truth": "26", "correct": false, "edits_per_token": 0.0}, {"uid": "18870a74d2eaa830", "family": "arith", "template": 1, "depth": 3, "pred": "11111111111", "truth": "210", "correct": false, "edits_per_token": 0.0}, {"uid": "f814b131252c7d64", "family": "fsm", "template": 2, "depth": 2, "pred": "Answer: Ans", "truth": "14", "correct": false, "edits_per_token": 0.0}, {"uid": "03c45fea1f8f04e3", "family": "arith", "template": 0, "depth": 3, "pred": "11111111111", "truth": "44", "correct": false, "edits_per_token": 0.0}, {"uid": "f025613adc1381e6", "family": "arith", "template": 0, "depth": 4, "pred": "11111111111", "truth": "67", "correct": false, "edits_per_token": 0.0}, {"uid": "b8d5ed26d645710e", "family": "bind", "template": 0, "depth": 2, "pred": "111, Answer", "truth": "16", "correct": false, "edits_per_token": 0.0}, {"uid": "cbc5614b2da64a6a", "family": "arith", "template": 1, "depth": 4, "pred": "11111111111", "truth": "-50", "correct": false, "edits_per_token": 0.0}, {"uid": "12ab692979396f5c", "family": "bind", "template": 2, "depth": 3, "pred": "11, = = = =", "truth": "36", "correct": false, "edits_per_token": 0.0}, {"uid": "c4d7459d76e0bccb", "family": "arith", "template": 2, "depth": 2, "pred": "11111111111", "truth": "24", "correct": false, "edits_per_token": 0.0}, {"uid": "0070225255190df8", "family": "bind", "template": 1, "depth": 3, "pred": "111, = = 1,", "truth": "-6", "correct": false, "edits_per_token": 0.0}, {"uid": "7e4a5eedc90f317e", "family": "arith", "template": 2, "depth": 4, "pred": "11111111111", "truth": "707", "correct": false, "edits_per_token": 0.0}, {"uid": "9377b954fbae3ecd", "family": "bind", "template": 2, "depth": 4, "pred": "11, = = = 1", "truth": "-4", "correct": false, "edits_per_token": 0.0}, {"uid": "d6bbe76ab7ae5dea", "family": "bind", "template": 0, "depth": 4, "pred": "1, = = = 1,", "truth": "2", "correct": false, "edits_per_token": 0.0}, {"uid": "b81b6a9bf582b351", "family": "fsm", "template": 1, "depth": 2, "pred": "11111111111", "truth": "5", "correct": false, "edits_per_token": 0.0}, {"uid": "46b570766ec22e2a", "family": "fsm", "template": 0, "depth": 3, "pred": "111111111,", "truth": "3", "correct": false, "edits_per_token": 0.0}, {"uid": "8716a204b9fa7afb", "family": "fsm", "template": 2, "depth": 4, "pred": "An ther: An", "truth": "-28", "correct": false, "edits_per_token": 0.0}, {"uid": "324c8cdae8f3169c", "family": "fsm", "template": 1, "depth": 4, "pred": "111, ter: A", "truth": "-6", "correct": false, "edits_per_token": 0.0}, {"uid": "a53b485a5b805471", "family": "excl", "template": 2, "depth": 1, "pred": "An (1111111", "truth": "plum fig yam kiwi", "correct": false, "edits_per_token": 0.0}, {"uid": "b92a8bb6a6b6c2fc", "family": "sched", "template": 2, "depth": 1, "pred": "Answer: Ans", "truth": "none", "correct": false, "edits_per_token": 0.0}, {"uid": "c9dda90c7d0ad8ed", "family": "sched", "template": 1, "depth": 2, "pred": "Answer: Ans", "truth": "A", "correct": false, "edits_per_token": 0.0}, {"uid": "8146db2f7a31cd89", "family": "excl", "template": 1, "depth": 1, "pred": "An t than t", "truth": "bean fig", "correct": false, "edits_per_token": 0.0}, {"uid": "dc7a2b700ef3eec3", "family": "sched", "template": 0, "depth": 2, "pred": "Answer: Ans", "truth": "none", "correct": false, "edits_per_token": 0.0}, {"uid": "1b7f8f05a6c5a7a3", "family": "excl", "template": 2, "depth": 2, "pred": "An thanswer", "truth": "plum apple", "correct": false, "edits_per_token": 0.0}, {"uid": "302f485c304f8e1c", "family": "excl", "template": 0, "depth": 4, "pred": "Answer: Ans", "truth": "none", "correct": false, "edits_per_token": 0.0}, {"uid": "9bc00d0671abd8ee", "family": "sched", "template": 2, "depth": 3, "pred": "Answer: Ans", "truth": "none", "correct": false, "edits_per_token": 0.0}, {"uid": "89a256c76069f616", "family": "excl", "template": 1, "depth": 3, "pred": "An t terere", "truth": "plum lime", "correct": false, "edits_per_token": 0.0}, {"uid": "ec0058c7de654adf", "family": "excl", "template": 0, "depth": 2, "pred": "Answer: Ans", "truth": "date", "correct": false, "edits_per_token": 0.0}, {"uid": "86c8be0ac076a890", "family": "excl", "template": 2, "depth": 4, "pred": "Answer: Ans", "truth": "none", "correct": false, "edits_per_token": 0.0}, {"uid": "3088630483a27717", "family": "sched", "template": 1, "depth": 3, "pred": "Answer: Ans", "truth": "C", "correct": false, "edits_per_token": 0.0}, {"uid": "ecc84ca69997e2f2", "family": "sched", "template": 0, "depth": 4, "pred": "Answer: Ans", "truth": "D", "correct": false, "edits_per_token": 0.0}] | |
| \ No newline at end of file | ||
added
experiments/runs/mini_editor_seed01_20261030005118/em_dev_iid_b2.json
+1 −0
@@ -0,0 +1 @@ | ||
| 1 | +[{"uid": "9a904786ae771a51", "family": "bind", "template": 2, "depth": 1, "pred": "Answer: Ans", "truth": "44", "correct": false, "edits_per_token": 2.0}, {"uid": "f19b2d158a1b2321", "family": "arith", "template": 0, "depth": 1, "pred": "111111111", "truth": "-2", "correct": false, "edits_per_token": 2.0}, {"uid": "48cf7992aeed57ad", "family": "bind", "template": 1, "depth": 1, "pred": "1111111, re", "truth": "26", "correct": false, "edits_per_token": 2.0}, {"uid": "18870a74d2eaa830", "family": "arith", "template": 1, "depth": 3, "pred": "111111110", "truth": "210", "correct": false, "edits_per_token": 2.0}, {"uid": "f814b131252c7d64", "family": "fsm", "template": 2, "depth": 2, "pred": "An that 111", "truth": "14", "correct": false, "edits_per_token": 2.0}, {"uid": "03c45fea1f8f04e3", "family": "arith", "template": 0, "depth": 3, "pred": "1111110", "truth": "44", "correct": false, "edits_per_token": 2.0}, {"uid": "f025613adc1381e6", "family": "arith", "template": 0, "depth": 4, "pred": "11111111111", "truth": "67", "correct": false, "edits_per_token": 2.0}, {"uid": "b8d5ed26d645710e", "family": "bind", "template": 0, "depth": 2, "pred": "1111111, =", "truth": "16", "correct": false, "edits_per_token": 2.0}, {"uid": "cbc5614b2da64a6a", "family": "arith", "template": 1, "depth": 4, "pred": "111111110", "truth": "-50", "correct": false, "edits_per_token": 2.0}, {"uid": "12ab692979396f5c", "family": "bind", "template": 2, "depth": 3, "pred": "111, = = =", "truth": "36", "correct": false, "edits_per_token": 2.0}, {"uid": "c4d7459d76e0bccb", "family": "arith", "template": 2, "depth": 2, "pred": "1111111111", "truth": "24", "correct": false, "edits_per_token": 2.0}, {"uid": "0070225255190df8", "family": "bind", "template": 1, "depth": 3, "pred": "111111111,", "truth": "-6", "correct": false, "edits_per_token": 2.0}, {"uid": "7e4a5eedc90f317e", "family": "arith", "template": 2, "depth": 4, "pred": "11111111111", "truth": "707", "correct": false, "edits_per_token": 2.0}, {"uid": "9377b954fbae3ecd", "family": "bind", "template": 2, "depth": 4, "pred": "111111, = =", "truth": "-4", "correct": false, "edits_per_token": 2.0}, {"uid": "d6bbe76ab7ae5dea", "family": "bind", "template": 0, "depth": 4, "pred": "1111, = = 1", "truth": "2", "correct": false, "edits_per_token": 2.0}, {"uid": "b81b6a9bf582b351", "family": "fsm", "template": 1, "depth": 2, "pred": "11111111111", "truth": "5", "correct": false, "edits_per_token": 2.0}, {"uid": "46b570766ec22e2a", "family": "fsm", "template": 0, "depth": 3, "pred": "111111111", "truth": "3", "correct": false, "edits_per_token": 2.0}, {"uid": "8716a204b9fa7afb", "family": "fsm", "template": 2, "depth": 4, "pred": "11111111111", "truth": "-28", "correct": false, "edits_per_token": 2.0}, {"uid": "324c8cdae8f3169c", "family": "fsm", "template": 1, "depth": 4, "pred": "1111", "truth": "-6", "correct": false, "edits_per_token": 2.0}, {"uid": "a53b485a5b805471", "family": "excl", "template": 2, "depth": 1, "pred": "An (1111111", "truth": "plum fig yam kiwi", "correct": false, "edits_per_token": 2.0}, {"uid": "b92a8bb6a6b6c2fc", "family": "sched", "template": 2, "depth": 1, "pred": "Answer: Ano", "truth": "none", "correct": false, "edits_per_token": 2.0}, {"uid": "c9dda90c7d0ad8ed", "family": "sched", "template": 1, "depth": 2, "pred": "Answer: Ans", "truth": "A", "correct": false, "edits_per_token": 2.0}, {"uid": "8146db2f7a31cd89", "family": "excl", "template": 1, "depth": 1, "pred": "An t t (111", "truth": "bean fig", "correct": false, "edits_per_token": 2.0}, {"uid": "dc7a2b700ef3eec3", "family": "sched", "template": 0, "depth": 2, "pred": "Answer: Ans", "truth": "none", "correct": false, "edits_per_token": 2.0}, {"uid": "1b7f8f05a6c5a7a3", "family": "excl", "template": 2, "depth": 2, "pred": "An t t t t", "truth": "plum apple", "correct": false, "edits_per_token": 2.0}, {"uid": "302f485c304f8e1c", "family": "excl", "template": 0, "depth": 4, "pred": "Answer: Ans", "truth": "none", "correct": false, "edits_per_token": 2.0}, {"uid": "9bc00d0671abd8ee", "family": "sched", "template": 2, "depth": 3, "pred": "11111111111", "truth": "none", "correct": false, "edits_per_token": 2.0}, {"uid": "89a256c76069f616", "family": "excl", "template": 1, "depth": 3, "pred": "An t terere", "truth": "plum lime", "correct": false, "edits_per_token": 2.0}, {"uid": "ec0058c7de654adf", "family": "excl", "template": 0, "depth": 2, "pred": "Answer: Ans", "truth": "date", "correct": false, "edits_per_token": 2.0}, {"uid": "86c8be0ac076a890", "family": "excl", "template": 2, "depth": 4, "pred": "An t (11111", "truth": "none", "correct": false, "edits_per_token": 2.0}, {"uid": "3088630483a27717", "family": "sched", "template": 1, "depth": 3, "pred": "Answer: Ans", "truth": "C", "correct": false, "edits_per_token": 2.0}, {"uid": "ecc84ca69997e2f2", "family": "sched", "template": 0, "depth": 4, "pred": "Answer: Ans", "truth": "D", "correct": false, "edits_per_token": 2.0}] | |
| \ No newline at end of file | ||
added
experiments/runs/mini_editor_seed01_20261030005118/manifest.json
+55 −0
@@ -0,0 +1,55 @@ | ||
| 1 | +{ | |
| 2 | + "run_id": "mini_editor_seed01_20261030005118", | |
| 3 | + "name": "mini_editor", | |
| 4 | + "seed": 1, | |
| 5 | + "code_commit": "ede6705574e7140bdc16eff11931815070b471d1", | |
| 6 | + "config_sha256": "9b8eaddacceef0891ab8f384ab2c95bdd250ab90895a410cc03fd91941acf50e", | |
| 7 | + "started_at": "2026-10-30T00:51:18-0400", | |
| 8 | + "host": "MacBookPro-de-simon-pierre-2.local", | |
| 9 | + "python": "3.12.13", | |
| 10 | + "torch": "2.15.0", | |
| 11 | + "command": "/Users/simon-pierreboucher/Desktop/Recherche-UQO/ia/prisme-slm/training/train_editor.py --config configs/experiments/mini_editor.yaml --device cpu", | |
| 12 | + "state": "completed", | |
| 13 | + "wall_seconds": 30.59, | |
| 14 | + "device": "cpu", | |
| 15 | + "backend": "cpu", | |
| 16 | + "precision": "fp32", | |
| 17 | + "n_params": 259813, | |
| 18 | + "n_trainable": 30593, | |
| 19 | + "checkpoint_parent": "experiments/runs/mini_backbone_seed01_20261030005114/checkpoint", | |
| 20 | + "mode": "prisme", | |
| 21 | + "freeze_backbone": true, | |
| 22 | + "readout_scale": 0.11967716366052628, | |
| 23 | + "finished_at": "2026-10-30T00:51:49-0400", | |
| 24 | + "train_tokens": 9847, | |
| 25 | + "peak_memory_bytes": 2025537536, | |
| 26 | + "final_exact_match": { | |
| 27 | + "dev_iid": { | |
| 28 | + "0": { | |
| 29 | + "accuracy": 0.0, | |
| 30 | + "n": 32, | |
| 31 | + "by_family": { | |
| 32 | + "bind": 0.0, | |
| 33 | + "arith": 0.0, | |
| 34 | + "fsm": 0.0, | |
| 35 | + "excl": 0.0, | |
| 36 | + "sched": 0.0 | |
| 37 | + }, | |
| 38 | + "edits_per_token": 0.0 | |
| 39 | + }, | |
| 40 | + "2": { | |
| 41 | + "accuracy": 0.0, | |
| 42 | + "n": 32, | |
| 43 | + "by_family": { | |
| 44 | + "bind": 0.0, | |
| 45 | + "arith": 0.0, | |
| 46 | + "fsm": 0.0, | |
| 47 | + "excl": 0.0, | |
| 48 | + "sched": 0.0 | |
| 49 | + }, | |
| 50 | + "edits_per_token": 2.0 | |
| 51 | + } | |
| 52 | + } | |
| 53 | + }, | |
| 54 | + "metrics_file": "experiments/runs/mini_editor_seed01_20261030005118/metrics.jsonl" | |
| 55 | +} | |
| \ No newline at end of file | ||
added
experiments/runs/mini_editor_seed01_20261030005118/metrics.jsonl
+6 −0
@@ -0,0 +1,6 @@ | ||
| 1 | +{"step": 0, "loss": 2.298006296157837, "lr": 0.0001, "grad_norm": 0.09031800925731659, "tokens": 68, "tok_per_s": 162.15141950096879, "t": 0.87} | |
| 2 | +{"step": 50, "loss": 2.058422088623047, "lr": 0.0007369367558508489, "grad_norm": 0.12141810357570648, "tokens": 4115, "tok_per_s": 302.02736493529886, "t": 14.07} | |
| 3 | +{"step": 100, "loss": 1.9985322952270508, "lr": 0.00017143591022596844, "grad_norm": 0.21364711225032806, "tokens": 8233, "tok_per_s": 334.57399121717356, "t": 25.06} | |
| 4 | +{"step": 119, "loss": 2.201204538345337, "lr": 0.00010018351322731485, "grad_norm": 0.20862196385860443, "tokens": 9847, "tok_per_s": 337.68230198090333, "t": 29.61} | |
| 5 | +{"step": 119, "val_loss_b0": 2.3909947187051004, "val_loss_b1": 2.177954662805316, "val_loss_b2": 2.145720558604975, "val_loss_b4": 2.0783485324903466, "val_loss_b8": 2.0136146983881105, "t": 30.08} | |
| 6 | +{"step": 119, "checkpoint_sha256": "cd59f80c64ff29b3a0baf145c64778a34c9f6080457eded4e4f6cdda3649aeb2", "t": 30.09} | |
modified
paper/main.log
+90 −78
@@ -1,4 +1,4 @@ | ||
| 1 | −This is pdfTeX, Version 3.141592653-2.6-1.40.29 (TeX Live 2026) (preloaded format=pdflatex 2026.3.22) 30 OCT 2026 00:24 | |
| 1 | +This is pdfTeX, Version 3.141592653-2.6-1.40.29 (TeX Live 2026) (preloaded format=pdflatex 2026.3.22) 30 OCT 2026 00:50 | |
| 2 | 2 | entering extended mode |
| 3 | 3 | restricted \write18 enabled. |
| 4 | 4 | %&-line parsing enabled. |
@@ -1159,7 +1159,7 @@ Package hyperref Info: Link coloring ON on input line 85. | ||
| 1159 | 1159 | |
| 1160 | 1160 | \c@lstlisting=\count403 |
| 1161 | 1161 | (./sections/titlepage.tex |
| 1162 | −<uq_logo.jpg, id=143, 722.7pt x 361.35pt> | |
| 1162 | +<uq_logo.jpg, id=199, 722.7pt x 361.35pt> | |
| 1163 | 1163 | File: uq_logo.jpg Graphic file (type jpg) |
| 1164 | 1164 | <use uq_logo.jpg> |
| 1165 | 1165 | Package pdftex.def Info: uq_logo.jpg used on input line 9. |
@@ -1169,16 +1169,9 @@ Package pdftex.def Info: uq_logo.jpg used on input line 9. | ||
| 1169 | 1169 | {/usr/local/texlive/2026/texmf-var/fonts/map/pdftex/updmap/pdftex.map}{/usr/loc |
| 1170 | 1170 | al/texlive/2026/texmf-dist/fonts/enc/dvips/base/8r.enc} <./uq_logo.jpg>] (./sec |
| 1171 | 1171 | tions/abstract.tex) |
| 1172 | −[2]) (./sections/introduction.tex) (./sections/related.tex | |
| 1173 | −Package microtype Info: Loading generic protrusion settings for font family | |
| 1174 | −(microtype) `cmtt' (encoding: T1). | |
| 1175 | −(microtype) For optimal results, create family-specific settings. | |
| 1176 | −(microtype) See the microtype manual for details. | |
| 1177 | − [3{/usr/local/texlive/2026/texmf-dist/fonts/enc/dvips/cm-super/cm-super-t1.enc | |
| 1178 | −}]) | |
| 1179 | −(./sections/problem.tex | |
| 1172 | +[2]) (./sections/introduction.tex | |
| 1180 | 1173 | LaTeX Font Info: Trying to load font information for OT1+ztmcm on input line |
| 1181 | − 4. | |
| 1174 | + 8. | |
| 1182 | 1175 | |
| 1183 | 1176 | (/usr/local/texlive/2026/texmf-dist/tex/latex/psnfss/ot1ztmcm.fd |
| 1184 | 1177 | File: ot1ztmcm.fd 2000/01/03 Fontinst v1.801 font definitions for OT1/ztmcm. |
@@ -1188,43 +1181,50 @@ Package microtype Info: Loading generic protrusion settings for font family | ||
| 1188 | 1181 | (microtype) For optimal results, create family-specific settings. |
| 1189 | 1182 | (microtype) See the microtype manual for details. |
| 1190 | 1183 | LaTeX Font Info: Trying to load font information for OML+ztmcm on input line |
| 1191 | − 4. | |
| 1184 | + 8. | |
| 1192 | 1185 | |
| 1193 | 1186 | (/usr/local/texlive/2026/texmf-dist/tex/latex/psnfss/omlztmcm.fd |
| 1194 | 1187 | File: omlztmcm.fd 2000/01/03 Fontinst v1.801 font definitions for OML/ztmcm. |
| 1195 | 1188 | ) |
| 1196 | 1189 | LaTeX Font Info: Trying to load font information for OMS+ztmcm on input line |
| 1197 | − 4. | |
| 1190 | + 8. | |
| 1198 | 1191 | |
| 1199 | 1192 | (/usr/local/texlive/2026/texmf-dist/tex/latex/psnfss/omsztmcm.fd |
| 1200 | 1193 | File: omsztmcm.fd 2000/01/03 Fontinst v1.801 font definitions for OMS/ztmcm. |
| 1201 | 1194 | ) |
| 1202 | 1195 | LaTeX Font Info: Trying to load font information for OMX+ztmcm on input line |
| 1203 | − 4. | |
| 1196 | + 8. | |
| 1204 | 1197 | |
| 1205 | 1198 | (/usr/local/texlive/2026/texmf-dist/tex/latex/psnfss/omxztmcm.fd |
| 1206 | 1199 | File: omxztmcm.fd 2000/01/03 Fontinst v1.801 font definitions for OMX/ztmcm. |
| 1207 | 1200 | ) |
| 1208 | −LaTeX Font Info: Trying to load font information for OT1+ptm on input line 4 | |
| 1201 | +LaTeX Font Info: Trying to load font information for OT1+ptm on input line 8 | |
| 1209 | 1202 | . |
| 1210 | 1203 | |
| 1211 | 1204 | (/usr/local/texlive/2026/texmf-dist/tex/latex/psnfss/ot1ptm.fd |
| 1212 | 1205 | File: ot1ptm.fd 2001/06/04 font definitions for OT1/ptm. |
| 1213 | 1206 | ) |
| 1214 | 1207 | LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <12> not available |
| 1215 | −(Font) Font shape `OT1/ptm/b/n' tried instead on input line 4. | |
| 1208 | +(Font) Font shape `OT1/ptm/b/n' tried instead on input line 8. | |
| 1216 | 1209 | LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <9> not available |
| 1217 | −(Font) Font shape `OT1/ptm/b/n' tried instead on input line 4. | |
| 1210 | +(Font) Font shape `OT1/ptm/b/n' tried instead on input line 8. | |
| 1218 | 1211 | LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <7> not available |
| 1219 | −(Font) Font shape `OT1/ptm/b/n' tried instead on input line 4. | |
| 1212 | +(Font) Font shape `OT1/ptm/b/n' tried instead on input line 8. | |
| 1220 | 1213 | |
| 1221 | 1214 | (/usr/local/texlive/2026/texmf-dist/tex/latex/microtype/mt-msa.cfg |
| 1222 | 1215 | File: mt-msa.cfg 2006/02/04 v1.1 microtype config. file: AMS symbols (a) (RS) |
| 1223 | 1216 | ) |
| 1224 | 1217 | (/usr/local/texlive/2026/texmf-dist/tex/latex/microtype/mt-msb.cfg |
| 1225 | 1218 | File: mt-msb.cfg 2005/06/01 v1.0 microtype config. file: AMS symbols (b) (RS) |
| 1226 | −) [4]) | |
| 1227 | −(./sections/architecture.tex (./figures/architecture.tex | |
| 1219 | +) [3] | |
| 1220 | +(./sections/findings.tex)) (./sections/related.tex | |
| 1221 | +Package microtype Info: Loading generic protrusion settings for font family | |
| 1222 | +(microtype) `cmtt' (encoding: T1). | |
| 1223 | +(microtype) For optimal results, create family-specific settings. | |
| 1224 | +(microtype) See the microtype manual for details. | |
| 1225 | + [4{/usr/local/texlive/2026/texmf-dist/fonts/enc/dvips/cm-super/cm-super-t1.enc | |
| 1226 | +}]) (./sections/problem.tex | |
| 1227 | +[5]) (./sections/architecture.tex (./figures/architecture.tex | |
| 1228 | 1228 | LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <10> not available |
| 1229 | 1229 | (Font) Font shape `OT1/ptm/b/n' tried instead on input line 9. |
| 1230 | 1230 | LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <7.4> not available |
@@ -1240,7 +1240,7 @@ LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <10.95> not available | ||
| 1240 | 1240 | (Font) Font shape `OT1/ptm/b/n' tried instead on input line 13. |
| 1241 | 1241 | LaTeX Font Info: Font shape `OT1/ptm/bx/n' in size <8> not available |
| 1242 | 1242 | (Font) Font shape `OT1/ptm/b/n' tried instead on input line 13. |
| 1243 | − | |
| 1243 | +[6] | |
| 1244 | 1244 | Overfull \hbox (0.70027pt too wide) detected at line 28 |
| 1245 | 1245 | [][][][] \OT1/ztmcm/m/n/12 = [][](\OML/ztmcm/m/it/12 H[]\OT1/ztmcm/m/n/12 )\OML |
| 1246 | 1246 | /ztmcm/m/it/12 ; K[] \OT1/ztmcm/m/n/12 = []\OML/ztmcm/m/it/12 W[]; V[] \OT1/z |
@@ -1249,12 +1249,12 @@ t/12 P []; W[]; W[]; P[] \OMS/ztmcm/m/n/12 2 \U/msb/m/n/12 R[]\OML/ztmcm/m/it/ | ||
| 1249 | 1249 | 12 : |
| 1250 | 1250 | [] |
| 1251 | 1251 | |
| 1252 | −[5] | |
| 1252 | +[7] | |
| 1253 | 1253 | Overfull \hbox (8.35876pt too wide) detected at line 60 |
| 1254 | 1254 | [] |
| 1255 | 1255 | [] |
| 1256 | 1256 | |
| 1257 | −[6] | |
| 1257 | + | |
| 1258 | 1258 | Overfull \hbox (22.86838pt too wide) detected at line 74 |
| 1259 | 1259 | [][][]\OML/ztmcm/m/it/12 ^^N[] \OT1/ztmcm/m/n/12 = [] \OMS/ztmcm/m/n/12 ^^@ \OM |
| 1260 | 1260 | L/ztmcm/m/it/12 S[]; ^^N[] \OT1/ztmcm/m/n/12 = \OML/ztmcm/m/it/12 ^^N[] [] [] |
@@ -1273,76 +1273,88 @@ mcm/m/n/12 (\OML/ztmcm/m/it/12 S; z[]\OT1/ztmcm/m/n/12 ) = [][] \OML/ztmcm/m/it | ||
| 1273 | 1273 | ][](\OML/ztmcm/m/it/12 W[]z[]\OT1/ztmcm/m/n/12 ) \OMS/ztmcm/m/n/12 ^^A |
| 1274 | 1274 | [] |
| 1275 | 1275 | |
| 1276 | −(./tables/configs.tex)) (./sections/policy.tex [7] | |
| 1277 | − | |
| 1278 | −LaTeX Warning: Reference `sec:results-oracle' on page 8 undefined on input line | |
| 1279 | − 29. | |
| 1280 | − | |
| 1281 | −) (./sections/learning.tex [8] | |
| 1282 | − | |
| 1283 | −LaTeX Warning: Reference `sec:results-reasoning' on page 9 undefined on input l | |
| 1284 | −ine 14. | |
| 1285 | − | |
| 1286 | − | |
| 1287 | −LaTeX Warning: Reference `sec:results-learnability' on page 9 undefined on inpu | |
| 1288 | −t line 37. | |
| 1289 | − | |
| 1290 | −[9]) (./sections/theory.tex [10] | |
| 1276 | +[8] (./tables/configs.tex)) (./sections/policy.tex [9]) | |
| 1277 | +(./sections/learning.tex [10]) (./sections/theory.tex [11] | |
| 1291 | 1278 | |
| 1292 | 1279 | LaTeX Font Warning: Font shape `T1/ptm/m/scit' undefined |
| 1293 | 1280 | (Font) using `T1/ptm/m/sc' instead on input line 37. |
| 1294 | 1281 | |
| 1295 | − | |
| 1296 | −LaTeX Warning: Reference `sec:results-oracle' on page 11 undefined on input lin | |
| 1297 | −e 46. | |
| 1298 | − | |
| 1299 | −) (./sections/implementation.tex [11] (./tables/ops.tex | |
| 1282 | +[12]) (./sections/implementation.tex (./tables/ops.tex | |
| 1300 | 1283 | Underfull \hbox (badness 10000) in paragraph at lines 5--5 |
| 1301 | 1284 | []\T1/ptm/b/n/10.95 (+20) Table 2. |\T1/ptm/m/n/10.95 (+20) An-a-lytic op-er-a- |
| 1302 | 1285 | tions per gen-er-ated to-ken, PRISME-459M, con-text $\OML/ztmcm/m/it/10.95 T \O |
| 1303 | 1286 | T1/ztmcm/m/n/10.95 = 4096$ |
| 1304 | 1287 | [] |
| 1305 | 1288 | |
| 1306 | −) | |
| 1307 | − | |
| 1308 | −LaTeX Warning: Reference `sec:results-latency' on page 12 undefined on input li | |
| 1309 | −ne 45. | |
| 1310 | − | |
| 1311 | −) (./sections/design.tex [12] | |
| 1289 | +) [13]) (./sections/design.tex | |
| 1312 | 1290 | Package microtype Info: Loading generic protrusion settings for font family |
| 1313 | 1291 | (microtype) `cmss' (encoding: T1). |
| 1314 | 1292 | (microtype) For optimal results, create family-specific settings. |
| 1315 | 1293 | (microtype) See the microtype manual for details. |
| 1316 | − (./tables/families.tex) | |
| 1294 | + (./tables/families.tex) [14] | |
| 1317 | 1295 | Overfull \hbox (36.62411pt too wide) in paragraph at lines 19--24 |
| 1318 | 1296 | \T1/ptm/m/n/12 (-20) 2.91M val-i-da-tion and 2.88M locked test to-kens (\T1/cmt |
| 1319 | 1297 | t/m/n/12 data/processed/fineweb_edu_300m/manifest.json\T1/ptm/m/n/12 (-20) ). |
| 1320 | 1298 | [] |
| 1321 | 1299 | |
| 1322 | −[13] | |
| 1323 | 1300 | |
| 1324 | −LaTeX Warning: Reference `tab:controls' on page 14 undefined on input line 27. | |
| 1301 | +LaTeX Warning: Reference `tab:controls' on page 15 undefined on input line 27. | |
| 1325 | 1302 | |
| 1326 | −) (./sections/results.tex) (./sections/mechanistic.tex) | |
| 1327 | −(./sections/limitations.tex) (./sections/conclusion.tex) | |
| 1328 | −(./sections/reproducibility.tex) | |
| 1329 | −Overfull \hbox (71.70984pt too wide) in paragraph at lines 38--101 | |
| 1303 | +[15]) (./sections/results.tex | |
| 1304 | +Overfull \hbox (71.70984pt too wide) in paragraph at lines 38--1 | |
| 1330 | 1305 | \T1/ptm/m/n/12 (-20) The pri-mary out-come, met-rics, de-ci-sion thresh-olds an |
| 1331 | 1306 | d seed plan were writ-ten to \T1/cmtt/m/n/12 protocol/preregistration.md |
| 1332 | 1307 | [] |
| 1333 | 1308 | |
| 1334 | −[14] (./main.bbl [15] [16] | |
| 1309 | +<../results/figures/learnability_bootstrap.pdf, id=482, 353.75287pt x 191.45125 | |
| 1310 | +pt> | |
| 1311 | +File: ../results/figures/learnability_bootstrap.pdf Graphic file (type pdf) | |
| 1312 | +<use ../results/figures/learnability_bootstrap.pdf> | |
| 1313 | +Package pdftex.def Info: ../results/figures/learnability_bootstrap.pdf used on | |
| 1314 | + input line 26. | |
| 1315 | +(pdftex.def) Requested size: 469.75502pt x 254.23257pt. | |
| 1316 | +(./tables/seed_matrix.tex | |
| 1317 | +Overfull \hbox (133.05286pt too wide) in paragraph at lines 7--18 | |
| 1318 | + [][] | |
| 1319 | + [] | |
| 1320 | + | |
| 1321 | +) [16] [17 <../results/figures/learnability_bootstrap.pdf>] | |
| 1322 | +<../results/figures/labels_analysis.pdf, id=518, 478.87544pt x 181.0464pt> | |
| 1323 | +File: ../results/figures/labels_analysis.pdf Graphic file (type pdf) | |
| 1324 | +<use ../results/figures/labels_analysis.pdf> | |
| 1325 | +Package pdftex.def Info: ../results/figures/labels_analysis.pdf used on input | |
| 1326 | +line 72. | |
| 1327 | +(pdftex.def) Requested size: 469.75502pt x 177.60933pt. | |
| 1328 | + | |
| 1329 | +(./tables/routing.tex) (./tables/controller.tex) [18] (./tables/latency.tex) | |
| 1330 | +[19 <../results/figures/labels_analysis.pdf>] (./sections/results_pilot.tex)) | |
| 1331 | +(./sections/mechanistic.tex [20]) (./sections/limitations.tex [21]) | |
| 1332 | +(./sections/conclusion.tex) (./sections/reproducibility.tex) | |
| 1333 | +Overfull \hbox (51.18217pt too wide) in paragraph at lines 2--101 | |
| 1334 | +\T1/ptm/m/n/12 (-20) num-ber in the manuscript is pro-duced by \T1/cmtt/m/n/12 | |
| 1335 | +scripts/make_tables.py \T1/ptm/m/n/12 (-20) and \T1/cmtt/m/n/12 scripts/reprodu | |
| 1336 | +ce_figures.py | |
| 1337 | + [] | |
| 1338 | + | |
| 1339 | + | |
| 1340 | +Overfull \hbox (1.97566pt too wide) in paragraph at lines 2--101 | |
| 1341 | +\T1/ptm/m/n/12 (-20) from those files, and \T1/cmtt/m/n/12 scripts/verify_manus | |
| 1342 | +cript_claims.py \T1/ptm/m/n/12 (-20) checks the chain. \T1/cmtt/m/n/12 REPRODUC | |
| 1343 | +E.md | |
| 1344 | + [] | |
| 1345 | + | |
| 1346 | +[22] [23] (./main.bbl [24] [25] | |
| 1335 | 1347 | Underfull \hbox (badness 1297) in paragraph at lines 208--211 |
| 1336 | 1348 | []\T1/ptm/b/n/12 (+20) You, Yichen, Tianyu Fu, Aosong Feng, Xing-tai Lv, Xue-fe |
| 1337 | 1349 | i Ning, Ning Ding, and |
| 1338 | 1350 | [] |
| 1339 | 1351 | |
| 1340 | −[17]) (./appendix/appendix.tex (./appendix/notation.tex | |
| 1352 | +[26]) (./appendix/appendix.tex (./appendix/notation.tex | |
| 1341 | 1353 | Overfull \hbox (12.19864pt too wide) in paragraph at lines 2--16 |
| 1342 | 1354 | [] |
| 1343 | 1355 | [] |
| 1344 | 1356 | |
| 1345 | −) (./appendix/proofs.tex [18]) (./appendix/params.tex [19] | |
| 1357 | +) (./appendix/proofs.tex [27]) (./appendix/params.tex [28] | |
| 1346 | 1358 | Overfull \hbox (92.32437pt too wide) detected at line 12 |
| 1347 | 1359 | \OML/ztmcm/m/it/12 N[] \OT1/ztmcm/m/n/12 = \OML/ztmcm/m/it/12 d \OT1/ztmcm/m/n/ |
| 1348 | 1360 | 12 + 3\OML/ztmcm/m/it/12 dw \OT1/ztmcm/m/n/12 + \OML/ztmcm/m/it/12 Mw \OT1/ztmc |
@@ -1451,7 +1463,7 @@ LaTeX Warning: `h' float specifier changed to `ht'. | ||
| 1451 | 1463 | ) (./appendix/prereg.tex |
| 1452 | 1464 | LaTeX Font Info: Font shape `T1/cmtt/bx/n' in size <12> not available |
| 1453 | 1465 | (Font) Font shape `T1/cmtt/m/n' tried instead on input line 1. |
| 1454 | − [20] | |
| 1466 | + [29] | |
| 1455 | 1467 | LaTeX Font Info: Trying to load font information for TS1+ptm on input line 8 |
| 1456 | 1468 | . |
| 1457 | 1469 | |
@@ -1464,8 +1476,8 @@ Overfull \hbox (80.09856pt too wide) in paragraph at lines 10--12 | ||
| 1464 | 1476 | T1/cmtt/m/n/12 data/generators/synthetic.py\T1/ptm/m/n/12 (-20) , |
| 1465 | 1477 | [] |
| 1466 | 1478 | |
| 1467 | −[21] [22]) (./appendix/runs.tex) (./appendix/results.tex) | |
| 1468 | −(./appendix/failures.tex | |
| 1479 | +[30]) (./appendix/runs.tex) (./appendix/results.tex) (./appendix/failures.tex | |
| 1480 | +[31] | |
| 1469 | 1481 | Overfull \hbox (23.89659pt too wide) in paragraph at lines 8--10 |
| 1470 | 1482 | []\T1/ptm/b/n/12 (-20) date\T1/ptm/m/n/12 (-20) : 2026-10-29; \T1/ptm/b/n/12 (- |
| 1471 | 1483 | 20) what failed\T1/ptm/m/n/12 (-20) : rsync ex-clu-sion \T1/cmtt/m/n/12 experim |
@@ -1488,7 +1500,7 @@ ev-i-dence\T1/ptm/m/n/12 (-20) : \T1/cmtt/m/n/12 experiments/runs/p4_editor_v1_ | ||
| 1488 | 1500 | seed01_*/metrics.jsonl |
| 1489 | 1501 | [] |
| 1490 | 1502 | |
| 1491 | −[23] | |
| 1503 | + | |
| 1492 | 1504 | Overfull \hbox (47.44559pt too wide) in paragraph at lines 12--14 |
| 1493 | 1505 | \T1/cmtt/m/n/12 experiments/logs/p4_diag_mixed_w128_lr3e3.log\T1/ptm/m/n/12 (-2 |
| 1494 | 1506 | 0) , run \T1/cmtt/m/n/12 p4_diag_mixed_w128_lr3e3_seed01_*\T1/ptm/m/n/12 (-20) |
@@ -1507,14 +1519,14 @@ object has no attribute \TS1/cmtt/m/n/12 '\T1/cmtt/m/n/12 W_K\TS1/cmtt/m/n/12 ' | ||
| 1507 | 1519 | \T1/ptm/m/n/12 (-20) ): |
| 1508 | 1520 | [] |
| 1509 | 1521 | |
| 1510 | − | |
| 1522 | +[32{/usr/local/texlive/2026/texmf-dist/fonts/enc/dvips/cm-super/cm-super-ts1.en | |
| 1523 | +c}] | |
| 1511 | 1524 | Overfull \hbox (12.79033pt too wide) in paragraph at lines 18--20 |
| 1512 | 1525 | \T1/cmtt/m/n/12 experiments/logs/p4_tiny_backbone_v2.log\T1/ptm/m/n/12 (-20) , |
| 1513 | 1526 | run \T1/cmtt/m/n/12 p4_tiny_backbone_v2_seed01_* \T1/ptm/m/n/12 (-20) (state: |
| 1514 | 1527 | [] |
| 1515 | 1528 | |
| 1516 | −)) [24{/usr/local/texlive/2026/texmf-dist/fonts/enc/dvips/cm-super/cm-super-ts1 | |
| 1517 | −.enc}] (./main.aux) | |
| 1529 | +)) [33] [34] [35] [36] (./main.aux) | |
| 1518 | 1530 | *********** |
| 1519 | 1531 | LaTeX2e <2025-11-01> |
| 1520 | 1532 | L3 programming layer <2026-01-19> |
@@ -1524,16 +1536,16 @@ L3 programming layer <2026-01-19> | ||
| 1524 | 1536 | LaTeX Warning: There were undefined references. |
| 1525 | 1537 | |
| 1526 | 1538 | Package rerunfilecheck Info: File `main.out' has not changed. |
| 1527 | −(rerunfilecheck) Checksum: 5DF33CC747756FF4B32FB47A63C0D5B8;5650. | |
| 1539 | +(rerunfilecheck) Checksum: 5EA08BD75CF8BB2CE55B2E3AA28260B7;9020. | |
| 1528 | 1540 | ) |
| 1529 | 1541 | Here is how much of TeX's memory you used: |
| 1530 | − 35658 strings out of 467525 | |
| 1531 | − 695072 string characters out of 5418982 | |
| 1532 | − 1097683 words of memory out of 5000000 | |
| 1533 | − 63228 multiletter control sequences out of 15000+600000 | |
| 1534 | − 780304 words of font info for 542 fonts, out of 8000000 for 9000 | |
| 1542 | + 35902 strings out of 467525 | |
| 1543 | + 699263 string characters out of 5418982 | |
| 1544 | + 1118922 words of memory out of 5000000 | |
| 1545 | + 63356 multiletter control sequences out of 15000+600000 | |
| 1546 | + 785401 words of font info for 586 fonts, out of 8000000 for 9000 | |
| 1535 | 1547 | 1141 hyphenation exceptions out of 8191 |
| 1536 | − 84i,13n,104p,1001b,1381s stack positions out of 10000i,1000n,20000p,200000b,200000s | |
| 1548 | + 84i,13n,104p,1001b,1387s stack positions out of 10000i,1000n,20000p,200000b,200000s | |
| 1537 | 1549 | </usr/local/texlive/2026/texmf-dist/fonts/type1/public/amsfonts/cm/cmex10.pfb |
| 1538 | 1550 | ></usr/local/texlive/2026/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb> |
| 1539 | 1551 | </usr/local/texlive/2026/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></ |
@@ -1549,10 +1561,10 @@ exlive/2026/texmf-dist/fonts/type1/urw/symbol/usyr.pfb></usr/local/texlive/2026 | ||
| 1549 | 1561 | e1/urw/times/utmbi8a.pfb></usr/local/texlive/2026/texmf-dist/fonts/type1/urw/ti |
| 1550 | 1562 | mes/utmr8a.pfb></usr/local/texlive/2026/texmf-dist/fonts/type1/urw/times/utmri8 |
| 1551 | 1563 | a.pfb> |
| 1552 | −Output written on main.pdf (24 pages, 337432 bytes). | |
| 1564 | +Output written on main.pdf (36 pages, 407592 bytes). | |
| 1553 | 1565 | PDF statistics: |
| 1554 | − 540 PDF objects out of 1000 (max. 8388607) | |
| 1555 | − 477 compressed objects within 5 object streams | |
| 1556 | − 117 named destinations out of 1000 (max. 500000) | |
| 1557 | − 133410 words of extra memory for PDF output out of 154059 (max. 10000000) | |
| 1566 | + 744 PDF objects out of 1000 (max. 8388607) | |
| 1567 | + 646 compressed objects within 7 object streams | |
| 1568 | + 149 named destinations out of 1000 (max. 500000) | |
| 1569 | + 137628 words of extra memory for PDF output out of 154059 (max. 10000000) | |
| 1558 | 1570 | |
modified
paper/main.pdf
+0 −0
Binary file not shown.
modified
paper/sections/abstract.tex
+20 −1
@@ -1 +1,20 @@ | ||
| 1 | −% to be written | |
| 1 | +We design, implement, train and evaluate PRISME, a small-language-model architecture that augments a frozen | |
| 2 | +causal decoder with a read-only source bank, an ephemeral sixteen-slot latent workspace that is re-created at every | |
| 3 | +position, a shared sparse editor that rewrites one or two slots per action, a value controller trained on | |
| 4 | +counterfactual intervention gains measured by executing paired edit/no-edit branches, and a differential readout | |
| 5 | +with an exact zero-budget bypass. We reproduce the proposal's exact backbone parameter counts and its analytic | |
| 6 | +operation table, prove its structural properties (causality, bitwise identity, exact locality, bounded | |
| 7 | +displacement, one-step selection regret), and test seven pre-registered hypotheses with a complete implementation, | |
| 8 | +a fifteen-invariant test suite, an incremental inference engine and controlled, seeded comparisons against a | |
| 9 | +parameter-matched plain decoder, a dense-slot editor, a global-recurrence adapter trained with the identical | |
| 10 | +recipe, five reference routers and exhaustive one- and two-step oracles. The zero-initialised readout prescribed by | |
| 11 | +the proposal does not learn because of a scale mismatch; a scale-aware non-zero initialisation does. Sparse edits | |
| 12 | +then lower a frozen backbone's held-out loss by \vtwoprismegainbtwo{}\,\% and raise compositional exact match by | |
| 13 | +about two points, but the global-recurrence adapter matches or exceeds this at every budget. Where to write does | |
| 14 | +not matter for fixed schedules. An oracle that reads the target finds large opportunity (\routingoraclebeight{}\,\% | |
| 15 | +of loss), but \labelscalibwithin{}\,\% of the variance of intervention gains is state-level rather than action-level, | |
| 16 | +the opportunity is concentrated in high-uncertainty states where a wrong action costs more than a right one gains, | |
| 17 | +and the learned controller ranks actions within a state near chance; it is worse than no routing on held-out data. | |
| 18 | +Measured on Apple Silicon, per-action dispatch overhead erases the arithmetic savings of sparsity at small scale. | |
| 19 | +We report the 103M web-text pilot, the complete negative result on learned spatial routing, the mechanistic | |
| 20 | +explanation, and the conditions under which the hypothesis could still be rescued. | |
modified
paper/sections/conclusion.tex
+16 −1
@@ -1 +1,16 @@ | ||
| 1 | −% to be written | |
| 1 | +\section{Conclusion}\label{sec:conclusion} | |
| 2 | +The central question was whether counterfactual supervision of \emph{where} to edit a small latent workspace | |
| 3 | +improves the quality--compute frontier beyond uniform workspace computation and adaptive global recurrence. | |
| 4 | +On the evidence collected here the answer is no. The sparse editor is learnable and helps a frozen backbone | |
| 5 | +by a few percent of loss and two points of exact match when it is applied once or twice at every position, but | |
| 6 | +a global-recurrence adapter trained with the identical recipe helps at least as much at every budget; where to | |
| 7 | +write barely matters for fixed schedules; an exhaustive oracle shows large opportunity (up to | |
| 8 | +\routingoraclebeight{}\,\% of loss) that a value controller trained on 100k executed counterfactual labels | |
| 9 | +cannot capture, because the opportunity sits in high-uncertainty states where a wrong action costs more than a | |
| 10 | +right one gains and the controller's within-state ranking is close to chance; and at small scale the | |
| 11 | +per-action dispatch overhead erases the arithmetic savings of sparsity. The exact bypass holds bitwise, the | |
| 12 | +differential readout needs a scale-aware bootstrap, and the parameter and operation accounting of the proposal | |
| 13 | +is reproduced. The scientifically justified next experiment is not a larger model but a better label: a | |
| 14 | +controller trained to rank actions within a state (pairwise or listwise, with the state's mean gain removed) | |
| 15 | +on labels collected at the scale where the editor's arithmetic is not dwarfed by dispatch, with the | |
| 16 | +global-recurrence adapter as the baseline to beat. | |
modified
paper/sections/limitations.tex
+22 −1
@@ -1 +1,22 @@ | ||
| 1 | −% to be written | |
| 1 | +\section{Threats to validity and limitations}\label{sec:limitations} | |
| 2 | + | |
| 3 | +\paragraph{Scale.} The decisive seeded comparisons were run on 2--6M-parameter character-level backbones trained | |
| 4 | +on a synthetic suite; the 103M experiments (Section~\ref{sec:results-pilot}) use a single backbone seed and a | |
| 5 | +196M-token budget (two tokens per parameter), far below compute-optimal. Nothing here speaks to 459M or 1.18B. | |
| 6 | +\paragraph{Frozen backbones.} Every adapter was trained on a frozen backbone, which bounds what any adapter can | |
| 7 | +do; the one joint-fine-tuning attempt degraded the backbone and was not pursued. | |
| 8 | +\paragraph{Recipe dependence.} The bootstrap device ($U\sim\mathcal N(0,0.2^2)$, $s=\rms(H)$), the forced-budget | |
| 9 | +distribution and the learning rate were chosen on development data after the zero-initialised recipe failed; | |
| 10 | +other recipes could change the ranking of adapters. The global-recurrence baseline is an ``inspired'' | |
| 11 | +simplification, not the authors' implementations of Huginn, Ouro or ELR. | |
| 12 | +\paragraph{Label quality.} Intervention gains were collected with one editor checkpoint and one logging mixture; | |
| 13 | +propensities were recorded but no inverse-propensity correction was needed because the logging policy was | |
| 14 | +uniform over the audit; labels are exact for the token but noisy as a function of state features. | |
| 15 | +\paragraph{Measurement.} Latency was measured on Apple Silicon in fp32 with PyTorch's MPS backend and includes | |
| 16 | +Python dispatch; a fused implementation would change the absolute numbers and possibly the sparse-vs-dense | |
| 17 | +ordering. Operation counts ignore normalisation and activation costs. | |
| 18 | +\paragraph{Evaluation scope.} GSM8K and code benchmarks were pre-registered as out of scope for a ~200M-token | |
| 19 | +backbone and were not run; the held-out compose family remained at 2--3\,\% for every system. | |
| 20 | +\paragraph{Novelty.} The literature moved quickly in 2025--2026 (Section~\ref{sec:related}); the | |
| 21 | +execution-time audit may still miss relevant work. | |
| 22 | +\paragraph{Interpretability.} A slot is a vector, not a thought; no slot-level semantics are claimed. | |
modified
paper/sections/mechanistic.tex
+44 −1
@@ -1 +1,44 @@ | ||
| 1 | −% to be written | |
| 1 | +\section{Mechanistic studies and ablations}\label{sec:mechanistic} | |
| 2 | + | |
| 3 | +\paragraph{Where the gains are.} | |
| 4 | +The variance decomposition of Section~\ref{sec:results-oracle} is the central mechanistic fact of this study: | |
| 5 | +for the trained editor, whether an edit helps is mostly a property of the \emph{state} (\labelscaliballpos{}\,\% | |
| 6 | +of audited states have every action helpful, \labelscaliballneg{}\,\% every action harmful), and only | |
| 7 | +\labelscalibwithin{}\,\% of the variance of gains is attributable to which slot is written. Opportunity is | |
| 8 | +concentrated in high-loss states, where the spread between the best and a random action is largest | |
| 9 | +(\labelscalibtopdecoracle{} versus \labelscalibtopdecrandom{} nats in the top decile). A router that can only | |
| 10 | +detect opportunity but not rank actions therefore edits exactly where editing is riskiest---which is what the | |
| 11 | +learned controller did. | |
| 12 | + | |
| 13 | +\paragraph{Harm and overthinking.} | |
| 14 | +Across fixed schedules the loss is U-shaped in the budget (Table~\ref{tab:seedmatrix}): one or two random | |
| 15 | +edits help, eight hurt, for both the sparse editor and (less so) the global adapter; the fraction of positive | |
| 16 | +logged gains falls from 48\,\% at the first edit to 37--40\,\% after three (Figure~\ref{fig:labels}, left). Edits | |
| 17 | +compound noise faster than they compound signal in the forced-training regime, and nothing in the forced recipe | |
| 18 | +teaches the editor to leave a good state alone. | |
| 19 | + | |
| 20 | +\paragraph{Slot usage and fixed pairs.} | |
| 21 | +In the exhaustive audits no slot or pair is preferred: the best action's identity agrees between consecutive | |
| 22 | +states 11--12\,\% of the time (uniform guess 4.2\,\%), singles and fixed pairs have indistinguishable mean gains on | |
| 23 | +the editor-unseen stream, and the round-robin schedule, which visits every slot, matches random selection. | |
| 24 | +The address embeddings $e_j$ therefore do not induce functional specialisation in 3,000 steps of forced training; | |
| 25 | +we make no interpretability claim about slots. | |
| 26 | + | |
| 27 | +\paragraph{Myopia.} | |
| 28 | +The two-action oracle exceeds the one-step oracle by \oracletwostep{} versus \oracleonestep{} nats, but | |
| 29 | +``greedy first action, then best second'' recovers nearly all of it; the one-step greedy rule is not what limits | |
| 30 | +the learned controller. | |
| 31 | + | |
| 32 | +\paragraph{Cost decomposition.} | |
| 33 | +Analytically (Section~\ref{sec:compute}), at the 103M configuration and $T=512$ a single-slot edit costs | |
| 34 | +\costsingle{} and a pair \costpair{} of the backbone's operations per token, of which the slot-key refresh of | |
| 35 | +all $M$ slots is the largest single term; measured at the tiny scale, host dispatch dominates | |
| 36 | +(Section~\ref{sec:results-latency}). | |
| 37 | + | |
| 38 | +\paragraph{Ablations executed.} | |
| 39 | +Readout initialisation (zero vs $\sigma\in\{0.2,0.5\}$), readout scale, editor width ($w\in\{64,128\}$), | |
| 40 | +learning rate ($10^{-3}$ vs $3\times10^{-3}$), budget schedule (mixed vs budget-8 only), write locality | |
| 41 | +(1--2 slots vs all 16), global vs local recurrence, controller features ($z$ vs $\hat h$ + entropy), label stream | |
| 42 | +(editor-seen vs editor-unseen), penalties ($\lambda,\kappa$). Not executed: $M\in\{4,8,32\}$, editor depth | |
| 43 | +$\in\{1,4\}$, rematched pairs, joint fine-tuning (one attempt degraded the backbone and was stopped), distillation, | |
| 44 | +quantisation. All executed runs, including failed ones, are listed in Appendix~\ref{app:runs}. | |
modified
paper/sections/reproducibility.tex
+11 −1
@@ -1 +1,11 @@ | ||
| 1 | −% to be written | |
| 1 | +\section{Reproducibility statement, ethics and acknowledgements}\label{sec:repro} | |
| 2 | +Code, configurations, run manifests, result files, figures and this manuscript live in one repository | |
| 3 | +(\texttt{Recherche-UQO/ia/prisme-slm}, git history included). Every run has an immutable identifier, a | |
| 4 | +configuration hash, the code commit, the device and the measured wall-clock and memory; every number in the | |
| 5 | +manuscript is produced by \texttt{scripts/make\_tables.py} and \texttt{scripts/reproduce\_figures.py} from those | |
| 6 | +files, and \texttt{scripts/verify\_manuscript\_claims.py} checks the chain. \texttt{REPRODUCE.md} gives the | |
| 7 | +commands for the environment, the tests (\texttt{pytest}), the miniature end-to-end pipeline and the figures. | |
| 8 | +Data: the synthetic suite is generated deterministically from seeds; the web corpus is a documented, hashed | |
| 9 | +subset of FineWeb-Edu (ODC-By 1.0) and is not redistributed. No private, student, or personal data was used; no | |
| 10 | +generated code was executed; no paid API or cloud service was used. The author has no competing interests and | |
| 11 | +received no external funding for this work. Computation ran on the author's own Apple Silicon machines. | |
modified
paper/sections/results.tex
+127 −1
@@ -1 +1,127 @@ | ||
| 1 | −% to be written | |
| 1 | +\section{Results}\label{sec:results} | |
| 2 | + | |
| 3 | +All numbers in this section are generated from result files by \texttt{scripts/make\_tables.py} and are indexed | |
| 4 | +in \texttt{results/claim\_registry.csv} with their run identifiers. Unless stated otherwise, ``loss'' is the | |
| 5 | +teacher-forced cross-entropy on the answer span of the synthetic suite (nats per token), ``$b$'' a forced budget | |
| 6 | +applied to every position with uniformly random actions, and relative changes are with respect to the frozen | |
| 7 | +backbone (budget 0) of the same run. | |
| 8 | + | |
| 9 | +\subsection{Learnability and the bootstrap problem (Phase 4)}\label{sec:results-learnability} | |
| 10 | +With the readout initialised at zero, as prescribed, the editor did not learn at all in 700 steps on the frozen | |
| 11 | +2.1M-parameter backbone: validation loss was identical at every budget (0.4144, 0.4143, 0.4143, 0.4146, 0.4164) | |
| 12 | +and the trainable gradient norm stayed at 0.01--0.02. The cause is a scale mismatch: the backbone residual stream | |
| 13 | +has root-mean-square 5.6 while the difference of the two attention reads has root-mean-square 0.06, so $U$ must | |
| 14 | +grow by two orders of magnitude before any edit can move a logit, and until it does the editor receives no | |
| 15 | +gradient. Three remedies were compared under the identical recipe (Figure~\ref{fig:learnability}): the fixed | |
| 16 | +scale $s$ alone (zero $U$), $s$ with $U\sim\mathcal N(0,0.2^2)$, and $s$ with $U\sim\mathcal N(0,0.5^2)$. Only | |
| 17 | +the non-zero initialisations learned within 2,000 steps (dev-iid loss $-1.4\,\%$ at budgets 1--2 for | |
| 18 | +$\sigma=0.2$); with $\sigma=0.5$ the budget-8 loss was worse than the backbone throughout, and a learning rate | |
| 19 | +of $3\times10^{-3}$ with $w=128$ collapsed to inert edits (every budget exactly equal to budget 0, gradient | |
| 20 | +norm 0.00). The deliberate-overfitting test passed: on 64 items at budget 8 the frozen-backbone model reached a | |
| 21 | +training loss of 0.0024 in 200 steps through the workspace path alone while the held-out loss rose, confirming | |
| 22 | +that the gradient path and the capacity exist. Failure mode 13.1 of the proposal is therefore confirmed, and | |
| 23 | +$U\sim\mathcal N(0,0.2^2)$ with $s=\rms(H)$ is used for every adapter below, including the baselines. | |
| 24 | + | |
| 25 | +\begin{figure}[t]\centering | |
| 26 | +\includegraphics[width=\textwidth]{../results/figures/learnability_bootstrap.pdf} | |
| 27 | +\caption{Stage B bootstrap on the frozen tiny backbone (dev-iid answer-span loss under random forced actions, | |
| 28 | +budgets 0--8). Left: zero-initialised $U$ with the scale $s$; middle and right: $U\sim\mathcal N(0,\sigma^2)$ with | |
| 29 | +$\sigma=0.2$ and $0.5$. Budget 0 is the frozen backbone (identical in all panels).} | |
| 30 | +\label{fig:learnability} | |
| 31 | +\end{figure} | |
| 32 | + | |
| 33 | +\subsection{Sparse editor versus global recurrence and dense writes (H1, H2)}\label{sec:results-matrix} | |
| 34 | +Table~\ref{tab:seedmatrix} reports the pre-registered decisive comparison on the second tiny backbone | |
| 35 | +(5.6M parameters, char-level): \vtwoprismeseeds{} independent adapter seeds for the sparse editor, | |
| 36 | +\vtwogrseeds{} for the global-recurrence adapter and \vtwodenseseeds{} for the dense sixteen-slot editor, all | |
| 37 | +trained with the same forced-budget recipe for 3,000 steps. H1 is supported in its weak form: random sparse | |
| 38 | +edits reduce the held-out answer-span loss by \vtwoprismegainbone{}\,\% (budget 1), \vtwoprismegainbtwo{}\,\% | |
| 39 | +(budget 2) and \vtwoprismegainbfour{}\,\% (budget 4), with seed standard deviations below 0.002 nats, and | |
| 40 | +raise dev-iid exact match from \vtwoprismeembzero{}\,\% to \vtwoprismeembtwo{}\,\%. The effect is not | |
| 41 | +specific to sparse local writes, however: the global-recurrence adapter---one shared block rewriting the whole | |
| 42 | +latent, parameter-matched, same bootstrap---reduces the loss by \vtwogrgainbone{}\,\%, \vtwogrgainbtwo{}\,\% and | |
| 43 | +\vtwogrgainbfour{}\,\% at the same budgets and reaches \vtwogrembtwo{}\,\% exact match, i.e.\ it is at least as | |
| 44 | +good at every budget and better at budget 8, where the sparse editor's gain shrinks to \vtwoprismegainbeight{}\,\%. | |
| 45 | +Dense writes (Table~\ref{tab:seedmatrix}, third row) answer the second half of H2 directly. None of the | |
| 46 | +adapters improves the held-out template, depth or compose regimes by more than one point (H6). | |
| 47 | +\input{tables/seed_matrix.tex} | |
| 48 | + | |
| 49 | +\subsection{Oracle opportunity and the structure of intervention gains (Phase 5)}\label{sec:results-oracle} | |
| 50 | +Figure~\ref{fig:labels} and Table~\ref{tab:controller} summarise the counterfactual labels collected with the | |
| 51 | +fixed editor on a stream the editor never trained on (\labelstrainnstates{} and \labelscalibnstates{} exhaustive-audit | |
| 52 | +states in the training and calibration partitions). Three facts shape everything downstream. | |
| 53 | +First, the exhaustive one-step oracle finds real value: choosing the best of the 24 actions, or stopping when | |
| 54 | +none helps, gains \labelscaliboracle{} nats per state on calibration against \labelscalibrandom{} for a random | |
| 55 | +action; rolled out greedily on dev-iid it lowers the loss by \routingoraclebone{}\,\% with | |
| 56 | +\routingoracleeditsone{} edits per token at budget 1 and by \routingoraclebeight{}\,\% with | |
| 57 | +\routingoracleeditseight{} edits per token at budget 8 (Table~\ref{tab:routing}). The two-action oracle gains | |
| 58 | +\oracletwostep{} nats against \oracleonestep{} for one step, and ``greedy first action then best second'' recovers | |
| 59 | +almost all of it, so myopia of the one-step rule is not the binding constraint at this scale. | |
| 60 | +Second, most of the variance of the gains is between states, not between actions: \labelscalibwithin{}\,\% of | |
| 61 | +the variance of the audited gains is within-state (action identity), the rest is the state's mean gain; | |
| 62 | +\labelscaliballpos{}\,\% of states have all 24 actions positive and \labelscaliballneg{}\,\% have all 24 | |
| 63 | +negative. Decomposing the oracle, a perfect continue/stop decision with a random action captures | |
| 64 | +\labelscalibstoponly{} of the \labelscaliboracle{} nats; the choice of \emph{which} slot captures the rest. | |
| 65 | +Third, opportunity is concentrated where the backbone is uncertain and is dangerous there: in states above the | |
| 66 | +median base loss the oracle gains \labelscaliboraclehigh{} nats while a random action loses | |
| 67 | +\labelscalibrandomhigh{}; in the top decile of base loss the oracle gains \labelscalibtopdecoracle{} and a | |
| 68 | +random action loses \labelscalibtopdecrandom{} nats, with only \labelscalibfracposhigh{}\,\% of actions helpful | |
| 69 | +(\labelscalibfracposlow{}\,\% in the lower half, where all gains are negligible). | |
| 70 | + | |
| 71 | +\begin{figure}[t]\centering | |
| 72 | +\includegraphics[width=\textwidth]{../results/figures/labels_analysis.pdf} | |
| 73 | +\caption{Counterfactual labels (calibration partition, editor-unseen stream). Left: fraction of positive gains by | |
| 74 | +number of edits already applied. Middle: variance decomposition of the exhaustive 24-action audit. Right: mean | |
| 75 | +gain per state of a random action, of a perfect continue/stop decision with a random action, and of the | |
| 76 | +one-step oracle.} | |
| 77 | +\label{fig:labels} | |
| 78 | +\end{figure} | |
| 79 | + | |
| 80 | +\subsection{Learned routing versus reference routers (H2, H3)}\label{sec:results-routing} | |
| 81 | +Table~\ref{tab:routing} compares, on dev-iid with the same editor, the frozen backbone, random, round-robin and | |
| 82 | +fixed-pair schedules at budgets 1--8, entropy and norm-change routers over a threshold grid, the learned value | |
| 83 | +controller at its locked penalty and along a $\lambda$ grid, and the diagnostic oracles. Three results follow. | |
| 84 | +(i) Spatial selection does not matter for fixed schedules: at budget 1 random, round-robin and fixed-pair give | |
| 85 | +\routingrandombone{}, \routinguniformbone{} and \routingpairbone{}\,\% respectively, within the paired | |
| 86 | +bootstrap noise of one another; more edits hurt (\routingrandombeight{}\,\% at budget 8). H2 is not supported. | |
| 87 | +(ii) The learned controller is worse than not routing: at its calibration-selected penalty | |
| 88 | +($\lambda=\routingctrllambda$) it edits \routingctrlledits{} times per token and \emph{raises} the dev-iid loss by | |
| 89 | +\routingctrllocked{}\,\%; every smaller $\lambda$ is worse still, although the same controller had lowered the | |
| 90 | +calibration loss by 1.1\,\% (Table~\ref{tab:controller}). The reference routers do no better: the best entropy | |
| 91 | +threshold gives \routingentropybest{}\,\% and the best norm-change threshold \routingnormbest{}\,\%. H3 is | |
| 92 | +refuted at this scale. | |
| 93 | +(iii) The mechanism of the failure is visible in the labels. With backbone-residual and entropy features the | |
| 94 | +controller predicts the \emph{sign} of a gain with \ctrlhentsignacc{}\,\% accuracy (chance 50\,\%) and finds | |
| 95 | +the states with opportunity, which are the high-loss states; but in exactly those states a wrong action costs | |
| 96 | +more than the right action gains (\labelscalibtopdecrandom{} versus \labelscalibtopdecoracle{} nats in the top | |
| 97 | +decile), and the controller's ranking of actions within a state is close to chance (top-1 agreement with the | |
| 98 | +oracle 7--8\,\% against 4.2\,\% for a uniform guess; captured fraction of the oracle opportunity $\le 5\,\%$). | |
| 99 | +The pre-registered null ``an oracle can find beneficial edits, but the learned controller cannot predict | |
| 100 | +them'' is the outcome at this scale. | |
| 101 | +\input{tables/routing.tex} | |
| 102 | +\input{tables/controller.tex} | |
| 103 | + | |
| 104 | +\subsection{Token loss versus task success}\label{sec:results-reasoning} | |
| 105 | +Exact match of free greedy generation moves with the loss on dev-iid (Table~\ref{tab:seedmatrix}: $+1.8$ points | |
| 106 | +for the sparse editor at budget 2, $+2.3$ for global recurrence at budget 8, seed SD $\le 0.5$) but not on the | |
| 107 | +held-out regimes; per-family transitions are reported in Appendix~\ref{app:results}. No adapter turns the | |
| 108 | +held-out compose family from near zero (2--3\,\%) into anything else. | |
| 109 | + | |
| 110 | +\subsection{Latency and memory}\label{sec:results-latency} | |
| 111 | +Table~\ref{tab:latency} gives measured batch-1 and batch-8 decode latencies for the tiny model on the | |
| 112 | +development laptop (Apple M5 Max, fp32, PyTorch 2.15, MPS). Budget 0 costs \latencybzero{} ms per token; each | |
| 113 | +executed single-slot edit adds about 2.3 ms, so eight edits cost seven times the backbone although their | |
| 114 | +analytic operation count is only 4.2 times; the dense sixteen-slot write at budget 8 is \emph{not} slower than | |
| 115 | +eight sparse writes (17.3 vs 19.3 ms), and one controller evaluation adds 2.9 ms even when it stops immediately. | |
| 116 | +At this scale the per-action host dispatch and kernel-launch overhead dominates the arithmetic, exactly as the | |
| 117 | +proposal's failure mode 13.6 anticipated; Section~\ref{sec:results-pilot} repeats the measurement at 103M, where | |
| 118 | +the arithmetic is 60 times larger per token. | |
| 119 | +\input{tables/latency.tex} | |
| 120 | + | |
| 121 | +\subsection{The 103M pilot on web text (Phase 8)}\label{sec:results-pilot} | |
| 122 | +\input{sections/results_pilot} | |
| 123 | + | |
| 124 | +\subsection{Larger configurations} | |
| 125 | +The 459M and 1.18B configurations were instantiated on the meta device for exact parameter accounting | |
| 126 | +(Table~\ref{tab:configs}) and the 459M operation table was reproduced (Table~\ref{tab:ops}); neither was | |
| 127 | +trained. No scaling claim is made (H7 untested). | |
added
paper/sections/results_pilot.tex
+1 −0
@@ -0,0 +1 @@ | ||
| 1 | +% filled after the 103M pilot completes | |
modified
paper/tables/numbers.tex
+74 −16
@@ -2,20 +2,32 @@ | ||
| 2 | 2 | \newcommand{\costpair}{0.100} |
| 3 | 3 | \newcommand{\costsingle}{0.080} |
| 4 | 4 | \newcommand{\ctrlhentsignacc}{60.4} |
| 5 | −\newcommand{\labelscaliballneg}{30} | |
| 6 | −\newcommand{\labelscaliballpos}{38} | |
| 7 | −\newcommand{\labelscalibnstates}{1,308} | |
| 8 | −\newcommand{\labelscaliboracle}{0.0166} | |
| 9 | −\newcommand{\labelscalibrandom}{0.0004} | |
| 10 | −\newcommand{\labelscalibstoponly}{0.0098} | |
| 11 | −\newcommand{\labelscalibwithin}{11} | |
| 12 | −\newcommand{\labelstrainallneg}{29} | |
| 13 | −\newcommand{\labelstrainallpos}{37} | |
| 14 | −\newcommand{\labelstrainnstates}{4,778} | |
| 15 | −\newcommand{\labelstrainoracle}{0.0148} | |
| 16 | −\newcommand{\labelstrainrandom}{0.0049} | |
| 17 | −\newcommand{\labelstrainstoponly}{0.0083} | |
| 18 | −\newcommand{\labelstrainwithin}{14} | |
| 5 | +\newcommand{\labelscaliballneg}{31} | |
| 6 | +\newcommand{\labelscaliballpos}{34} | |
| 7 | +\newcommand{\labelscalibfracposhigh}{58} | |
| 8 | +\newcommand{\labelscalibfracposlow}{22} | |
| 9 | +\newcommand{\labelscalibnstates}{1,645} | |
| 10 | +\newcommand{\labelscaliboracle}{0.0136} | |
| 11 | +\newcommand{\labelscaliboraclehigh}{0.0272} | |
| 12 | +\newcommand{\labelscalibrandom}{-0.0014} | |
| 13 | +\newcommand{\labelscalibrandomhigh}{-0.0028} | |
| 14 | +\newcommand{\labelscalibstoponly}{0.0069} | |
| 15 | +\newcommand{\labelscalibtopdecoracle}{0.027} | |
| 16 | +\newcommand{\labelscalibtopdecrandom}{-0.041} | |
| 17 | +\newcommand{\labelscalibwithin}{25} | |
| 18 | +\newcommand{\labelstrainallneg}{32} | |
| 19 | +\newcommand{\labelstrainallpos}{34} | |
| 20 | +\newcommand{\labelstrainfracposhigh}{58} | |
| 21 | +\newcommand{\labelstrainfracposlow}{21} | |
| 22 | +\newcommand{\labelstrainnstates}{12,272} | |
| 23 | +\newcommand{\labelstrainoracle}{0.0139} | |
| 24 | +\newcommand{\labelstrainoraclehigh}{0.0279} | |
| 25 | +\newcommand{\labelstrainrandom}{0.0015} | |
| 26 | +\newcommand{\labelstrainrandomhigh}{+0.0030} | |
| 27 | +\newcommand{\labelstrainstoponly}{0.0077} | |
| 28 | +\newcommand{\labelstraintopdecoracle}{0.034} | |
| 29 | +\newcommand{\labelstraintopdecrandom}{-0.018} | |
| 30 | +\newcommand{\labelstrainwithin}{16} | |
| 19 | 31 | \newcommand{\latencybzero}{2.80} |
| 20 | 32 | \newcommand{\ntrainsynth}{23,005} |
| 21 | 33 | \newcommand{\oracleonestep}{0.0233} |
@@ -26,7 +38,53 @@ | ||
| 26 | 38 | \newcommand{\paramsMediumWs}{10,505,221} |
| 27 | 39 | \newcommand{\paramsSmallTotal}{102,134,021} |
| 28 | 40 | \newcommand{\paramsSmallWs}{2,631,173} |
| 29 | −\newcommand{\vtwogrgainbtwo}{4.13} | |
| 41 | +\newcommand{\routingbzero}{0.4334} | |
| 42 | +\newcommand{\routingctrllambda}{0.3} | |
| 43 | +\newcommand{\routingctrlledits}{0.22} | |
| 44 | +\newcommand{\routingctrllocked}{+1.0} | |
| 45 | +\newcommand{\routingentropybest}{+0.3} | |
| 46 | +\newcommand{\routingnormbest}{-0.6} | |
| 47 | +\newcommand{\routingoraclebeight}{-15.4} | |
| 48 | +\newcommand{\routingoraclebone}{-7.1} | |
| 49 | +\newcommand{\routingoracleeditseight}{2.27} | |
| 50 | +\newcommand{\routingoracleeditsone}{0.52} | |
| 51 | +\newcommand{\routingpairbeight}{+2.8} | |
| 52 | +\newcommand{\routingpairbone}{-0.7} | |
| 53 | +\newcommand{\routingpairbtwo}{-0.3} | |
| 54 | +\newcommand{\routingrandombeight}{+2.7} | |
| 55 | +\newcommand{\routingrandombone}{-0.7} | |
| 56 | +\newcommand{\routingrandombtwo}{-0.5} | |
| 57 | +\newcommand{\routinguniformbeight}{+0.6} | |
| 58 | +\newcommand{\routinguniformbone}{-0.8} | |
| 59 | +\newcommand{\routinguniformbtwo}{-0.7} | |
| 60 | +\newcommand{\vtwobestfixedrel}{-4.0} | |
| 61 | +\newcommand{\vtwobzeroloss}{0.4621} | |
| 62 | +\newcommand{\vtwoctrlbetter}{2} | |
| 63 | +\newcommand{\vtwoctrlrel}{+0.5} | |
| 64 | +\newcommand{\vtwoctrlrelsd}{1.1} | |
| 65 | +\newcommand{\vtwoctrlseeds}{4} | |
| 66 | +\newcommand{\vtwodenseembeight}{n/a} | |
| 67 | +\newcommand{\vtwodenseembtwo}{n/a} | |
| 68 | +\newcommand{\vtwodenseembzero}{n/a} | |
| 69 | +\newcommand{\vtwodensegainbeight}{n/a} | |
| 70 | +\newcommand{\vtwodensegainbfour}{n/a} | |
| 71 | +\newcommand{\vtwodensegainbone}{n/a} | |
| 72 | +\newcommand{\vtwodensegainbtwo}{n/a} | |
| 73 | +\newcommand{\vtwodenseseeds}{0} | |
| 74 | +\newcommand{\vtwogrembeight}{40.0} | |
| 75 | +\newcommand{\vtwogrembtwo}{39.6} | |
| 76 | +\newcommand{\vtwogrembzero}{37.7} | |
| 77 | +\newcommand{\vtwogrgainbeight}{3.6} | |
| 78 | +\newcommand{\vtwogrgainbfour}{3.9} | |
| 79 | +\newcommand{\vtwogrgainbone}{3.7} | |
| 80 | +\newcommand{\vtwogrgainbtwo}{4.1} | |
| 30 | 81 | \newcommand{\vtwogrseeds}{4} |
| 31 | −\newcommand{\vtwoprismegainbtwo}{2.77} | |
| 82 | +\newcommand{\vtwooraclerel}{-15.0} | |
| 83 | +\newcommand{\vtwoprismeembeight}{39.2} | |
| 84 | +\newcommand{\vtwoprismeembtwo}{39.5} | |
| 85 | +\newcommand{\vtwoprismeembzero}{37.7} | |
| 86 | +\newcommand{\vtwoprismegainbeight}{1.0} | |
| 87 | +\newcommand{\vtwoprismegainbfour}{3.0} | |
| 88 | +\newcommand{\vtwoprismegainbone}{2.1} | |
| 89 | +\newcommand{\vtwoprismegainbtwo}{2.8} | |
| 32 | 90 | \newcommand{\vtwoprismeseeds}{4} |
added
paper/tables/routing_seeds.tex
+14 −0
@@ -0,0 +1,14 @@ | ||
| 1 | +\begin{table}[t]\centering\small | |
| 2 | +\caption{Learned routing per adapter seed (v2 backbone, dev-iid, 640 items): held-out answer-span loss of the | |
| 3 | +frozen backbone, of the best fixed schedule (named), of the best entropy and norm routers, of the locked | |
| 4 | +controller ($\lambda,\kappa$ selected on calibration rollouts; edits per token in parentheses), and of the | |
| 5 | +diagnostic greedy one-step oracle at budget 8. Calibration sign accuracy and captured fraction of the oracle | |
| 6 | +opportunity for each controller.} | |
| 7 | +\label{tab:routingseeds} | |
| 8 | +\begin{tabular}{lrlrrrrrr}\toprule | |
| 9 | +seed & budget 0 & best fixed & entropy & norm & controller (edits) & oracle b=8 (edits) & sign acc. & captured\\\midrule | |
| 10 | +2 & 0.4966 & 0.4754 (random forced b=4) & 0.4799 & 0.4794 & 0.4965 (0.05) & 0.4114 (1.90) & 0.413 & +0.333\\ | |
| 11 | +3 & 0.4966 & 0.4775 (uniform b=8) & 0.4825 & 0.4814 & 0.5074 (4.32) & 0.4242 (1.84) & 0.504 & +0.305\\ | |
| 12 | +4 & 0.4966 & 0.4762 (uniform b=8) & 0.4795 & 0.4790 & 0.4974 (0.17) & 0.4251 (2.19) & 0.633 & +0.521\\ | |
| 13 | +5 & 0.4966 & 0.4768 (random forced b=4) & 0.4833 & 0.4830 & 0.4949 (0.16) & 0.4277 (2.02) & 0.572 & +0.300\\ | |
| 14 | +\bottomrule\end{tabular}\end{table} | |
added
reproducibility/data_card.md
+24 −0
@@ -0,0 +1,24 @@ | ||
| 1 | +# Data card — WP31 | |
| 2 | + | |
| 3 | +## Synthetic compositional suite v1 (`data/splits/synthetic_v1/`) | |
| 4 | +Generated deterministically by `data/generators/synthetic.py` (SHA-256 per split in `manifest.json`). Six | |
| 5 | +families with programmatic answers (arith, bind, fsm, excl, sched; compose held out), five phrasing templates, | |
| 6 | +depths 1–6. Splits fixed before sampling by (family, template, depth, seed): train (seed 1, templates 0–2, | |
| 7 | +depths 1–4; 23,005 items after duplicate removal), calib (seed 3; 1,690), ctrl_train (seed 4, controller labels | |
| 8 | +only; 11,030), dev_{iid,template,depth,compose} (seed 2), test_{iid,template,depth,compose} (seed 9, LOCKED — | |
| 9 | +not read by any script until `protocol/locked_test_manifest.json` is unsealed). Cross-split exact duplicates are | |
| 10 | +dropped from the later split and counted. Character-level tokenizer (97 printable ASCII + 2 specials). | |
| 11 | + | |
| 12 | +## FineWeb-Edu subset (`data/processed/fineweb_edu_300m/`) | |
| 13 | +Source: `HuggingFaceFW/fineweb-edu`, config `sample-10BT`, streamed in canonical shard order on 2026-10-29 | |
| 14 | +(291,534 documents streamed, truncated to 40,000 characters each); licence ODC-By 1.0 (attribution: Penedo et | |
| 15 | +al., 2024). Exact-hash deduplication; train/val/test by content hash (98/1/1 %): 289,959,006 / 2,913,824 / | |
| 16 | +2,883,436 tokens (uint16, EOT-separated). Tokenizer: byte-level BPE, 32,768 symbols, digits split individually, | |
| 17 | +trained on 60,000 train documents (`tokenizer.json`, SHA-256 in manifest). Test split locked. The raw text | |
| 18 | +(`data/raw/`) and token files are not redistributed; `prepare_corpus.py` regenerates them. | |
| 19 | + | |
| 20 | +## Counterfactual label sets | |
| 21 | +`experiments/runs/labels_*/labels_{train,calib}.pt`: per batch, tokens, targets, prefix actions, four logged | |
| 22 | +candidate actions with gains and log-propensities, exhaustive 24-action gains on audit batches, and the SHA-256 | |
| 23 | +of the editor checkpoint that produced them. Train partition = `ctrl_train` stream (editor-unseen; the first | |
| 24 | +tiny set used `train`, see D11), calibration partition = `calib`. | |
added
reproducibility/model_card.md
+12 −0
@@ -0,0 +1,12 @@ | ||
| 1 | +# Model card — PRISME reference models (WP31) | |
| 2 | + | |
| 3 | +| Field | Value | | |
| 4 | +|---|---| | |
| 5 | +| Models | PRISME-tiny (2.1M / 5.6M char-level synthetic backbones + 0.17M adapters), PRISME-103M (99.5M backbone + 2.63M workspace/controller). 459M and 1.18B: configuration files and meta-device instantiation only (not trained). | | |
| 6 | +| Architecture | Pre-norm causal decoder (RMSNorm, RoPE, GQA, SwiGLU, tied embeddings) + read-only source bank + 16-slot ephemeral workspace + shared 2-block sparse editor (24 actions + STOP, cap 8) + value controller + differential readout (`docs/architecture_spec.md`). | | |
| 7 | +| Training data | tiny: synthetic suite v1 train split (23,005 items); 103M: FineWeb-Edu sample-10BT subset, 196.6M tokens (`data/processed/fineweb_edu_300m/manifest.json`). | | |
| 8 | +| Intended use | Research artefact for reproducing the WP31 experiments. Not a general-purpose language model; the 103M backbone saw two tokens per parameter. | | |
| 9 | +| Out of scope | Any deployment; generation of text for end users; evaluation on benchmarks it was not pre-registered for. | | |
| 10 | +| Known limitations | Frozen-backbone adapters; learned routing is worse than no routing on held-out synthetic data (negative result); bank memory grows linearly with context. | | |
| 11 | +| Checkpoints | `experiments/runs/<run_id>/checkpoint/{model.safetensors, checkpoint.json}` on the node that trained them (run index in `reproducibility/run_index.md`); laptop copies for the tiny models. Weights SHA-256 in each `checkpoint.json`. | | |
| 12 | +| Licence | Code MIT; weights CC BY 4.0; corpus-derived artefacts inherit ODC-By 1.0 attribution. | | |
added
reproducibility/run_index.md
+39 −0
@@ -0,0 +1,39 @@ | ||
| 1 | +# Run index (auto-generated by scripts/run_index.py) | |
| 2 | + | |
| 3 | +| run_id | state | host | device | wall s | train tokens | peak mem (GB) | commit | notes | | |
| 4 | +|---|---|---|---|---|---|---|---|---| | |
| 5 | +| controller_mini_seed01_20261030005154 | completed | laptop | cpu | 3.14 | | | ede67055 | | | |
| 6 | +| controller_p4_hent_seed01_20261030001419 | running | laptop | mps | 0.02 | | | unknown | | | |
| 7 | +| controller_p4_hent_seed01_20261030002015 | completed | laptop | mps | 584.36 | | | unknown | | | |
| 8 | +| controller_v1ctrl_seed01_20261030004131 | completed | laptop | mps | 164.25 | | | 33298d96 | | | |
| 9 | +| controller_v2s2_seed01_20261030004717 | completed | laptop | mps | 193.23 | | | unknown | | | |
| 10 | +| controller_v2s3_seed01_20261030004720 | completed | laptop | mps | 197.97 | | | unknown | | | |
| 11 | +| controller_v2s4_seed01_20261030004719 | completed | laptop | mps | 217.1 | | | unknown | | | |
| 12 | +| controller_v2s5_seed01_20261030004719 | completed | laptop | mps | 214.63 | | | unknown | | | |
| 13 | +| labels_mini_seed01_20261030005150 | completed | laptop | cpu | 3.44 | | | ede67055 | | | |
| 14 | +| labels_p4_seed01_20261030000543 | completed | laptop | mps | 33.33 | | | unknown | | | |
| 15 | +| labels_v1ctrl_seed01_20261030003957 | running | laptop | mps | 0.02 | | | 33298d96 | | | |
| 16 | +| labels_v1ctrl_seed01_20261030004018 | completed | laptop | mps | 72.1 | | | 33298d96 | | | |
| 17 | +| labels_v2s2_seed01_20261030004543 | completed | laptop | mps | 92.45 | | | unknown | | | |
| 18 | +| labels_v2s3_seed01_20261030004544 | completed | laptop | mps | 95.57 | | | unknown | | | |
| 19 | +| labels_v2s4_seed01_20261030004544 | completed | laptop | mps | 94.03 | | | unknown | | | |
| 20 | +| labels_v2s5_seed01_20261030004544 | completed | laptop | mps | 94.68 | | | unknown | | | |
| 21 | +| mini_backbone_seed01_20261030005114 | completed | laptop | cpu | 3.6 | 279708 | 0.7 | ede67055 | backbone_only | | |
| 22 | +| mini_editor_seed01_20261030005118 | completed | laptop | cpu | 30.59 | 9847 | 2.0 | ede67055 | prisme | | |
| 23 | +| p4_editor_v1_Ustd02_seed01_20261029235050 | completed | laptop | mps | 650.11 | 331026 | 8.8 | unknown | prisme | | |
| 24 | +| p4_editor_v1_scaled_seed01_20261029234334 | running | laptop | mps | 0.16 | | | HEAD | prisme | | |
| 25 | +| p4_editor_v1_seed01_20261029233624 | running | laptop | mps | 0.02 | | | HEAD | prisme | | |
| 26 | +| p4_overfit64_b8_seed01_20261029235111 | completed | laptop | mps | 519.6 | 95773 | 6.7 | a9d94e8a | prisme | | |
| 27 | +| p4_tiny_backbone_seed01_20261029232626 | completed | laptop | mps | 457.67 | 44367329 | 3.4 | HEAD | backbone_only | | |
| 28 | +| p4_tiny_backbone_v2_seed01_20261029233624 | stopped_overfitting_step9300_checkpoint_step5000_used | laptop | mps | 0.02 | | | HEAD | backbone_only | | |
| 29 | +| p4v2_dense_seed05_20261030001839 | running | M4BP36 | mps | 0.33 | | | unknown | dense | | |
| 30 | +| p4v2_gr_seed02_20261030001749 | completed | laptop | mps | 951.12 | 498543 | 3.4 | unknown | global_recurrence | | |
| 31 | +| p4v2_gr_seed03_20261030001749 | completed | laptop | mps | 915.78 | 499017 | 2.3 | unknown | global_recurrence | | |
| 32 | +| p4v2_gr_seed04_20261030001749 | completed | laptop | mps | 430.63 | 497821 | 2.3 | unknown | global_recurrence | | |
| 33 | +| p4v2_gr_seed05_20261030001839 | completed | laptop | mps | 370.27 | 497078 | 3.4 | unknown | global_recurrence | | |
| 34 | +| p4v2_prisme_seed02_20261030001749 | completed | laptop | mps | 1529.74 | 498543 | 8.8 | unknown | prisme | | |
| 35 | +| p4v2_prisme_seed03_20261030001749 | completed | laptop | mps | 1578.01 | 499017 | 10.0 | unknown | prisme | | |
| 36 | +| p4v2_prisme_seed04_20261030001749 | completed | laptop | mps | 1504.41 | 497821 | 9.3 | unknown | prisme | | |
| 37 | +| p4v2_prisme_seed05_20261030001839 | completed | laptop | mps | 939.64 | 497078 | 9.9 | unknown | prisme | | |
| 38 | +| pretrain103m_seed01_20261029232706 | running | M3U96a | mps | 0.03 | | | unknown | | | |
| 39 | +| pretrain_enlarged102m_seed01_20261029232914 | running | M3U96b | mps | 0.02 | | | unknown | | | |
added
results/analyzed/routing_seeds_v2.json
+66 −0
@@ -0,0 +1,66 @@ | ||
| 1 | +[ | |
| 2 | + { | |
| 3 | + "seed": "2", | |
| 4 | + "b0": 0.49655490497905047, | |
| 5 | + "best_fixed": 0.4753802631345799, | |
| 6 | + "best_fixed_name": "random forced b=4", | |
| 7 | + "entropy": 0.4798940176289787, | |
| 8 | + "norm": 0.47936704432995725, | |
| 9 | + "ctrl": 0.49651632708068616, | |
| 10 | + "ctrl_edits": 0.04975124378109453, | |
| 11 | + "ctrl_lam": 0.3, | |
| 12 | + "ctrl_kap": 0.5, | |
| 13 | + "oracle8": 0.4114027855772337, | |
| 14 | + "oracle8_edits": 1.901990811638591, | |
| 15 | + "sign_acc": 0.412654183385347, | |
| 16 | + "captured": 0.3325693091809977 | |
| 17 | + }, | |
| 18 | + { | |
| 19 | + "seed": "3", | |
| 20 | + "b0": 0.49655490497905047, | |
| 21 | + "best_fixed": 0.47754792271213015, | |
| 22 | + "best_fixed_name": "uniform b=8", | |
| 23 | + "entropy": 0.4825179937606602, | |
| 24 | + "norm": 0.4814451017817943, | |
| 25 | + "ctrl": 0.5073574809676414, | |
| 26 | + "ctrl_edits": 4.320456540825285, | |
| 27 | + "ctrl_lam": 0.3, | |
| 28 | + "ctrl_kap": 0.0, | |
| 29 | + "oracle8": 0.42422473375866643, | |
| 30 | + "oracle8_edits": 1.8376722817764166, | |
| 31 | + "sign_acc": 0.5044954673799971, | |
| 32 | + "captured": 0.30502896495875775 | |
| 33 | + }, | |
| 34 | + { | |
| 35 | + "seed": "4", | |
| 36 | + "b0": 0.49655490497905047, | |
| 37 | + "best_fixed": 0.47621813565623455, | |
| 38 | + "best_fixed_name": "uniform b=8", | |
| 39 | + "entropy": 0.47952548600024636, | |
| 40 | + "norm": 0.4789865899581396, | |
| 41 | + "ctrl": 0.4974173310558664, | |
| 42 | + "ctrl_edits": 0.17295873573309922, | |
| 43 | + "ctrl_lam": 0.3, | |
| 44 | + "ctrl_kap": 0.5, | |
| 45 | + "oracle8": 0.4251479284686662, | |
| 46 | + "oracle8_edits": 2.1929555895865236, | |
| 47 | + "sign_acc": 0.6326348640213999, | |
| 48 | + "captured": 0.52111062235297 | |
| 49 | + }, | |
| 50 | + { | |
| 51 | + "seed": "5", | |
| 52 | + "b0": 0.49655490497905047, | |
| 53 | + "best_fixed": 0.47676382659295863, | |
| 54 | + "best_fixed_name": "random forced b=4", | |
| 55 | + "entropy": 0.4832980625106816, | |
| 56 | + "norm": 0.4829900508252089, | |
| 57 | + "ctrl": 0.4949139250905185, | |
| 58 | + "ctrl_edits": 0.16417910447761194, | |
| 59 | + "ctrl_lam": 0.3, | |
| 60 | + "ctrl_kap": 0.5, | |
| 61 | + "oracle8": 0.42770675203519065, | |
| 62 | + "oracle8_edits": 2.021439509954058, | |
| 63 | + "sign_acc": 0.5724847674245802, | |
| 64 | + "captured": 0.29970467810978474 | |
| 65 | + } | |
| 66 | +] | |
| \ No newline at end of file | ||
added
results/raw/routing_mini.json
+130 −0
@@ -0,0 +1,130 @@ | ||
| 1 | +{ | |
| 2 | + "config": "configs/experiments/routing_mini.yaml", | |
| 3 | + "checkpoint": "experiments/runs/controller_mini_seed01_20261030005154/checkpoint", | |
| 4 | + "checkpoint_sha256": "bb56e9c7b34c773d7cb314b50da687d910b37fa126243f4cfbe9b36c931da83e", | |
| 5 | + "split": "dev_iid", | |
| 6 | + "code_commit": "ede6705574e7140bdc16eff11931815070b471d1", | |
| 7 | + "device": "cpu", | |
| 8 | + "seconds": 10.8, | |
| 9 | + "records": [ | |
| 10 | + { | |
| 11 | + "policy": "budget0", | |
| 12 | + "loss": 2.3909947187051004, | |
| 13 | + "edits_per_token": 0.0, | |
| 14 | + "extra_ops_ratio": 0.0, | |
| 15 | + "n_tokens": 174 | |
| 16 | + }, | |
| 17 | + { | |
| 18 | + "policy": "random_forced", | |
| 19 | + "budget": 1, | |
| 20 | + "loss": 2.177954575111126, | |
| 21 | + "edits_per_token": 1.0, | |
| 22 | + "extra_ops_ratio": 0.6340132088496767, | |
| 23 | + "n_tokens": 174 | |
| 24 | + }, | |
| 25 | + { | |
| 26 | + "policy": "uniform", | |
| 27 | + "budget": 1, | |
| 28 | + "loss": 2.187390908427622, | |
| 29 | + "edits_per_token": 1.0, | |
| 30 | + "extra_ops_ratio": 0.5180141843598465, | |
| 31 | + "n_tokens": 174 | |
| 32 | + }, | |
| 33 | + { | |
| 34 | + "policy": "fixed_pair", | |
| 35 | + "budget": 1, | |
| 36 | + "loss": 2.1671100484913794, | |
| 37 | + "edits_per_token": 1.0, | |
| 38 | + "extra_ops_ratio": 0.7239716190031205, | |
| 39 | + "n_tokens": 174 | |
| 40 | + }, | |
| 41 | + { | |
| 42 | + "policy": "random_forced", | |
| 43 | + "budget": 2, | |
| 44 | + "loss": 2.145720470910785, | |
| 45 | + "edits_per_token": 2.0, | |
| 46 | + "extra_ops_ratio": 1.2502715012122845, | |
| 47 | + "n_tokens": 174 | |
| 48 | + }, | |
| 49 | + { | |
| 50 | + "policy": "uniform", | |
| 51 | + "budget": 2, | |
| 52 | + "loss": 2.167156175635327, | |
| 53 | + "edits_per_token": 2.0, | |
| 54 | + "extra_ops_ratio": 1.036028368719693, | |
| 55 | + "n_tokens": 174 | |
| 56 | + }, | |
| 57 | + { | |
| 58 | + "policy": "fixed_pair", | |
| 59 | + "budget": 2, | |
| 60 | + "loss": 2.1463586215315194, | |
| 61 | + "edits_per_token": 2.0, | |
| 62 | + "extra_ops_ratio": 1.447943238006241, | |
| 63 | + "n_tokens": 174 | |
| 64 | + }, | |
| 65 | + { | |
| 66 | + "policy": "entropy", | |
| 67 | + "threshold": 1.0, | |
| 68 | + "budget": 2, | |
| 69 | + "loss": 2.147084027871318, | |
| 70 | + "edits_per_token": 1.632183908045977, | |
| 71 | + "extra_ops_ratio": 0.9839830727412783, | |
| 72 | + "n_tokens": 174 | |
| 73 | + }, | |
| 74 | + { | |
| 75 | + "policy": "norm", | |
| 76 | + "threshold": 0.1, | |
| 77 | + "budget": 2, | |
| 78 | + "loss": 2.149580155295887, | |
| 79 | + "edits_per_token": 1.9885057471264367, | |
| 80 | + "extra_ops_ratio": 1.194603536320829, | |
| 81 | + "n_tokens": 174 | |
| 82 | + }, | |
| 83 | + { | |
| 84 | + "policy": "controller_locked", | |
| 85 | + "lam": 0.3, | |
| 86 | + "kap": 0.0, | |
| 87 | + "budget": 2, | |
| 88 | + "loss": 2.3621927897135415, | |
| 89 | + "edits_per_token": 0.06896551724137931, | |
| 90 | + "extra_ops_ratio": 0.03572511535951461, | |
| 91 | + "n_tokens": 174 | |
| 92 | + }, | |
| 93 | + { | |
| 94 | + "policy": "controller", | |
| 95 | + "lam": 0.0, | |
| 96 | + "kap": 0.0, | |
| 97 | + "budget": 2, | |
| 98 | + "loss": 2.1407089233398438, | |
| 99 | + "edits_per_token": 1.5344827586206897, | |
| 100 | + "extra_ops_ratio": 0.8812912908093683, | |
| 101 | + "n_tokens": 174 | |
| 102 | + }, | |
| 103 | + { | |
| 104 | + "policy": "oracle1_greedy", | |
| 105 | + "budget": 1, | |
| 106 | + "diagnostic": true, | |
| 107 | + "loss": 2.1457042020909927, | |
| 108 | + "edits_per_token": 0.6470588235294118, | |
| 109 | + "extra_ops_ratio": 0.4587601156795726, | |
| 110 | + "n_tokens": 85 | |
| 111 | + }, | |
| 112 | + { | |
| 113 | + "policy": "oracle1_greedy", | |
| 114 | + "budget": 2, | |
| 115 | + "diagnostic": true, | |
| 116 | + "loss": 1.9766888786764707, | |
| 117 | + "edits_per_token": 1.2470588235294118, | |
| 118 | + "extra_ops_ratio": 0.854374605066636, | |
| 119 | + "n_tokens": 85 | |
| 120 | + }, | |
| 121 | + { | |
| 122 | + "policy": "oracle_two_step", | |
| 123 | + "diagnostic": true, | |
| 124 | + "one_step_gain": 0.25905925526338464, | |
| 125 | + "two_step_gain": 0.429955561020795, | |
| 126 | + "greedy_then_best_gain": 0.42805216172162225, | |
| 127 | + "n_tokens": 85 | |
| 128 | + } | |
| 129 | + ] | |
| 130 | +} | |
| \ No newline at end of file | ||
added
results/raw/routing_v2s2.json
+290 −0
@@ -0,0 +1,290 @@ | ||
| 1 | +{ | |
| 2 | + "config": "configs/experiments/routing_v2s2.yaml", | |
| 3 | + "checkpoint": "experiments/runs/controller_v2s2_seed01_20261030004717/checkpoint", | |
| 4 | + "checkpoint_sha256": "809bef042a202eb089b8c2860bdd01a30faec25414290983bc7de06b17c27445", | |
| 5 | + "split": "dev_iid", | |
| 6 | + "code_commit": "unknown", | |
| 7 | + "device": "mps", | |
| 8 | + "seconds": 105.7, | |
| 9 | + "records": [ | |
| 10 | + { | |
| 11 | + "policy": "budget0", | |
| 12 | + "loss": 0.49655490497905047, | |
| 13 | + "edits_per_token": 0.0, | |
| 14 | + "extra_ops_ratio": 0.0, | |
| 15 | + "n_tokens": 3417 | |
| 16 | + }, | |
| 17 | + { | |
| 18 | + "policy": "random_forced", | |
| 19 | + "budget": 1, | |
| 20 | + "loss": 0.4831837201139402, | |
| 21 | + "edits_per_token": 1.0, | |
| 22 | + "extra_ops_ratio": 0.12365152489067972, | |
| 23 | + "n_tokens": 3417 | |
| 24 | + }, | |
| 25 | + { | |
| 26 | + "policy": "uniform", | |
| 27 | + "budget": 1, | |
| 28 | + "loss": 0.4852022428347906, | |
| 29 | + "edits_per_token": 1.0, | |
| 30 | + "extra_ops_ratio": 0.10679070643245528, | |
| 31 | + "n_tokens": 3417 | |
| 32 | + }, | |
| 33 | + { | |
| 34 | + "policy": "fixed_pair", | |
| 35 | + "budget": 1, | |
| 36 | + "loss": 0.4811227489780675, | |
| 37 | + "edits_per_token": 1.0, | |
| 38 | + "extra_ops_ratio": 0.14036496061660547, | |
| 39 | + "n_tokens": 3417 | |
| 40 | + }, | |
| 41 | + { | |
| 42 | + "policy": "random_forced", | |
| 43 | + "budget": 2, | |
| 44 | + "loss": 0.47896477127410114, | |
| 45 | + "edits_per_token": 2.0, | |
| 46 | + "extra_ops_ratio": 0.24747007926514458, | |
| 47 | + "n_tokens": 3417 | |
| 48 | + }, | |
| 49 | + { | |
| 50 | + "policy": "uniform", | |
| 51 | + "budget": 2, | |
| 52 | + "loss": 0.48111633086434785, | |
| 53 | + "edits_per_token": 2.0, | |
| 54 | + "extra_ops_ratio": 0.21358141286491056, | |
| 55 | + "n_tokens": 3417 | |
| 56 | + }, | |
| 57 | + { | |
| 58 | + "policy": "fixed_pair", | |
| 59 | + "budget": 2, | |
| 60 | + "loss": 0.47664317939586376, | |
| 61 | + "edits_per_token": 2.0, | |
| 62 | + "extra_ops_ratio": 0.28072992123321094, | |
| 63 | + "n_tokens": 3417 | |
| 64 | + }, | |
| 65 | + { | |
| 66 | + "policy": "random_forced", | |
| 67 | + "budget": 4, | |
| 68 | + "loss": 0.4753802631345799, | |
| 69 | + "edits_per_token": 4.0, | |
| 70 | + "extra_ops_ratio": 0.4947927651923059, | |
| 71 | + "n_tokens": 3417 | |
| 72 | + }, | |
| 73 | + { | |
| 74 | + "policy": "uniform", | |
| 75 | + "budget": 4, | |
| 76 | + "loss": 0.47664435718504, | |
| 77 | + "edits_per_token": 4.0, | |
| 78 | + "extra_ops_ratio": 0.4271628257298211, | |
| 79 | + "n_tokens": 3417 | |
| 80 | + }, | |
| 81 | + { | |
| 82 | + "policy": "fixed_pair", | |
| 83 | + "budget": 4, | |
| 84 | + "loss": 0.47572590183507013, | |
| 85 | + "edits_per_token": 4.0, | |
| 86 | + "extra_ops_ratio": 0.5614598424664219, | |
| 87 | + "n_tokens": 3417 | |
| 88 | + }, | |
| 89 | + { | |
| 90 | + "policy": "random_forced", | |
| 91 | + "budget": 8, | |
| 92 | + "loss": 0.48148822309958994, | |
| 93 | + "edits_per_token": 8.0, | |
| 94 | + "extra_ops_ratio": 0.9892416248762507, | |
| 95 | + "n_tokens": 3417 | |
| 96 | + }, | |
| 97 | + { | |
| 98 | + "policy": "uniform", | |
| 99 | + "budget": 8, | |
| 100 | + "loss": 0.47571506701193955, | |
| 101 | + "edits_per_token": 8.0, | |
| 102 | + "extra_ops_ratio": 0.8543256514596422, | |
| 103 | + "n_tokens": 3417 | |
| 104 | + }, | |
| 105 | + { | |
| 106 | + "policy": "fixed_pair", | |
| 107 | + "budget": 8, | |
| 108 | + "loss": 0.4938548623660799, | |
| 109 | + "edits_per_token": 8.0, | |
| 110 | + "extra_ops_ratio": 1.1229196849328438, | |
| 111 | + "n_tokens": 3417 | |
| 112 | + }, | |
| 113 | + { | |
| 114 | + "policy": "entropy", | |
| 115 | + "threshold": 0.1, | |
| 116 | + "budget": 8, | |
| 117 | + "loss": 0.4798940176289787, | |
| 118 | + "edits_per_token": 3.061164764413228, | |
| 119 | + "extra_ops_ratio": 0.3613428428991517, | |
| 120 | + "n_tokens": 3417 | |
| 121 | + }, | |
| 122 | + { | |
| 123 | + "policy": "entropy", | |
| 124 | + "threshold": 0.5, | |
| 125 | + "budget": 8, | |
| 126 | + "loss": 0.4841544067856161, | |
| 127 | + "edits_per_token": 2.4073748902546095, | |
| 128 | + "extra_ops_ratio": 0.2838601465981572, | |
| 129 | + "n_tokens": 3417 | |
| 130 | + }, | |
| 131 | + { | |
| 132 | + "policy": "entropy", | |
| 133 | + "threshold": 1.0, | |
| 134 | + "budget": 8, | |
| 135 | + "loss": 0.488897707645817, | |
| 136 | + "edits_per_token": 1.6037459760023411, | |
| 137 | + "extra_ops_ratio": 0.18934435955362428, | |
| 138 | + "n_tokens": 3417 | |
| 139 | + }, | |
| 140 | + { | |
| 141 | + "policy": "entropy", | |
| 142 | + "threshold": 2.0, | |
| 143 | + "budget": 8, | |
| 144 | + "loss": 0.496987484057535, | |
| 145 | + "edits_per_token": 0.5010242903131402, | |
| 146 | + "extra_ops_ratio": 0.058859715379397354, | |
| 147 | + "n_tokens": 3417 | |
| 148 | + }, | |
| 149 | + { | |
| 150 | + "policy": "norm", | |
| 151 | + "threshold": 0.02, | |
| 152 | + "budget": 8, | |
| 153 | + "loss": 0.47970660932237796, | |
| 154 | + "edits_per_token": 8.0, | |
| 155 | + "extra_ops_ratio": 0.9450654991893417, | |
| 156 | + "n_tokens": 3417 | |
| 157 | + }, | |
| 158 | + { | |
| 159 | + "policy": "norm", | |
| 160 | + "threshold": 0.05, | |
| 161 | + "budget": 8, | |
| 162 | + "loss": 0.47970660039127516, | |
| 163 | + "edits_per_token": 7.997951419373719, | |
| 164 | + "extra_ops_ratio": 0.9448172524898486, | |
| 165 | + "n_tokens": 3417 | |
| 166 | + }, | |
| 167 | + { | |
| 168 | + "policy": "norm", | |
| 169 | + "threshold": 0.1, | |
| 170 | + "budget": 8, | |
| 171 | + "loss": 0.47936704432995725, | |
| 172 | + "edits_per_token": 6.377816798361136, | |
| 173 | + "extra_ops_ratio": 0.753752230900158, | |
| 174 | + "n_tokens": 3417 | |
| 175 | + }, | |
| 176 | + { | |
| 177 | + "policy": "norm", | |
| 178 | + "threshold": 0.2, | |
| 179 | + "budget": 8, | |
| 180 | + "loss": 0.48473219108190807, | |
| 181 | + "edits_per_token": 1.1668129938542582, | |
| 182 | + "extra_ops_ratio": 0.13837052173073053, | |
| 183 | + "n_tokens": 3417 | |
| 184 | + }, | |
| 185 | + { | |
| 186 | + "policy": "controller_locked", | |
| 187 | + "lam": 0.3, | |
| 188 | + "kap": 0.5, | |
| 189 | + "budget": 8, | |
| 190 | + "loss": 0.49651632708068616, | |
| 191 | + "edits_per_token": 0.04975124378109453, | |
| 192 | + "extra_ops_ratio": 0.00531297000896383, | |
| 193 | + "n_tokens": 3417 | |
| 194 | + }, | |
| 195 | + { | |
| 196 | + "policy": "controller", | |
| 197 | + "lam": 0.0, | |
| 198 | + "kap": 0.5, | |
| 199 | + "budget": 8, | |
| 200 | + "loss": 0.49630304648578255, | |
| 201 | + "edits_per_token": 3.9692712906057945, | |
| 202 | + "extra_ops_ratio": 0.49822215235718237, | |
| 203 | + "n_tokens": 3417 | |
| 204 | + }, | |
| 205 | + { | |
| 206 | + "policy": "controller", | |
| 207 | + "lam": 0.01, | |
| 208 | + "kap": 0.5, | |
| 209 | + "budget": 8, | |
| 210 | + "loss": 0.4964349499424194, | |
| 211 | + "edits_per_token": 3.790166812993854, | |
| 212 | + "extra_ops_ratio": 0.4734850139132291, | |
| 213 | + "n_tokens": 3417 | |
| 214 | + }, | |
| 215 | + { | |
| 216 | + "policy": "controller", | |
| 217 | + "lam": 0.03, | |
| 218 | + "kap": 0.5, | |
| 219 | + "budget": 8, | |
| 220 | + "loss": 0.49541911905817304, | |
| 221 | + "edits_per_token": 3.1782265144863917, | |
| 222 | + "extra_ops_ratio": 0.3877669019869346, | |
| 223 | + "n_tokens": 3417 | |
| 224 | + }, | |
| 225 | + { | |
| 226 | + "policy": "controller", | |
| 227 | + "lam": 0.1, | |
| 228 | + "kap": 0.5, | |
| 229 | + "budget": 8, | |
| 230 | + "loss": 0.4955693898858262, | |
| 231 | + "edits_per_token": 1.3002633889376647, | |
| 232 | + "extra_ops_ratio": 0.14320879928682645, | |
| 233 | + "n_tokens": 3417 | |
| 234 | + }, | |
| 235 | + { | |
| 236 | + "policy": "controller", | |
| 237 | + "lam": 0.3, | |
| 238 | + "kap": 0.5, | |
| 239 | + "budget": 8, | |
| 240 | + "loss": 0.49651632708068616, | |
| 241 | + "edits_per_token": 0.04975124378109453, | |
| 242 | + "extra_ops_ratio": 0.00531297000896383, | |
| 243 | + "n_tokens": 3417 | |
| 244 | + }, | |
| 245 | + { | |
| 246 | + "policy": "oracle1_greedy", | |
| 247 | + "budget": 1, | |
| 248 | + "diagnostic": true, | |
| 249 | + "loss": 0.48103803076751384, | |
| 250 | + "edits_per_token": 0.37519142419601836, | |
| 251 | + "extra_ops_ratio": 0.05055569653124028, | |
| 252 | + "n_tokens": 653 | |
| 253 | + }, | |
| 254 | + { | |
| 255 | + "policy": "oracle1_greedy", | |
| 256 | + "budget": 2, | |
| 257 | + "diagnostic": true, | |
| 258 | + "loss": 0.4624231142800581, | |
| 259 | + "edits_per_token": 0.669218989280245, | |
| 260 | + "extra_ops_ratio": 0.09018156831516423, | |
| 261 | + "n_tokens": 653 | |
| 262 | + }, | |
| 263 | + { | |
| 264 | + "policy": "oracle1_greedy", | |
| 265 | + "budget": 4, | |
| 266 | + "diagnostic": true, | |
| 267 | + "loss": 0.43835515523212426, | |
| 268 | + "edits_per_token": 1.1653905053598774, | |
| 269 | + "extra_ops_ratio": 0.15633041971858025, | |
| 270 | + "n_tokens": 653 | |
| 271 | + }, | |
| 272 | + { | |
| 273 | + "policy": "oracle1_greedy", | |
| 274 | + "budget": 8, | |
| 275 | + "diagnostic": true, | |
| 276 | + "loss": 0.4114027855772337, | |
| 277 | + "edits_per_token": 1.901990811638591, | |
| 278 | + "extra_ops_ratio": 0.25576430257940364, | |
| 279 | + "n_tokens": 653 | |
| 280 | + }, | |
| 281 | + { | |
| 282 | + "policy": "oracle_two_step", | |
| 283 | + "diagnostic": true, | |
| 284 | + "one_step_gain": 0.01257849424734883, | |
| 285 | + "two_step_gain": 0.024940446875561243, | |
| 286 | + "greedy_then_best_gain": 0.024922168117830122, | |
| 287 | + "n_tokens": 174 | |
| 288 | + } | |
| 289 | + ] | |
| 290 | +} | |
| \ No newline at end of file | ||
added
results/raw/routing_v2s3.json
+290 −0
@@ -0,0 +1,290 @@ | ||
| 1 | +{ | |
| 2 | + "config": "configs/experiments/routing_v2s3.yaml", | |
| 3 | + "checkpoint": "experiments/runs/controller_v2s3_seed01_20261030004720/checkpoint", | |
| 4 | + "checkpoint_sha256": "34ec25bc13935a5276c68155f7bd978233d297fd543a288cd9612686fa7e6c75", | |
| 5 | + "split": "dev_iid", | |
| 6 | + "code_commit": "unknown", | |
| 7 | + "device": "mps", | |
| 8 | + "seconds": 107.0, | |
| 9 | + "records": [ | |
| 10 | + { | |
| 11 | + "policy": "budget0", | |
| 12 | + "loss": 0.49655490497905047, | |
| 13 | + "edits_per_token": 0.0, | |
| 14 | + "extra_ops_ratio": 0.0, | |
| 15 | + "n_tokens": 3417 | |
| 16 | + }, | |
| 17 | + { | |
| 18 | + "policy": "random_forced", | |
| 19 | + "budget": 1, | |
| 20 | + "loss": 0.4836456643791969, | |
| 21 | + "edits_per_token": 1.0, | |
| 22 | + "extra_ops_ratio": 0.12365152489067972, | |
| 23 | + "n_tokens": 3417 | |
| 24 | + }, | |
| 25 | + { | |
| 26 | + "policy": "uniform", | |
| 27 | + "budget": 1, | |
| 28 | + "loss": 0.4855114261693064, | |
| 29 | + "edits_per_token": 1.0, | |
| 30 | + "extra_ops_ratio": 0.10679070643245528, | |
| 31 | + "n_tokens": 3417 | |
| 32 | + }, | |
| 33 | + { | |
| 34 | + "policy": "fixed_pair", | |
| 35 | + "budget": 1, | |
| 36 | + "loss": 0.4817456936745536, | |
| 37 | + "edits_per_token": 1.0, | |
| 38 | + "extra_ops_ratio": 0.14036496061660547, | |
| 39 | + "n_tokens": 3417 | |
| 40 | + }, | |
| 41 | + { | |
| 42 | + "policy": "random_forced", | |
| 43 | + "budget": 2, | |
| 44 | + "loss": 0.4797144586453146, | |
| 45 | + "edits_per_token": 2.0, | |
| 46 | + "extra_ops_ratio": 0.24747007926514458, | |
| 47 | + "n_tokens": 3417 | |
| 48 | + }, | |
| 49 | + { | |
| 50 | + "policy": "uniform", | |
| 51 | + "budget": 2, | |
| 52 | + "loss": 0.481759068838225, | |
| 53 | + "edits_per_token": 2.0, | |
| 54 | + "extra_ops_ratio": 0.21358141286491056, | |
| 55 | + "n_tokens": 3417 | |
| 56 | + }, | |
| 57 | + { | |
| 58 | + "policy": "fixed_pair", | |
| 59 | + "budget": 2, | |
| 60 | + "loss": 0.47779058858878715, | |
| 61 | + "edits_per_token": 2.0, | |
| 62 | + "extra_ops_ratio": 0.28072992123321094, | |
| 63 | + "n_tokens": 3417 | |
| 64 | + }, | |
| 65 | + { | |
| 66 | + "policy": "random_forced", | |
| 67 | + "budget": 4, | |
| 68 | + "loss": 0.47795309921367357, | |
| 69 | + "edits_per_token": 4.0, | |
| 70 | + "extra_ops_ratio": 0.4947927651923059, | |
| 71 | + "n_tokens": 3417 | |
| 72 | + }, | |
| 73 | + { | |
| 74 | + "policy": "uniform", | |
| 75 | + "budget": 4, | |
| 76 | + "loss": 0.47780115212967145, | |
| 77 | + "edits_per_token": 4.0, | |
| 78 | + "extra_ops_ratio": 0.4271628257298211, | |
| 79 | + "n_tokens": 3417 | |
| 80 | + }, | |
| 81 | + { | |
| 82 | + "policy": "fixed_pair", | |
| 83 | + "budget": 4, | |
| 84 | + "loss": 0.47757193677286536, | |
| 85 | + "edits_per_token": 4.0, | |
| 86 | + "extra_ops_ratio": 0.5614598424664219, | |
| 87 | + "n_tokens": 3417 | |
| 88 | + }, | |
| 89 | + { | |
| 90 | + "policy": "random_forced", | |
| 91 | + "budget": 8, | |
| 92 | + "loss": 0.4858004447483758, | |
| 93 | + "edits_per_token": 8.0, | |
| 94 | + "extra_ops_ratio": 0.9892416248762507, | |
| 95 | + "n_tokens": 3417 | |
| 96 | + }, | |
| 97 | + { | |
| 98 | + "policy": "uniform", | |
| 99 | + "budget": 8, | |
| 100 | + "loss": 0.47754792271213015, | |
| 101 | + "edits_per_token": 8.0, | |
| 102 | + "extra_ops_ratio": 0.8543256514596422, | |
| 103 | + "n_tokens": 3417 | |
| 104 | + }, | |
| 105 | + { | |
| 106 | + "policy": "fixed_pair", | |
| 107 | + "budget": 8, | |
| 108 | + "loss": 0.4924956470474989, | |
| 109 | + "edits_per_token": 8.0, | |
| 110 | + "extra_ops_ratio": 1.1229196849328438, | |
| 111 | + "n_tokens": 3417 | |
| 112 | + }, | |
| 113 | + { | |
| 114 | + "policy": "entropy", | |
| 115 | + "threshold": 0.1, | |
| 116 | + "budget": 8, | |
| 117 | + "loss": 0.4825179937606602, | |
| 118 | + "edits_per_token": 3.05736025753585, | |
| 119 | + "extra_ops_ratio": 0.36087759942871667, | |
| 120 | + "n_tokens": 3417 | |
| 121 | + }, | |
| 122 | + { | |
| 123 | + "policy": "entropy", | |
| 124 | + "threshold": 0.5, | |
| 125 | + "budget": 8, | |
| 126 | + "loss": 0.4854411358787262, | |
| 127 | + "edits_per_token": 2.419373719637109, | |
| 128 | + "extra_ops_ratio": 0.2853576809752221, | |
| 129 | + "n_tokens": 3417 | |
| 130 | + }, | |
| 131 | + { | |
| 132 | + "policy": "entropy", | |
| 133 | + "threshold": 1.0, | |
| 134 | + "budget": 8, | |
| 135 | + "loss": 0.4886884239984947, | |
| 136 | + "edits_per_token": 1.5993561603745976, | |
| 137 | + "extra_ops_ratio": 0.18881661144655143, | |
| 138 | + "n_tokens": 3417 | |
| 139 | + }, | |
| 140 | + { | |
| 141 | + "policy": "entropy", | |
| 142 | + "threshold": 2.0, | |
| 143 | + "budget": 8, | |
| 144 | + "loss": 0.4963183100194934, | |
| 145 | + "edits_per_token": 0.49721978343576234, | |
| 146 | + "extra_ops_ratio": 0.0583846495798327, | |
| 147 | + "n_tokens": 3417 | |
| 148 | + }, | |
| 149 | + { | |
| 150 | + "policy": "norm", | |
| 151 | + "threshold": 0.02, | |
| 152 | + "budget": 8, | |
| 153 | + "loss": 0.4820865974950972, | |
| 154 | + "edits_per_token": 8.0, | |
| 155 | + "extra_ops_ratio": 0.9450654991893417, | |
| 156 | + "n_tokens": 3417 | |
| 157 | + }, | |
| 158 | + { | |
| 159 | + "policy": "norm", | |
| 160 | + "threshold": 0.05, | |
| 161 | + "budget": 8, | |
| 162 | + "loss": 0.4820865729345646, | |
| 163 | + "edits_per_token": 7.986830553116769, | |
| 164 | + "extra_ops_ratio": 0.9435117373802804, | |
| 165 | + "n_tokens": 3417 | |
| 166 | + }, | |
| 167 | + { | |
| 168 | + "policy": "norm", | |
| 169 | + "threshold": 0.1, | |
| 170 | + "budget": 8, | |
| 171 | + "loss": 0.4814451017817943, | |
| 172 | + "edits_per_token": 5.9244951712028096, | |
| 173 | + "extra_ops_ratio": 0.7000063660900461, | |
| 174 | + "n_tokens": 3417 | |
| 175 | + }, | |
| 176 | + { | |
| 177 | + "policy": "norm", | |
| 178 | + "threshold": 0.2, | |
| 179 | + "budget": 8, | |
| 180 | + "loss": 0.48234174709973154, | |
| 181 | + "edits_per_token": 1.3356745683347966, | |
| 182 | + "extra_ops_ratio": 0.1584864019963837, | |
| 183 | + "n_tokens": 3417 | |
| 184 | + }, | |
| 185 | + { | |
| 186 | + "policy": "controller_locked", | |
| 187 | + "lam": 0.3, | |
| 188 | + "kap": 0.0, | |
| 189 | + "budget": 8, | |
| 190 | + "loss": 0.5073574809676414, | |
| 191 | + "edits_per_token": 4.320456540825285, | |
| 192 | + "extra_ops_ratio": 0.49558767799330555, | |
| 193 | + "n_tokens": 3417 | |
| 194 | + }, | |
| 195 | + { | |
| 196 | + "policy": "controller", | |
| 197 | + "lam": 0.0, | |
| 198 | + "kap": 0.0, | |
| 199 | + "budget": 8, | |
| 200 | + "loss": 0.5153049974717834, | |
| 201 | + "edits_per_token": 5.38835235586772, | |
| 202 | + "extra_ops_ratio": 0.6592092762434382, | |
| 203 | + "n_tokens": 3417 | |
| 204 | + }, | |
| 205 | + { | |
| 206 | + "policy": "controller", | |
| 207 | + "lam": 0.01, | |
| 208 | + "kap": 0.0, | |
| 209 | + "budget": 8, | |
| 210 | + "loss": 0.5150135007907956, | |
| 211 | + "edits_per_token": 5.360257535850161, | |
| 212 | + "extra_ops_ratio": 0.6541849225105373, | |
| 213 | + "n_tokens": 3417 | |
| 214 | + }, | |
| 215 | + { | |
| 216 | + "policy": "controller", | |
| 217 | + "lam": 0.03, | |
| 218 | + "kap": 0.0, | |
| 219 | + "budget": 8, | |
| 220 | + "loss": 0.5145079847452478, | |
| 221 | + "edits_per_token": 5.295580918934738, | |
| 222 | + "extra_ops_ratio": 0.6434558782446339, | |
| 223 | + "n_tokens": 3417 | |
| 224 | + }, | |
| 225 | + { | |
| 226 | + "policy": "controller", | |
| 227 | + "lam": 0.1, | |
| 228 | + "kap": 0.0, | |
| 229 | + "budget": 8, | |
| 230 | + "loss": 0.511634209855872, | |
| 231 | + "edits_per_token": 5.068188469417618, | |
| 232 | + "extra_ops_ratio": 0.6072834451400225, | |
| 233 | + "n_tokens": 3417 | |
| 234 | + }, | |
| 235 | + { | |
| 236 | + "policy": "controller", | |
| 237 | + "lam": 0.3, | |
| 238 | + "kap": 0.0, | |
| 239 | + "budget": 8, | |
| 240 | + "loss": 0.5073574809676414, | |
| 241 | + "edits_per_token": 4.320456540825285, | |
| 242 | + "extra_ops_ratio": 0.49558767799330555, | |
| 243 | + "n_tokens": 3417 | |
| 244 | + }, | |
| 245 | + { | |
| 246 | + "policy": "oracle1_greedy", | |
| 247 | + "budget": 1, | |
| 248 | + "diagnostic": true, | |
| 249 | + "loss": 0.4806166586065365, | |
| 250 | + "edits_per_token": 0.37059724349157736, | |
| 251 | + "extra_ops_ratio": 0.050167911085563996, | |
| 252 | + "n_tokens": 653 | |
| 253 | + }, | |
| 254 | + { | |
| 255 | + "policy": "oracle1_greedy", | |
| 256 | + "budget": 2, | |
| 257 | + "diagnostic": true, | |
| 258 | + "loss": 0.4616704009028343, | |
| 259 | + "edits_per_token": 0.666156202143951, | |
| 260 | + "extra_ops_ratio": 0.08980307936850952, | |
| 261 | + "n_tokens": 653 | |
| 262 | + }, | |
| 263 | + { | |
| 264 | + "policy": "oracle1_greedy", | |
| 265 | + "budget": 4, | |
| 266 | + "diagnostic": true, | |
| 267 | + "loss": 0.44248058091261483, | |
| 268 | + "edits_per_token": 1.1393568147013782, | |
| 269 | + "extra_ops_ratio": 0.15298469362361142, | |
| 270 | + "n_tokens": 653 | |
| 271 | + }, | |
| 272 | + { | |
| 273 | + "policy": "oracle1_greedy", | |
| 274 | + "budget": 8, | |
| 275 | + "diagnostic": true, | |
| 276 | + "loss": 0.42422473375866643, | |
| 277 | + "edits_per_token": 1.8376722817764166, | |
| 278 | + "extra_ops_ratio": 0.24673623147821352, | |
| 279 | + "n_tokens": 653 | |
| 280 | + }, | |
| 281 | + { | |
| 282 | + "policy": "oracle_two_step", | |
| 283 | + "diagnostic": true, | |
| 284 | + "one_step_gain": 0.020420740390646046, | |
| 285 | + "two_step_gain": 0.04088112403606546, | |
| 286 | + "greedy_then_best_gain": 0.04077013607682853, | |
| 287 | + "n_tokens": 174 | |
| 288 | + } | |
| 289 | + ] | |
| 290 | +} | |
| \ No newline at end of file | ||
added
results/raw/routing_v2s4.json
+290 −0
@@ -0,0 +1,290 @@ | ||
| 1 | +{ | |
| 2 | + "config": "configs/experiments/routing_v2s4.yaml", | |
| 3 | + "checkpoint": "experiments/runs/controller_v2s4_seed01_20261030004719/checkpoint", | |
| 4 | + "checkpoint_sha256": "ce86e3a12b5d5af217859afaccfe238677ad488c5ee0b4f219200742f99a7fa2", | |
| 5 | + "split": "dev_iid", | |
| 6 | + "code_commit": "unknown", | |
| 7 | + "device": "mps", | |
| 8 | + "seconds": 107.9, | |
| 9 | + "records": [ | |
| 10 | + { | |
| 11 | + "policy": "budget0", | |
| 12 | + "loss": 0.49655490497905047, | |
| 13 | + "edits_per_token": 0.0, | |
| 14 | + "extra_ops_ratio": 0.0, | |
| 15 | + "n_tokens": 3417 | |
| 16 | + }, | |
| 17 | + { | |
| 18 | + "policy": "random_forced", | |
| 19 | + "budget": 1, | |
| 20 | + "loss": 0.484092703471241, | |
| 21 | + "edits_per_token": 1.0, | |
| 22 | + "extra_ops_ratio": 0.12365152489067972, | |
| 23 | + "n_tokens": 3417 | |
| 24 | + }, | |
| 25 | + { | |
| 26 | + "policy": "uniform", | |
| 27 | + "budget": 1, | |
| 28 | + "loss": 0.48554490719896537, | |
| 29 | + "edits_per_token": 1.0, | |
| 30 | + "extra_ops_ratio": 0.10679070643245528, | |
| 31 | + "n_tokens": 3417 | |
| 32 | + }, | |
| 33 | + { | |
| 34 | + "policy": "fixed_pair", | |
| 35 | + "budget": 1, | |
| 36 | + "loss": 0.48190072310539517, | |
| 37 | + "edits_per_token": 1.0, | |
| 38 | + "extra_ops_ratio": 0.14036496061660547, | |
| 39 | + "n_tokens": 3417 | |
| 40 | + }, | |
| 41 | + { | |
| 42 | + "policy": "random_forced", | |
| 43 | + "budget": 2, | |
| 44 | + "loss": 0.480293477108369, | |
| 45 | + "edits_per_token": 2.0, | |
| 46 | + "extra_ops_ratio": 0.24747007926514458, | |
| 47 | + "n_tokens": 3417 | |
| 48 | + }, | |
| 49 | + { | |
| 50 | + "policy": "uniform", | |
| 51 | + "budget": 2, | |
| 52 | + "loss": 0.4819024108047195, | |
| 53 | + "edits_per_token": 2.0, | |
| 54 | + "extra_ops_ratio": 0.21358141286491056, | |
| 55 | + "n_tokens": 3417 | |
| 56 | + }, | |
| 57 | + { | |
| 58 | + "policy": "fixed_pair", | |
| 59 | + "budget": 2, | |
| 60 | + "loss": 0.47775121861324693, | |
| 61 | + "edits_per_token": 2.0, | |
| 62 | + "extra_ops_ratio": 0.28072992123321094, | |
| 63 | + "n_tokens": 3417 | |
| 64 | + }, | |
| 65 | + { | |
| 66 | + "policy": "random_forced", | |
| 67 | + "budget": 4, | |
| 68 | + "loss": 0.4771316998319595, | |
| 69 | + "edits_per_token": 4.0, | |
| 70 | + "extra_ops_ratio": 0.4947927651923059, | |
| 71 | + "n_tokens": 3417 | |
| 72 | + }, | |
| 73 | + { | |
| 74 | + "policy": "uniform", | |
| 75 | + "budget": 4, | |
| 76 | + "loss": 0.4777530824227538, | |
| 77 | + "edits_per_token": 4.0, | |
| 78 | + "extra_ops_ratio": 0.4271628257298211, | |
| 79 | + "n_tokens": 3417 | |
| 80 | + }, | |
| 81 | + { | |
| 82 | + "policy": "fixed_pair", | |
| 83 | + "budget": 4, | |
| 84 | + "loss": 0.47623123842127185, | |
| 85 | + "edits_per_token": 4.0, | |
| 86 | + "extra_ops_ratio": 0.5614598424664219, | |
| 87 | + "n_tokens": 3417 | |
| 88 | + }, | |
| 89 | + { | |
| 90 | + "policy": "random_forced", | |
| 91 | + "budget": 8, | |
| 92 | + "loss": 0.48208205268018106, | |
| 93 | + "edits_per_token": 8.0, | |
| 94 | + "extra_ops_ratio": 0.9892416248762507, | |
| 95 | + "n_tokens": 3417 | |
| 96 | + }, | |
| 97 | + { | |
| 98 | + "policy": "uniform", | |
| 99 | + "budget": 8, | |
| 100 | + "loss": 0.47621813565623455, | |
| 101 | + "edits_per_token": 8.0, | |
| 102 | + "extra_ops_ratio": 0.8543256514596422, | |
| 103 | + "n_tokens": 3417 | |
| 104 | + }, | |
| 105 | + { | |
| 106 | + "policy": "fixed_pair", | |
| 107 | + "budget": 8, | |
| 108 | + "loss": 0.4901462004552433, | |
| 109 | + "edits_per_token": 8.0, | |
| 110 | + "extra_ops_ratio": 1.1229196849328438, | |
| 111 | + "n_tokens": 3417 | |
| 112 | + }, | |
| 113 | + { | |
| 114 | + "policy": "entropy", | |
| 115 | + "threshold": 0.1, | |
| 116 | + "budget": 8, | |
| 117 | + "loss": 0.47952548600024636, | |
| 118 | + "edits_per_token": 3.073748902546093, | |
| 119 | + "extra_ops_ratio": 0.3628734011450531, | |
| 120 | + "n_tokens": 3417 | |
| 121 | + }, | |
| 122 | + { | |
| 123 | + "policy": "entropy", | |
| 124 | + "threshold": 0.5, | |
| 125 | + "budget": 8, | |
| 126 | + "loss": 0.48282133699126295, | |
| 127 | + "edits_per_token": 2.4252268071407665, | |
| 128 | + "extra_ops_ratio": 0.28598273508654093, | |
| 129 | + "n_tokens": 3417 | |
| 130 | + }, | |
| 131 | + { | |
| 132 | + "policy": "entropy", | |
| 133 | + "threshold": 1.0, | |
| 134 | + "budget": 8, | |
| 135 | + "loss": 0.48870500459076543, | |
| 136 | + "edits_per_token": 1.604916593503073, | |
| 137 | + "extra_ops_ratio": 0.18948902014859909, | |
| 138 | + "n_tokens": 3417 | |
| 139 | + }, | |
| 140 | + { | |
| 141 | + "policy": "entropy", | |
| 142 | + "threshold": 2.0, | |
| 143 | + "budget": 8, | |
| 144 | + "loss": 0.4969192392685834, | |
| 145 | + "edits_per_token": 0.5033655253146034, | |
| 146 | + "extra_ops_ratio": 0.05909991138749629, | |
| 147 | + "n_tokens": 3417 | |
| 148 | + }, | |
| 149 | + { | |
| 150 | + "policy": "norm", | |
| 151 | + "threshold": 0.02, | |
| 152 | + "budget": 8, | |
| 153 | + "loss": 0.4789865899581396, | |
| 154 | + "edits_per_token": 8.0, | |
| 155 | + "extra_ops_ratio": 0.9450654991893417, | |
| 156 | + "n_tokens": 3417 | |
| 157 | + }, | |
| 158 | + { | |
| 159 | + "policy": "norm", | |
| 160 | + "threshold": 0.05, | |
| 161 | + "budget": 8, | |
| 162 | + "loss": 0.4789865899581396, | |
| 163 | + "edits_per_token": 8.0, | |
| 164 | + "extra_ops_ratio": 0.9450654991893417, | |
| 165 | + "n_tokens": 3417 | |
| 166 | + }, | |
| 167 | + { | |
| 168 | + "policy": "norm", | |
| 169 | + "threshold": 0.1, | |
| 170 | + "budget": 8, | |
| 171 | + "loss": 0.4811858405207276, | |
| 172 | + "edits_per_token": 6.590869183494293, | |
| 173 | + "extra_ops_ratio": 0.7787543149729866, | |
| 174 | + "n_tokens": 3417 | |
| 175 | + }, | |
| 176 | + { | |
| 177 | + "policy": "norm", | |
| 178 | + "threshold": 0.2, | |
| 179 | + "budget": 8, | |
| 180 | + "loss": 0.48346202192789356, | |
| 181 | + "edits_per_token": 1.160667251975417, | |
| 182 | + "extra_ops_ratio": 0.137733863884153, | |
| 183 | + "n_tokens": 3417 | |
| 184 | + }, | |
| 185 | + { | |
| 186 | + "policy": "controller_locked", | |
| 187 | + "lam": 0.3, | |
| 188 | + "kap": 0.5, | |
| 189 | + "budget": 8, | |
| 190 | + "loss": 0.4974173310558664, | |
| 191 | + "edits_per_token": 0.17295873573309922, | |
| 192 | + "extra_ops_ratio": 0.019531554843655867, | |
| 193 | + "n_tokens": 3417 | |
| 194 | + }, | |
| 195 | + { | |
| 196 | + "policy": "controller", | |
| 197 | + "lam": 0.0, | |
| 198 | + "kap": 0.5, | |
| 199 | + "budget": 8, | |
| 200 | + "loss": 0.5000027024958753, | |
| 201 | + "edits_per_token": 1.9189347380743342, | |
| 202 | + "extra_ops_ratio": 0.23343842734989104, | |
| 203 | + "n_tokens": 3417 | |
| 204 | + }, | |
| 205 | + { | |
| 206 | + "policy": "controller", | |
| 207 | + "lam": 0.01, | |
| 208 | + "kap": 0.5, | |
| 209 | + "budget": 8, | |
| 210 | + "loss": 0.5002121907212701, | |
| 211 | + "edits_per_token": 1.8235294117647058, | |
| 212 | + "extra_ops_ratio": 0.22167792304901132, | |
| 213 | + "n_tokens": 3417 | |
| 214 | + }, | |
| 215 | + { | |
| 216 | + "policy": "controller", | |
| 217 | + "lam": 0.03, | |
| 218 | + "kap": 0.5, | |
| 219 | + "budget": 8, | |
| 220 | + "loss": 0.49992125949072563, | |
| 221 | + "edits_per_token": 1.6028680128767925, | |
| 222 | + "extra_ops_ratio": 0.1942616804043103, | |
| 223 | + "n_tokens": 3417 | |
| 224 | + }, | |
| 225 | + { | |
| 226 | + "policy": "controller", | |
| 227 | + "lam": 0.1, | |
| 228 | + "kap": 0.5, | |
| 229 | + "budget": 8, | |
| 230 | + "loss": 0.4987821341747075, | |
| 231 | + "edits_per_token": 1.032777290020486, | |
| 232 | + "extra_ops_ratio": 0.12332964934275657, | |
| 233 | + "n_tokens": 3417 | |
| 234 | + }, | |
| 235 | + { | |
| 236 | + "policy": "controller", | |
| 237 | + "lam": 0.3, | |
| 238 | + "kap": 0.5, | |
| 239 | + "budget": 8, | |
| 240 | + "loss": 0.4974173310558664, | |
| 241 | + "edits_per_token": 0.17295873573309922, | |
| 242 | + "extra_ops_ratio": 0.019531554843655867, | |
| 243 | + "n_tokens": 3417 | |
| 244 | + }, | |
| 245 | + { | |
| 246 | + "policy": "oracle1_greedy", | |
| 247 | + "budget": 1, | |
| 248 | + "diagnostic": true, | |
| 249 | + "loss": 0.48179485969485036, | |
| 250 | + "edits_per_token": 0.48545176110260335, | |
| 251 | + "extra_ops_ratio": 0.06495266121342938, | |
| 252 | + "n_tokens": 653 | |
| 253 | + }, | |
| 254 | + { | |
| 255 | + "policy": "oracle1_greedy", | |
| 256 | + "budget": 2, | |
| 257 | + "diagnostic": true, | |
| 258 | + "loss": 0.4655313886142982, | |
| 259 | + "edits_per_token": 0.8392036753445635, | |
| 260 | + "extra_ops_ratio": 0.11255041855582781, | |
| 261 | + "n_tokens": 653 | |
| 262 | + }, | |
| 263 | + { | |
| 264 | + "policy": "oracle1_greedy", | |
| 265 | + "budget": 4, | |
| 266 | + "diagnostic": true, | |
| 267 | + "loss": 0.44583509892088347, | |
| 268 | + "edits_per_token": 1.3859111791730474, | |
| 269 | + "extra_ops_ratio": 0.18563849783600928, | |
| 270 | + "n_tokens": 653 | |
| 271 | + }, | |
| 272 | + { | |
| 273 | + "policy": "oracle1_greedy", | |
| 274 | + "budget": 8, | |
| 275 | + "diagnostic": true, | |
| 276 | + "loss": 0.4251479284686662, | |
| 277 | + "edits_per_token": 2.1929555895865236, | |
| 278 | + "extra_ops_ratio": 0.2940347972361636, | |
| 279 | + "n_tokens": 653 | |
| 280 | + }, | |
| 281 | + { | |
| 282 | + "policy": "oracle_two_step", | |
| 283 | + "diagnostic": true, | |
| 284 | + "one_step_gain": 0.011839706322242474, | |
| 285 | + "two_step_gain": 0.02256789289671799, | |
| 286 | + "greedy_then_best_gain": 0.02252720964365992, | |
| 287 | + "n_tokens": 174 | |
| 288 | + } | |
| 289 | + ] | |
| 290 | +} | |
| \ No newline at end of file | ||
added
results/raw/routing_v2s5.json
+290 −0
@@ -0,0 +1,290 @@ | ||
| 1 | +{ | |
| 2 | + "config": "configs/experiments/routing_v2s5.yaml", | |
| 3 | + "checkpoint": "experiments/runs/controller_v2s5_seed01_20261030004719/checkpoint", | |
| 4 | + "checkpoint_sha256": "958788a3ebabeed125e43ca842c6e0c0a26b2eb9741f65b990ede4325bfbceb9", | |
| 5 | + "split": "dev_iid", | |
| 6 | + "code_commit": "unknown", | |
| 7 | + "device": "mps", | |
| 8 | + "seconds": 108.4, | |
| 9 | + "records": [ | |
| 10 | + { | |
| 11 | + "policy": "budget0", | |
| 12 | + "loss": 0.49655490497905047, | |
| 13 | + "edits_per_token": 0.0, | |
| 14 | + "extra_ops_ratio": 0.0, | |
| 15 | + "n_tokens": 3417 | |
| 16 | + }, | |
| 17 | + { | |
| 18 | + "policy": "random_forced", | |
| 19 | + "budget": 1, | |
| 20 | + "loss": 0.48439379634304564, | |
| 21 | + "edits_per_token": 1.0, | |
| 22 | + "extra_ops_ratio": 0.12365152489067972, | |
| 23 | + "n_tokens": 3417 | |
| 24 | + }, | |
| 25 | + { | |
| 26 | + "policy": "uniform", | |
| 27 | + "budget": 1, | |
| 28 | + "loss": 0.486002292694458, | |
| 29 | + "edits_per_token": 1.0, | |
| 30 | + "extra_ops_ratio": 0.10679070643245528, | |
| 31 | + "n_tokens": 3417 | |
| 32 | + }, | |
| 33 | + { | |
| 34 | + "policy": "fixed_pair", | |
| 35 | + "budget": 1, | |
| 36 | + "loss": 0.4819198906473992, | |
| 37 | + "edits_per_token": 1.0, | |
| 38 | + "extra_ops_ratio": 0.14036496061660547, | |
| 39 | + "n_tokens": 3417 | |
| 40 | + }, | |
| 41 | + { | |
| 42 | + "policy": "random_forced", | |
| 43 | + "budget": 2, | |
| 44 | + "loss": 0.47975871784142105, | |
| 45 | + "edits_per_token": 2.0, | |
| 46 | + "extra_ops_ratio": 0.24747007926514458, | |
| 47 | + "n_tokens": 3417 | |
| 48 | + }, | |
| 49 | + { | |
| 50 | + "policy": "uniform", | |
| 51 | + "budget": 2, | |
| 52 | + "loss": 0.48194174226487907, | |
| 53 | + "edits_per_token": 2.0, | |
| 54 | + "extra_ops_ratio": 0.21358141286491056, | |
| 55 | + "n_tokens": 3417 | |
| 56 | + }, | |
| 57 | + { | |
| 58 | + "policy": "fixed_pair", | |
| 59 | + "budget": 2, | |
| 60 | + "loss": 0.47758922543412663, | |
| 61 | + "edits_per_token": 2.0, | |
| 62 | + "extra_ops_ratio": 0.28072992123321094, | |
| 63 | + "n_tokens": 3417 | |
| 64 | + }, | |
| 65 | + { | |
| 66 | + "policy": "random_forced", | |
| 67 | + "budget": 4, | |
| 68 | + "loss": 0.47676382659295863, | |
| 69 | + "edits_per_token": 4.0, | |
| 70 | + "extra_ops_ratio": 0.4947927651923059, | |
| 71 | + "n_tokens": 3417 | |
| 72 | + }, | |
| 73 | + { | |
| 74 | + "policy": "uniform", | |
| 75 | + "budget": 4, | |
| 76 | + "loss": 0.47761162603532914, | |
| 77 | + "edits_per_token": 4.0, | |
| 78 | + "extra_ops_ratio": 0.4271628257298211, | |
| 79 | + "n_tokens": 3417 | |
| 80 | + }, | |
| 81 | + { | |
| 82 | + "policy": "fixed_pair", | |
| 83 | + "budget": 4, | |
| 84 | + "loss": 0.47737231909060013, | |
| 85 | + "edits_per_token": 4.0, | |
| 86 | + "extra_ops_ratio": 0.5614598424664219, | |
| 87 | + "n_tokens": 3417 | |
| 88 | + }, | |
| 89 | + { | |
| 90 | + "policy": "random_forced", | |
| 91 | + "budget": 8, | |
| 92 | + "loss": 0.48528963227979544, | |
| 93 | + "edits_per_token": 8.0, | |
| 94 | + "extra_ops_ratio": 0.9892416248762507, | |
| 95 | + "n_tokens": 3417 | |
| 96 | + }, | |
| 97 | + { | |
| 98 | + "policy": "uniform", | |
| 99 | + "budget": 8, | |
| 100 | + "loss": 0.4773734966006794, | |
| 101 | + "edits_per_token": 8.0, | |
| 102 | + "extra_ops_ratio": 0.8543256514596422, | |
| 103 | + "n_tokens": 3417 | |
| 104 | + }, | |
| 105 | + { | |
| 106 | + "policy": "fixed_pair", | |
| 107 | + "budget": 8, | |
| 108 | + "loss": 0.4952617686570022, | |
| 109 | + "edits_per_token": 8.0, | |
| 110 | + "extra_ops_ratio": 1.1229196849328438, | |
| 111 | + "n_tokens": 3417 | |
| 112 | + }, | |
| 113 | + { | |
| 114 | + "policy": "entropy", | |
| 115 | + "threshold": 0.1, | |
| 116 | + "budget": 8, | |
| 117 | + "loss": 0.4832980625106816, | |
| 118 | + "edits_per_token": 3.0597014925373136, | |
| 119 | + "extra_ops_ratio": 0.3611669247353464, | |
| 120 | + "n_tokens": 3417 | |
| 121 | + }, | |
| 122 | + { | |
| 123 | + "policy": "entropy", | |
| 124 | + "threshold": 0.5, | |
| 125 | + "budget": 8, | |
| 126 | + "loss": 0.48658690314422687, | |
| 127 | + "edits_per_token": 2.4132279777582677, | |
| 128 | + "extra_ops_ratio": 0.28454416022162565, | |
| 129 | + "n_tokens": 3417 | |
| 130 | + }, | |
| 131 | + { | |
| 132 | + "policy": "entropy", | |
| 133 | + "threshold": 1.0, | |
| 134 | + "budget": 8, | |
| 135 | + "loss": 0.4919144153455422, | |
| 136 | + "edits_per_token": 1.6087211003804507, | |
| 137 | + "extra_ops_ratio": 0.1899346083899775, | |
| 138 | + "n_tokens": 3417 | |
| 139 | + }, | |
| 140 | + { | |
| 141 | + "policy": "entropy", | |
| 142 | + "threshold": 2.0, | |
| 143 | + "budget": 8, | |
| 144 | + "loss": 0.49789898570671676, | |
| 145 | + "edits_per_token": 0.49663447468539657, | |
| 146 | + "extra_ops_ratio": 0.058351620512815255, | |
| 147 | + "n_tokens": 3417 | |
| 148 | + }, | |
| 149 | + { | |
| 150 | + "policy": "norm", | |
| 151 | + "threshold": 0.02, | |
| 152 | + "budget": 8, | |
| 153 | + "loss": 0.4830680444710151, | |
| 154 | + "edits_per_token": 8.0, | |
| 155 | + "extra_ops_ratio": 0.9450654991893417, | |
| 156 | + "n_tokens": 3417 | |
| 157 | + }, | |
| 158 | + { | |
| 159 | + "policy": "norm", | |
| 160 | + "threshold": 0.05, | |
| 161 | + "budget": 8, | |
| 162 | + "loss": 0.4830680444710151, | |
| 163 | + "edits_per_token": 8.0, | |
| 164 | + "extra_ops_ratio": 0.9450654991893417, | |
| 165 | + "n_tokens": 3417 | |
| 166 | + }, | |
| 167 | + { | |
| 168 | + "policy": "norm", | |
| 169 | + "threshold": 0.1, | |
| 170 | + "budget": 8, | |
| 171 | + "loss": 0.4829900508252089, | |
| 172 | + "edits_per_token": 6.8378694761486685, | |
| 173 | + "extra_ops_ratio": 0.8079614435541445, | |
| 174 | + "n_tokens": 3417 | |
| 175 | + }, | |
| 176 | + { | |
| 177 | + "policy": "norm", | |
| 178 | + "threshold": 0.2, | |
| 179 | + "budget": 8, | |
| 180 | + "loss": 0.4836091732888114, | |
| 181 | + "edits_per_token": 1.2171495463857185, | |
| 182 | + "extra_ops_ratio": 0.1445222226087901, | |
| 183 | + "n_tokens": 3417 | |
| 184 | + }, | |
| 185 | + { | |
| 186 | + "policy": "controller_locked", | |
| 187 | + "lam": 0.3, | |
| 188 | + "kap": 0.5, | |
| 189 | + "budget": 8, | |
| 190 | + "loss": 0.4949139250905185, | |
| 191 | + "edits_per_token": 0.16417910447761194, | |
| 192 | + "extra_ops_ratio": 0.01783739648299291, | |
| 193 | + "n_tokens": 3417 | |
| 194 | + }, | |
| 195 | + { | |
| 196 | + "policy": "controller", | |
| 197 | + "lam": 0.0, | |
| 198 | + "kap": 0.5, | |
| 199 | + "budget": 8, | |
| 200 | + "loss": 0.49624116427025533, | |
| 201 | + "edits_per_token": 2.0822358794263973, | |
| 202 | + "extra_ops_ratio": 0.25747048341987216, | |
| 203 | + "n_tokens": 3417 | |
| 204 | + }, | |
| 205 | + { | |
| 206 | + "policy": "controller", | |
| 207 | + "lam": 0.01, | |
| 208 | + "kap": 0.5, | |
| 209 | + "budget": 8, | |
| 210 | + "loss": 0.49531453863584335, | |
| 211 | + "edits_per_token": 1.8533801580333626, | |
| 212 | + "extra_ops_ratio": 0.22635919851694394, | |
| 213 | + "n_tokens": 3417 | |
| 214 | + }, | |
| 215 | + { | |
| 216 | + "policy": "controller", | |
| 217 | + "lam": 0.03, | |
| 218 | + "kap": 0.5, | |
| 219 | + "budget": 8, | |
| 220 | + "loss": 0.49484713635041344, | |
| 221 | + "edits_per_token": 1.514779045946737, | |
| 222 | + "extra_ops_ratio": 0.18148439880138886, | |
| 223 | + "n_tokens": 3417 | |
| 224 | + }, | |
| 225 | + { | |
| 226 | + "policy": "controller", | |
| 227 | + "lam": 0.1, | |
| 228 | + "kap": 0.5, | |
| 229 | + "budget": 8, | |
| 230 | + "loss": 0.494571496005082, | |
| 231 | + "edits_per_token": 0.8311384255194615, | |
| 232 | + "extra_ops_ratio": 0.09575371844118925, | |
| 233 | + "n_tokens": 3417 | |
| 234 | + }, | |
| 235 | + { | |
| 236 | + "policy": "controller", | |
| 237 | + "lam": 0.3, | |
| 238 | + "kap": 0.5, | |
| 239 | + "budget": 8, | |
| 240 | + "loss": 0.4949139250905185, | |
| 241 | + "edits_per_token": 0.16417910447761194, | |
| 242 | + "extra_ops_ratio": 0.01783739648299291, | |
| 243 | + "n_tokens": 3417 | |
| 244 | + }, | |
| 245 | + { | |
| 246 | + "policy": "oracle1_greedy", | |
| 247 | + "budget": 1, | |
| 248 | + "diagnostic": true, | |
| 249 | + "loss": 0.48258088303196484, | |
| 250 | + "edits_per_token": 0.41960183767228176, | |
| 251 | + "extra_ops_ratio": 0.05653228511489004, | |
| 252 | + "n_tokens": 653 | |
| 253 | + }, | |
| 254 | + { | |
| 255 | + "policy": "oracle1_greedy", | |
| 256 | + "budget": 2, | |
| 257 | + "diagnostic": true, | |
| 258 | + "loss": 0.4654824284645536, | |
| 259 | + "edits_per_token": 0.7427258805513017, | |
| 260 | + "extra_ops_ratio": 0.10024228906558447, | |
| 261 | + "n_tokens": 653 | |
| 262 | + }, | |
| 263 | + { | |
| 264 | + "policy": "oracle1_greedy", | |
| 265 | + "budget": 4, | |
| 266 | + "diagnostic": true, | |
| 267 | + "loss": 0.44558831195918924, | |
| 268 | + "edits_per_token": 1.2633996937212864, | |
| 269 | + "extra_ops_ratio": 0.17127003457973417, | |
| 270 | + "n_tokens": 653 | |
| 271 | + }, | |
| 272 | + { | |
| 273 | + "policy": "oracle1_greedy", | |
| 274 | + "budget": 8, | |
| 275 | + "diagnostic": true, | |
| 276 | + "loss": 0.42770675203519065, | |
| 277 | + "edits_per_token": 2.021439509954058, | |
| 278 | + "extra_ops_ratio": 0.2735076162387912, | |
| 279 | + "n_tokens": 653 | |
| 280 | + }, | |
| 281 | + { | |
| 282 | + "policy": "oracle_two_step", | |
| 283 | + "diagnostic": true, | |
| 284 | + "one_step_gain": 0.012034434011612815, | |
| 285 | + "two_step_gain": 0.02329660284108129, | |
| 286 | + "greedy_then_best_gain": 0.023268351609679473, | |
| 287 | + "n_tokens": 174 | |
| 288 | + } | |
| 289 | + ] | |
| 290 | +} | |
| \ No newline at end of file | ||
modified
scripts/make_results_tables.py
+95 −5
@@ -74,15 +74,28 @@ System & seeds & loss b=0 & loss b=1 & loss b=2 & loss b=4 & loss b=8\\\midrule | ||
| 74 | 74 | body += f"{lab} & {n} & \\multicolumn{{5}}{{l}}{{{' / '.join(cells)}}}\\\\\n" |
| 75 | 75 | (OUT / "seed_matrix.tex").write_text(head + body + r"\bottomrule\end{tabular}\end{table}" + "\n") |
| 76 | 76 | for pre, lab in systems: |
| 77 | + tag = pre.replace("p4v2_", "vtwo") | |
| 78 | + if pre not in raw: # system not (yet) completed: emit explicit placeholders so the manuscript compiles and the audit flags them | |
| 79 | + macro(f"{tag}seeds", "0") | |
| 80 | + for bn in ("one", "two", "four", "eight"): | |
| 81 | + macro(f"{tag}gainb{bn}", "n/a") | |
| 82 | + for e in ("embzero", "embtwo", "embeight"): | |
| 83 | + macro(f"{tag}{e}", "n/a") | |
| 77 | 84 | if pre in raw: |
| 78 | 85 | v = raw[pre]["val"] |
| 79 | − if 0 in v and 2 in v: | |
| 80 | − macro(f"{pre.replace('p4v2_', 'vtwo')}gainbtwo", f"{100 * (1 - np.mean(v[2]) / np.mean(v[0])):.2f}") | |
| 81 | − macro(f"{pre.replace('p4v2_', 'vtwo')}seeds", str(raw[pre]["n_seeds"])) | |
| 86 | + for b, bn in [(1, "one"), (2, "two"), (4, "four"), (8, "eight")]: | |
| 87 | + if 0 in v and b in v: | |
| 88 | + macro(f"{tag}gainb{bn}", f"{100 * (1 - np.mean(v[b]) / np.mean(v[0])):.1f}") | |
| 89 | + macro(f"{tag}seeds", str(raw[pre]["n_seeds"])) | |
| 90 | + em = raw[pre]["em"] | |
| 91 | + if "dev_iid_b0" in em and "dev_iid_b2" in em: | |
| 92 | + macro(f"{tag}embzero", f"{100 * np.mean(em['dev_iid_b0']):.1f}"); macro(f"{tag}embtwo", f"{100 * np.mean(em['dev_iid_b2']):.1f}") | |
| 93 | + macro(f"{tag}embeight", f"{100 * np.mean(em.get('dev_iid_b8', em['dev_iid_b2'])):.1f}") | |
| 94 | + macro("vtwobzeroloss", f"{np.mean(raw[systems[0][0]]['val'][0]):.4f}" if systems[0][0] in raw else "n/a") | |
| 82 | 95 | |
| 83 | 96 | |
| 84 | 97 | def table_routing(macro): |
| 85 | − files = sorted(glob.glob("results/raw/routing_*.json")) | |
| 98 | + files = sorted(glob.glob("results/raw/routing_v1ctrl.json")) or sorted(glob.glob("results/raw/routing_*.json")) | |
| 86 | 99 | if not files: |
| 87 | 100 | return |
| 88 | 101 | d = json.load(open(files[-1])) |
@@ -100,6 +113,30 @@ Policy & setting & loss & edits/token & extra ops\\\midrule | ||
| 100 | 113 | continue |
| 101 | 114 | setting = ", ".join(f"{k}={v}" for k, v in r.items() if k in ("budget", "threshold", "lam", "kap") and v is not None) |
| 102 | 115 | body += f"{r['policy'].replace('_', ' ')}{' (diag.)' if r.get('diagnostic') else ''} & {setting} & {r['loss']:.4f} & {r['edits_per_token']:.2f} & {r['extra_ops_ratio']:.3f}\\\\\n" |
| 116 | + def pick(pol, **kw): | |
| 117 | + for r in d["records"]: | |
| 118 | + if r["policy"] == pol and all(r.get(k) == v for k, v in kw.items()): | |
| 119 | + return r | |
| 120 | + return None | |
| 121 | + b0 = pick("budget0") | |
| 122 | + if b0: | |
| 123 | + macro("routingbzero", f"{b0['loss']:.4f}") | |
| 124 | + for pol, tag in [("uniform", "uniform"), ("random_forced", "random"), ("fixed_pair", "pair")]: | |
| 125 | + for b in (1, 2, 8): | |
| 126 | + r = pick(pol, budget=b) | |
| 127 | + if r: | |
| 128 | + macro(f"routing{tag}b{'one' if b == 1 else 'two' if b == 2 else 'eight'}", f"{100 * (r['loss'] / b0['loss'] - 1):+.1f}") | |
| 129 | + r = pick("controller_locked") | |
| 130 | + if r: | |
| 131 | + macro("routingctrllocked", f"{100 * (r['loss'] / b0['loss'] - 1):+.1f}"); macro("routingctrlledits", f"{r['edits_per_token']:.2f}"); macro("routingctrllambda", f"{r['lam']}") | |
| 132 | + for b in (1, 8): | |
| 133 | + r = pick("oracle1_greedy", budget=b) | |
| 134 | + if r: | |
| 135 | + macro(f"routingoracleb{'one' if b == 1 else 'eight'}", f"{100 * (r['loss'] / b0['loss'] - 1):+.1f}"); macro(f"routingoracleedits{'one' if b == 1 else 'eight'}", f"{r['edits_per_token']:.2f}") | |
| 136 | + best_ent = min((r for r in d["records"] if r["policy"] == "entropy"), key=lambda r: r["loss"], default=None) | |
| 137 | + best_norm = min((r for r in d["records"] if r["policy"] == "norm"), key=lambda r: r["loss"], default=None) | |
| 138 | + if best_ent: macro("routingentropybest", f"{100 * (best_ent['loss'] / b0['loss'] - 1):+.1f}") | |
| 139 | + if best_norm: macro("routingnormbest", f"{100 * (best_norm['loss'] / b0['loss'] - 1):+.1f}") | |
| 103 | 140 | two = [r for r in d["records"] if r["policy"] == "oracle_two_step"] |
| 104 | 141 | if two: |
| 105 | 142 | t = two[0] |
@@ -133,7 +170,7 @@ Controller features & labels & Huber & sign acc. & Brier & ECE & opportunity & c | ||
| 133 | 170 | |
| 134 | 171 | |
| 135 | 172 | def table_labels(macro): |
| 136 | − files = sorted(glob.glob("results/analyzed/labels_*.json")) | |
| 173 | + files = sorted(glob.glob("results/analyzed/labels_labels_v1ctrl*.json")) or sorted(glob.glob("results/analyzed/labels_*.json")) | |
| 137 | 174 | if not files: |
| 138 | 175 | return |
| 139 | 176 | d = json.load(open(files[-1])) |
@@ -147,6 +184,11 @@ def table_labels(macro): | ||
| 147 | 184 | macro(f"labels{part}stoponly", f"{a['oracle_state_level_mean']:.4f}") |
| 148 | 185 | macro(f"labels{part}random", f"{a['random_action_mean']:.4f}") |
| 149 | 186 | macro(f"labels{part}nstates", f"{a['n_states']:,}") |
| 187 | + if "random_gain_high_vs_low_base_loss" in a: | |
| 188 | + macro(f"labels{part}oraclehigh", f"{a['oracle_gain_high_vs_low_base_loss']['high']:.4f}") | |
| 189 | + macro(f"labels{part}randomhigh", f"{a['random_gain_high_vs_low_base_loss']['high']:+.4f}") | |
| 190 | + macro(f"labels{part}topdecoracle", f"{a['top_decile_base_loss']['oracle']:.3f}"); macro(f"labels{part}topdecrandom", f"{a['top_decile_base_loss']['random']:+.3f}") | |
| 191 | + macro(f"labels{part}fracposhigh", f"{100 * a['frac_actions_positive_high_vs_low']['high']:.0f}"); macro(f"labels{part}fracposlow", f"{100 * a['frac_actions_positive_high_vs_low']['low']:.0f}") | |
| 150 | 192 | |
| 151 | 193 | |
| 152 | 194 | def table_latency(macro): |
@@ -172,3 +214,51 @@ Policy & budget & batch & median ms & p95 ms & cache bytes\\\midrule | ||
| 172 | 214 | |
| 173 | 215 | def make_all(macro): |
| 174 | 216 | table_seed_matrix(macro); table_routing(macro); table_controller(macro); table_labels(macro); table_latency(macro) |
| 217 | + | |
| 218 | + | |
| 219 | +def table_routing_seeds(macro): | |
| 220 | + """Per-seed routing summary for the v2 PRISME editors: budget 0, best fixed schedule, locked controller, oracle.""" | |
| 221 | + files = sorted(glob.glob("results/raw/routing_v2s*.json")) | |
| 222 | + if not files: | |
| 223 | + return | |
| 224 | + rows = [] | |
| 225 | + for f in files: | |
| 226 | + d = json.load(open(f)); recs = d["records"] | |
| 227 | + def pick(pol, **kw): | |
| 228 | + for r in recs: | |
| 229 | + if r["policy"] == pol and all(r.get(k) == v for k, v in kw.items()): | |
| 230 | + return r | |
| 231 | + b0 = pick("budget0"); fixed = [r for r in recs if r["policy"] in ("random_forced", "uniform", "fixed_pair")] | |
| 232 | + best_fixed = min(fixed, key=lambda r: r["loss"]); ctl = pick("controller_locked"); ora = pick("oracle1_greedy", budget=8) | |
| 233 | + ent = min((r for r in recs if r["policy"] == "entropy"), key=lambda r: r["loss"]); nrm = min((r for r in recs if r["policy"] == "norm"), key=lambda r: r["loss"]) | |
| 234 | + seed = Path(f).stem.replace("routing_v2s", "") | |
| 235 | + man = sorted(glob.glob(f"{RUNS}/controller_v2s{seed}_seed*/manifest.json")) | |
| 236 | + ev = json.load(open(man[-1])).get("eval_calib", {}) if man else {} | |
| 237 | + rows.append({"seed": seed, "b0": b0["loss"], "best_fixed": best_fixed["loss"], "best_fixed_name": f"{best_fixed['policy'].replace('_', ' ')} b={best_fixed['budget']}", | |
| 238 | + "entropy": ent["loss"], "norm": nrm["loss"], "ctrl": ctl["loss"], "ctrl_edits": ctl["edits_per_token"], "ctrl_lam": ctl["lam"], "ctrl_kap": ctl["kap"], | |
| 239 | + "oracle8": ora["loss"], "oracle8_edits": ora["edits_per_token"], "sign_acc": ev.get("sign_acc", float("nan")), "captured": ev.get("captured_fraction", float("nan"))}) | |
| 240 | + Path("results/analyzed/routing_seeds_v2.json").write_text(json.dumps(rows, indent=1)) | |
| 241 | + head = r"""\begin{table}[t]\centering\small | |
| 242 | +\caption{Learned routing per adapter seed (v2 backbone, dev-iid, 640 items): held-out answer-span loss of the | |
| 243 | +frozen backbone, of the best fixed schedule (named), of the best entropy and norm routers, of the locked | |
| 244 | +controller ($\lambda,\kappa$ selected on calibration rollouts; edits per token in parentheses), and of the | |
| 245 | +diagnostic greedy one-step oracle at budget 8. Calibration sign accuracy and captured fraction of the oracle | |
| 246 | +opportunity for each controller.} | |
| 247 | +\label{tab:routingseeds} | |
| 248 | +\begin{tabular}{lrlrrrrrr}\toprule | |
| 249 | +seed & budget 0 & best fixed & entropy & norm & controller (edits) & oracle b=8 (edits) & sign acc. & captured\\\midrule | |
| 250 | +""" | |
| 251 | + body = "" | |
| 252 | + for r in rows: | |
| 253 | + body += (f"{r['seed']} & {r['b0']:.4f} & {r['best_fixed']:.4f} ({r['best_fixed_name']}) & {r['entropy']:.4f} & {r['norm']:.4f} & " | |
| 254 | + f"{r['ctrl']:.4f} ({r['ctrl_edits']:.2f}) & {r['oracle8']:.4f} ({r['oracle8_edits']:.2f}) & {r['sign_acc']:.3f} & {r['captured']:+.3f}\\\\\n") | |
| 255 | + (OUT / "routing_seeds.tex").write_text(head + body + r"\bottomrule\end{tabular}\end{table}" + "\n") | |
| 256 | + b0 = np.array([r["b0"] for r in rows]); ctl = np.array([r["ctrl"] for r in rows]); bf = np.array([r["best_fixed"] for r in rows]); ora = np.array([r["oracle8"] for r in rows]) | |
| 257 | + macro("vtwoctrlseeds", str(len(rows))); macro("vtwoctrlrel", f"{100 * (ctl / b0 - 1).mean():+.1f}"); macro("vtwoctrlrelsd", f"{100 * (ctl / b0 - 1).std(ddof=1) if len(rows) > 1 else 0:.1f}") | |
| 258 | + macro("vtwobestfixedrel", f"{100 * (bf / b0 - 1).mean():+.1f}"); macro("vtwooraclerel", f"{100 * (ora / b0 - 1).mean():+.1f}") | |
| 259 | + macro("vtwoctrlbetter", str(int((ctl < b0).sum()))) | |
| 260 | + | |
| 261 | + | |
| 262 | +_old_make_all = make_all | |
| 263 | +def make_all(macro): # noqa: F811 | |
| 264 | + _old_make_all(macro); table_routing_seeds(macro) | |
added
scripts/reproduce_pilot.sh
+65 −0
@@ -0,0 +1,65 @@ | ||
| 1 | +#!/bin/bash | |
| 2 | +# Miniature end-to-end replication on CPU (minutes): backbone -> editor bootstrap -> counterfactual labels -> | |
| 3 | +# controller -> routing evaluation. Produces real run directories (tag "mini") and results/raw/routing_mini.json. | |
| 4 | +set -e | |
| 5 | +cd "$(dirname "$0")/.." | |
| 6 | +PY=.venv/bin/python | |
| 7 | +export PRISME_MINI=1 | |
| 8 | +test -f data/splits/synthetic_v1/train.jsonl || $PY -c "import sys; sys.path.insert(0,'.'); from data.generators.synthetic import write_splits; write_splits('data/splits/synthetic_v1')" | |
| 9 | +$PY - <<'PY' | |
| 10 | +import yaml | |
| 11 | +model = {"name": "mini", "vocab_size": 128, "d_model": 96, "n_layers": 2, "n_heads": 4, "n_kv_heads": 2, "ffn_width": 256, "max_seq_len": 320, | |
| 12 | + "w": 32, "ffn_w": 96, "n_slots": 16, "n_editor_heads": 2, "r_max": 8, "readout_zero_init": False, "readout_init_std": 0.2, | |
| 13 | + "ctrl_input": "h", "ctrl_use_entropy": True} | |
| 14 | +data = {"kind": "synthetic", "tokenizer": "char", "splits_dir": "data/splits/synthetic_v1", "loss_span": "all", "eval_splits": ["dev_iid"]} | |
| 15 | +bb = {"name": "mini_backbone", "seed": 1, "mode": "backbone_only", "model": model, "init": {"freeze_backbone": False}, "data": data, | |
| 16 | + "train": {"batch_size": 16, "seq_len": 320, "steps": 150, "lr": 1e-3, "warmup": 10, "weight_decay": 0.1, "grad_clip": 1.0, "log_every": 50, "eval_every": 150, "eval_batches": 2, "ckpt_every": 150}, | |
| 17 | + "em_max_items": 32} | |
| 18 | +yaml.safe_dump(bb, open("configs/experiments/mini_backbone.yaml", "w"), sort_keys=False) | |
| 19 | +PY | |
| 20 | +$PY -m training.train_editor --config configs/experiments/mini_backbone.yaml --device cpu --run-root experiments/runs > experiments/logs/mini_backbone.log 2>&1 | |
| 21 | +BB=$(ls -td experiments/runs/mini_backbone_seed* | head -1) | |
| 22 | +$PY - "$BB" <<'PY' | |
| 23 | +import sys, yaml | |
| 24 | +bb = sys.argv[1] | |
| 25 | +e = yaml.safe_load(open("configs/experiments/mini_backbone.yaml")) | |
| 26 | +e.update(name="mini_editor", mode="prisme", init={"backbone_checkpoint": f"{bb}/checkpoint", "freeze_backbone": True, "auto_readout_scale": True}, | |
| 27 | + budgets=[0, 1, 2, 4, 8], budget_probs=[0.2] * 5, budget_per="position", em_budgets=[0, 2], em_max_items=32) | |
| 28 | +e["data"]["loss_span"] = "answer"; e["train"].update(steps=120, eval_every=120, ckpt_every=120) | |
| 29 | +yaml.safe_dump(e, open("configs/experiments/mini_editor.yaml", "w"), sort_keys=False) | |
| 30 | +PY | |
| 31 | +$PY -m training.train_editor --config configs/experiments/mini_editor.yaml --device cpu > experiments/logs/mini_editor.log 2>&1 | |
| 32 | +ED=$(ls -td experiments/runs/mini_editor_seed* | head -1) | |
| 33 | +$PY - "$ED" <<'PY' | |
| 34 | +import sys, yaml | |
| 35 | +ed = sys.argv[1] | |
| 36 | +lab = {"name": "labels_mini", "seed": 1, "mode": "prisme", "model": "from_checkpoint", "checkpoint": f"{ed}/checkpoint", "use_policy": False, | |
| 37 | + "data": {"kind": "synthetic", "tokenizer": "char", "splits_dir": "data/splits/synthetic_v1", "loss_span": "answer"}, | |
| 38 | + "collect": {"batch_size": 16, "seq_len": 320, "max_prefix": 2, "audit_every": 2}, | |
| 39 | + "partitions": {"train": {"split": "ctrl_train", "n_batches": 12, "stream_seed": 11}, "calib": {"split": "calib", "n_batches": 4, "stream_seed": 12}}} | |
| 40 | +yaml.safe_dump(lab, open("configs/experiments/labels_mini.yaml", "w"), sort_keys=False) | |
| 41 | +PY | |
| 42 | +$PY -m training.collect_interventions --config configs/experiments/labels_mini.yaml --device cpu > experiments/logs/labels_mini.log 2>&1 | |
| 43 | +L=$(ls -td experiments/runs/labels_mini_seed* | head -1) | |
| 44 | +$PY - "$ED" "$L" <<'PY' | |
| 45 | +import sys, yaml | |
| 46 | +ed, L = sys.argv[1], sys.argv[2] | |
| 47 | +ctl = {"name": "controller_mini", "seed": 1, "mode": "prisme", "model": "from_checkpoint", "checkpoint": f"{ed}/checkpoint", | |
| 48 | + "labels": {"train": f"{L}/labels_train.pt", "calib": f"{L}/labels_calib.pt"}, | |
| 49 | + "train": {"steps": 60, "lr": 1e-3, "weight_decay": 0.01, "alpha": 1.0, "beta": 0.5, "gamma": 0.1, "huber_delta": 0.1, "log_every": 20, "eval_every": 30, "seq_len": 320}, | |
| 50 | + "lambda_grid": [0.0, 0.3], "kappa_grid": [0.0], "sweep_batches": 2, "max_budget": 4, "selection_rule": "max_loss_reduction_per_ops"} | |
| 51 | +yaml.safe_dump(ctl, open("configs/experiments/controller_mini.yaml", "w"), sort_keys=False) | |
| 52 | +PY | |
| 53 | +$PY -m training.train_controller --config configs/experiments/controller_mini.yaml --device cpu > experiments/logs/controller_mini.log 2>&1 | |
| 54 | +C=$(ls -td experiments/runs/controller_mini_seed* | head -1) | |
| 55 | +$PY - "$C" <<'PY' | |
| 56 | +import sys, yaml | |
| 57 | +c = sys.argv[1] | |
| 58 | +rt = {"seed": 1, "mode": "prisme", "model": "from_checkpoint", "checkpoint": f"{c}/checkpoint", | |
| 59 | + "data": {"kind": "synthetic", "tokenizer": "char", "splits_dir": "data/splits/synthetic_v1", "loss_span": "answer", "split": "dev_iid"}, | |
| 60 | + "batch_size": 16, "seq_len": 320, "n_batches": 2, "budgets": [1, 2], "oracle_batches": 1, "two_step_batches": 1, | |
| 61 | + "entropy_thresholds": [1.0], "norm_thresholds": [0.1], "lambda_grid": [0.0]} | |
| 62 | +yaml.safe_dump(rt, open("configs/experiments/routing_mini.yaml", "w"), sort_keys=False) | |
| 63 | +PY | |
| 64 | +$PY -m evaluation.routing --config configs/experiments/routing_mini.yaml --split dev_iid --device cpu --out results/raw/routing_mini.json > experiments/logs/routing_mini.log 2>&1 | |
| 65 | +echo "MINI PIPELINE OK: $BB -> $ED -> $L -> $C -> results/raw/routing_mini.json" | |
added
scripts/run_index.py
+28 −0
@@ -0,0 +1,28 @@ | ||
| 1 | +#!/usr/bin/env python | |
| 2 | +"""Build reproducibility/run_index.md from every run manifest found locally and on the listed nodes (read-only).""" | |
| 3 | +import glob, json, subprocess, sys | |
| 4 | +from pathlib import Path | |
| 5 | + | |
| 6 | +NODES = sys.argv[1:] or ["M3U96a", "M3U96b", "M2U64", "M4M64c", "M4M64a", "M5M36", "M4BP48", "M4BP36", "m4mn"] | |
| 7 | +rows = {} | |
| 8 | +for mp in glob.glob("experiments/runs/*/manifest.json"): | |
| 9 | + m = json.load(open(mp)); rows[m["run_id"]] = (m, "laptop") | |
| 10 | +for n in NODES: | |
| 11 | + try: | |
| 12 | + out = subprocess.run(["ssh", "-o", "ConnectTimeout=8", n, "cat ~/wp31/prisme-slm/experiments/runs/*/manifest.json 2>/dev/null | python3 -c 'import sys,json; d=sys.stdin.read().replace(\"}\\n{\",\"}\\x00{\"); print(\"\\x00\".join(d.split(\"\\x00\")))'"], | |
| 13 | + capture_output=True, text=True, timeout=40).stdout | |
| 14 | + for chunk in out.split("\x00"): | |
| 15 | + chunk = chunk.strip() | |
| 16 | + if chunk: | |
| 17 | + try: | |
| 18 | + m = json.loads(chunk); rows.setdefault(m["run_id"], (m, n)) | |
| 19 | + except json.JSONDecodeError: | |
| 20 | + pass | |
| 21 | + except Exception as e: # noqa: BLE001 | |
| 22 | + print("skip", n, e) | |
| 23 | +lines = ["# Run index (auto-generated by scripts/run_index.py)", "", "| run_id | state | host | device | wall s | train tokens | peak mem (GB) | commit | notes |", "|---|---|---|---|---|---|---|---|---|"] | |
| 24 | +for rid, (m, where) in sorted(rows.items()): | |
| 25 | + pm = m.get("peak_memory_bytes"); pm = f"{pm/1e9:.1f}" if isinstance(pm, (int, float)) and pm else "" | |
| 26 | + lines.append(f"| {rid} | {m.get('state','')} | {where} | {m.get('device','')} | {m.get('wall_seconds','')} | {m.get('train_tokens','')} | {pm} | {str(m.get('code_commit',''))[:8]} | {m.get('mode','')} |") | |
| 27 | +Path("reproducibility/run_index.md").write_text("\n".join(lines) + "\n") | |
| 28 | +print(len(rows), "runs indexed") | |
| 29 | ||