Targeted Bridge Allocation
The one idea you need
A small model must fix code fusing two skills it only ever saw apart — say, sorting a list and reading a tuple, never both at once. Your worked examples are a fixed pool: spread them across every new fusion, or pile them onto the hardest?
The question
With a fixed budget of worked examples for code patterns a model has never seen combined, should you spread them evenly or pile them onto the hardest patterns?
What we found
Barely. Piling examples on the hardest never-seen combinations repaired 33% of test cases versus 28% for spreading them evenly — a three-case edge on sixty tests, and no better than the same budget spent on easy combinations. The real lever was not allocation: strip or scramble the step-by-step solution attached to each example and success crashed from 33% to under 10%.
Why it matters
When you cannot add more training data, don't over-engineer which cases to target — the gain is marginal. Spend your effort attaching a correct step-by-step solution to every example; that pairing, not the allocation, is what carries the transfer.
On this page
Results at a glance 8
How to read
Each bar is the share of never-seen skill-combinations a trained model repairs; bars run left to right from the untrained model, through spreading examples evenly, to concentrating them on the hardest combinations. Taller is better.
Takeaway → The concentrated hard-case bar is tallest at 33%, just five points above even spreading, yet every trained bar towers over the untrained model's 0%.
Data table
| Condition | trace-conditioned LoRA |
|---|---|
| frozen | 0% |
| uniform 2/family | 28.3% |
| uniform 4/family | 25% |
| hard-target 8/8/8 | 33.3% |
| hard-target seen-preserving | 25% |
| easy-target control | 31.7% |
Numbers from reports/final_results.csv (repair_at_1, recombination_holdout)
Technical framing
Recombination-holdout repair by bridge allocation strategy (fixed 240-record budget) — Targeting hard families wins narrowly (33.3% vs 28.3% uniform), but all trace-trained allocations land in a 25-33% band far above frozen 0%.
How to read
Three test types along the bottom — familiar problems, reworded versions, and never-seen combinations; colored bars are training examples that include a correct step-by-step solution, none, or a scrambled one. Taller is better.
Takeaway → The correct-solution bars dwarf the rest everywhere, falling from about 78% to under 30% even on familiar problems and from 33% to under 10% on new combinations.
Data table
| Evaluation split | aligned trace | no trace | shuffled trace |
|---|---|---|---|
| seen-combination IID | 77.8% | 27.8% | 30.6% |
| format shift | 69.4% | 19.4% | 25% |
| recombination holdout | 33.3% | 8.3% | 10% |
Numbers from reports/final_results.csv (repair_at_1 for hard_target_trace, hard_target_no_trace, hard_target_shuffled_trace)
Technical framing
Trace quality is decisive: aligned vs no-trace vs shuffled-trace training — Removing or scrambling the trace in the hard-target training data collapses repair on every split; the allocation effect rides on aligned trace evidence.
How to read
Bars grouped by which never-seen skill-combination family; colored bars are spreading examples evenly, concentrating on the hardest families, and a control that concentrates on the easy families. Taller is better.
Takeaway → Concentrating on hard families lifts two families off zero that even spreading never cracks, while the already-easy families stay high — one pinned at 100%, the other holding around a third.
Data table
| Held-out recombination family | uniform 2/family | hard-target 8/8/8 | easy-target control |
|---|---|---|---|
| length_contains_code | 0% | 25% | 8.3% |
| modulo_sum_label | 0% | 0% | 0% |
| tuple_branch_label | 0% | 16.7% | 16.7% |
| sorted_contains_count | 100% | 100% | 100% |
| sorted_tuple_affine | 41.7% | 25% | 33.3% |
Numbers from reports/final_results_by_family.csv (repair_at_1, recombination_holdout)
Technical framing
Holdout repair per held-out family: where the bridge examples went matters — Hard-targeting opens two of three hard families (first three bars) that uniform allocation leaves at 0%, while the easy families stay saturated or noisy.
How to read
Each bar is repair on never-seen combinations for spreading examples evenly versus pouring sixteen examples into a single skill family. Taller is better.
Takeaway → Overloading one family helps modestly at best — 33% for the remainder-math skill — and actually lowers repair for the length skill, so sheer volume is not what helps.
Data table
| Condition | trace-conditioned LoRA |
|---|---|
| uniform 2/family | 28.3% |
| modulo dosed to 16 | 33.3% |
| length dosed to 16 | 20% |
| tuple dosed to 16 | 28.3% |
Numbers from reports/final_results.csv (repair_at_1, recombination_holdout)
Technical framing
Single-family 16-example dose probes vs uniform baseline — Pouring 16 bridge examples into one hard family helps at most modestly (modulo) and can hurt aggregate holdout (length), so dose alone is not the lever.
How to read
One group of bars per training setup, with two colors: repair on familiar problems and on reworded versions of them; the leftmost frozen pair is the untrained model. Taller is better.
Takeaway → Every trained setup clusters in a 69-83% band, so concentrating the worked examples on hard cases sacrifices nothing on familiar or reworded problems.
Data table
| Training condition | Seen-combination IID | Format shift |
|---|---|---|
| Frozen | 0% | 0% |
| Uniform 2 | 75% | 72.2% |
| Uniform 4 | 72.2% | 83.3% |
| Hard-target | 77.8% | 69.4% |
| Seen-preserving target | 75% | 72.2% |
| Easy-target control | 80.6% | 80.6% |
| Modulo-16 probe | 83.3% | 75% |
| Length-16 probe | 80.6% | 77.8% |
| Tuple-16 probe | 75% | 69.4% |
Numbers from report table (reports/targeted_bridge_allocation_report.md, Overall Results)
Technical framing
Targeting bridges does not hurt in-distribution repair — All 240-record allocations land in a 69-83% band on seen and format-shift splits, so concentrating bridges costs nothing in-distribution.
How to read
Three test types along the bottom; colored bars give the model, inside its prompt, a correct step-by-step solution, none, or a scrambled one. Taller is better.
Takeaway → Removing or scrambling the solution from the prompt crashes repair even on familiar problems, from 78% to under 20%.
Data table
| Evaluation split | Aligned trace prompt | No-trace prompt | Shuffled-trace prompt |
|---|---|---|---|
| Seen-combination IID | 77.8% | 19.4% | 8.3% |
| Format shift | 69.4% | 16.7% | 5.6% |
| Recombination holdout | 33.3% | 8.3% | 6.7% |
Numbers from report table (reports/targeted_bridge_allocation_report.md, Prompt Ablations)
Technical framing
Eval-time prompt ablation: the hard-target adapter needs an aligned trace in the prompt — Removing or shuffling the trace at evaluation time collapses the trained hard-target adapter from 78% to under 20% even on seen data.
How to read
One bar per task mechanism, sorted most to least repaired, for the hard-case model on never-seen combinations. Taller is better.
Takeaway → Repair splits sharply: step-through-a-sequence and text-cleanup tasks reach 100%, while remainder-arithmetic tasks stay flat at 0%.
Data table
| Task factor | Hard-target trace, recombination holdout |
|---|---|
| sequence_iteration | 100% |
| string_normalization | 100% |
| ordering | 62.5% |
| string_match | 62.5% |
| aggregation | 50% |
| string_format | 35.4% |
| length | 25% |
| tuple_access | 20.8% |
| arithmetic | 16.7% |
| modulo | 0% |
Numbers from report table (reports/targeted_bridge_allocation_report.md, Hard-Target Holdout By Factor)
Technical framing
Hard-target holdout repair splits sharply by task mechanism — Iteration and normalization factors are fully repaired while modulo stays at 0%; 10 of 11 factors shown (branching, 13.9%, omitted).
How to read
Each dot is a training setup; left to right is the total worked examples used, up is repair on never-seen combinations. A rising trend would mean more examples help; higher is better.
Takeaway → Setups with the exact same example count scatter from 20% to 33%, so how examples are allocated matters more than how many.
Data table
| Total bridge examples in the 240-record budget | Trace-trained allocation conditions |
|---|---|
| 10 | 28.3% |
| 20 | 25% |
| 24 | 33.3% |
| 28 | 33.3% |
Numbers from report table (reports/targeted_bridge_allocation_report.md, Allocation Plans + Overall Results)
Technical framing
Total bridge budget does not predict holdout repair — Conditions with identical bridge totals span 20-33% holdout repair, so allocation across families matters more than bridge count.
In the author’s words from the Overview · “Final Result Snapshot”
The full evaluation matrix completed 39/39 jobs. Main recombination-holdout results (table on the experiment page). Key readout: hard_target_trace tied the top aggregate holdout score while covering more target-family successes than the easy-target control. Trace quality was decisive: no-trace and shuffled-trace controls collapsed on the target families.
Overview
Standalone experiment package for testing whether fixed-budget targeted bridge allocation improves trace-conditioned recombination repair compared with uniform bridge allocation.
Design
Every trained condition has exactly 240 training records. Exact bridge examples are drawn from five held-out recombination families. Adding bridge examples removes seen-combination examples, so allocation strategy is the tested variable rather than total dataset size.
Core allocation conditions:
uniform2_trace: 2 exact bridge examples for each held-out family.uniform4_trace: 4 exact bridge examples for each held-out family.hard_target_trace: 8 bridge examples for each target family and 2 for each responsive-control family.hard_target_seen_preserving_trace: 6 bridge examples for each target family and 1 for each responsive-control family, matching the uniform4 bridge total.easy_target_control_trace: same bridge total ashard_target_trace, concentrated on responsive-control families.modulo16_trace,length16_trace,tuple16_trace: light single-family high-dose probes, with one target family raised to 16 bridge examples and all other held-out families kept at 2.hard_target_no_traceandhard_target_shuffled_trace: controls for whether the main targeted allocation depends on aligned trace evidence.
Layout
configs/experiment.json: fixed design, model, training, and evaluation settings.data/: generated JSONL datasets and dataset manifest.scripts/: dataset generation, LoRA training runner, final evaluation runner, evaluator, and report generator.reports/: training manifests, final evaluation JSON, CSV summaries, and markdown report.figures/: generated plots.logs/experiment_log.md: chronological run log.run_logs/: raw console logs for dataset build, training, evaluation, and report generation.
Large model artifacts are intentionally outside this directory:
large_artifacts/targeted_bridge_allocation/models/
The compact experiment directory should contain scripts, logs, data, reports, and figures only. Adapter weights and training checkpoints are separated so this directory can be downloaded without multi-GB model files.
Final Result Snapshot
The full evaluation matrix completed 39/39 jobs. Main recombination-holdout results:
| Condition | Recombination Holdout |
|---|---|
frozen_trace | 0.0% (0/60) |
uniform2_trace | 28.3% (17/60) |
uniform4_trace | 25.0% (15/60) |
hard_target_trace | 33.3% (20/60) |
hard_target_seen_preserving_trace | 25.0% (15/60) |
easy_target_control_trace | 31.7% (19/60) |
modulo16_trace | 33.3% (20/60) |
length16_trace | 20.0% (12/60) |
tuple16_trace | 28.3% (17/60) |
hard_target_no_trace | 8.3% (5/60) |
hard_target_shuffled_trace | 10.0% (6/60) |
Key readout: hard_target_trace tied the top aggregate holdout score while covering more target-family successes than the easy-target control. Trace quality was decisive: no-trace and shuffled-trace controls collapsed on the target families.
Primary outputs:
reports/targeted_bridge_allocation_report.mdreports/final_results.csvreports/final_results_by_family.csvreports/final_results_by_factor.csvfigures/final_repair_by_condition_split.pngfigures/recombination_holdout_by_family.pngreports/large_artifacts_manifest.md
Core Commands
Build data:
python experiments/targeted_bridge_allocation/scripts/build_allocation_dataset.py \
--output-dir experiments/targeted_bridge_allocation/dataTrain adapters:
python experiments/targeted_bridge_allocation/scripts/run_training.py --suite allRun final evaluations:
python experiments/targeted_bridge_allocation/scripts/run_final_evaluations.py --suite allGenerate report:
python experiments/targeted_bridge_allocation/scripts/make_report.pyReport
Rendered from reports/targeted_bridge_allocation_report.md
Question
Does fixed-budget targeted bridge allocation improve trace-conditioned recombination repair compared with uniform bridge allocation?
Design
- Every trained condition uses a fixed 240-record budget.
- Uniform baselines allocate exact bridge examples evenly across five held-out recombination families.
- Targeted conditions concentrate bridge examples on three target families while retaining some bridges for two responsive-control families.
- A seen-preserving targeted condition keeps total bridge count equal to the uniform4 baseline.
- An easy-target control spends the same bridge budget as the main targeted condition, but concentrates it on the responsive-control families.
- Three light single-family probes raise one target family to 16 bridge examples while keeping every other held-out family at 2.
- No-trace and shuffled-trace controls on the main targeted allocation test whether any allocation effect depends on aligned trace evidence.
- Checkpoints and adapter weights are stored outside this experiment directory under
large_artifacts/targeted_bridge_allocation/models/.
Allocation Plans
| Plan | Bridge total | Seen total | modulo_sum_label | length_contains_code | tuple_branch_label | sorted_contains_count | sorted_tuple_affine |
|---|---|---|---|---|---|---|---|
| Uniform 2 trace | 10 | 230 | 2 | 2 | 2 | 2 | 2 |
| Uniform 4 trace | 20 | 220 | 4 | 4 | 4 | 4 | 4 |
| Hard-target trace | 28 | 212 | 8 | 8 | 8 | 2 | 2 |
| Hard-target seen-preserving trace | 20 | 220 | 6 | 6 | 6 | 1 | 1 |
| Easy-target control trace | 28 | 212 | 2 | 2 | 2 | 11 | 11 |
| Modulo-16 trace | 24 | 216 | 16 | 2 | 2 | 2 | 2 |
| Length-16 trace | 24 | 216 | 2 | 16 | 2 | 2 | 2 |
| Tuple-16 trace | 24 | 216 | 2 | 2 | 16 | 2 | 2 |
Overall Results
| Condition | Seen-Combination IID | Format Shift | Recombination Holdout |
|---|---|---|---|
| Frozen trace | 0.0% (0/36) | 0.0% (0/36) | 0.0% (0/60) |
| Uniform 2 trace | 75.0% (27/36) | 72.2% (26/36) | 28.3% (17/60) |
| Uniform 4 trace | 72.2% (26/36) | 83.3% (30/36) | 25.0% (15/60) |
| Hard-target trace | 77.8% (28/36) | 69.4% (25/36) | 33.3% (20/60) |
| Hard-target seen-preserving trace | 75.0% (27/36) | 72.2% (26/36) | 25.0% (15/60) |
| Easy-target control trace | 80.6% (29/36) | 80.6% (29/36) | 31.7% (19/60) |
| Modulo-16 trace | 83.3% (30/36) | 75.0% (27/36) | 33.3% (20/60) |
| Length-16 trace | 80.6% (29/36) | 77.8% (28/36) | 20.0% (12/60) |
| Tuple-16 trace | 75.0% (27/36) | 69.4% (25/36) | 28.3% (17/60) |
| Hard-target no-trace | 27.8% (10/36) | 19.4% (7/36) | 8.3% (5/60) |
| Hard-target shuffled-trace train | 30.6% (11/36) | 25.0% (9/36) | 10.0% (6/60) |
Allocation Comparison
| Condition | Seen-Combination IID | Format Shift | Recombination Holdout |
|---|---|---|---|
| Uniform 2 trace | 75.0% (27/36) | 72.2% (26/36) | 28.3% (17/60) |
| Uniform 4 trace | 72.2% (26/36) | 83.3% (30/36) | 25.0% (15/60) |
| Hard-target trace | 77.8% (28/36) | 69.4% (25/36) | 33.3% (20/60) |
| Hard-target seen-preserving trace | 75.0% (27/36) | 72.2% (26/36) | 25.0% (15/60) |
| Easy-target control trace | 80.6% (29/36) | 80.6% (29/36) | 31.7% (19/60) |
Light Single-Family Probes
| Condition | Seen-Combination IID | Format Shift | Recombination Holdout |
|---|---|---|---|
| Uniform 2 trace | 75.0% (27/36) | 72.2% (26/36) | 28.3% (17/60) |
| Modulo-16 trace | 83.3% (30/36) | 75.0% (27/36) | 33.3% (20/60) |
| Length-16 trace | 80.6% (29/36) | 77.8% (28/36) | 20.0% (12/60) |
| Tuple-16 trace | 75.0% (27/36) | 69.4% (25/36) | 28.3% (17/60) |
Prompt Ablations
| Condition | Seen-Combination IID | Format Shift | Recombination Holdout |
|---|---|---|---|
| Hard-target trace | 77.8% (28/36) | 69.4% (25/36) | 33.3% (20/60) |
| Hard-target trace, no-trace prompt | 19.4% (7/36) | 16.7% (6/36) | 8.3% (5/60) |
| Hard-target trace, shuffled-trace prompt | 8.3% (3/36) | 5.6% (2/36) | 6.7% (4/60) |
Recombination Holdout By Family
| Family | Uniform 2 trace | Uniform 4 trace | Hard-target trace | Hard-target seen-preserving trace | Easy-target control trace | Modulo-16 trace | Length-16 trace | Tuple-16 trace |
|---|---|---|---|---|---|---|---|---|
| length_contains_code | 0.0% (0/12) | 16.7% (2/12) | 25.0% (3/12) | 0.0% (0/12) | 8.3% (1/12) | 0.0% (0/12) | 25.0% (3/12) | 0.0% (0/12) |
| modulo_sum_label | 0.0% (0/12) | 8.3% (1/12) | 0.0% (0/12) | 41.7% (5/12) | 0.0% (0/12) | 41.7% (5/12) | 0.0% (0/12) | 16.7% (2/12) |
| sorted_contains_count | 100.0% (12/12) | 58.3% (7/12) | 100.0% (12/12) | 66.7% (8/12) | 100.0% (12/12) | 66.7% (8/12) | 41.7% (5/12) | 58.3% (7/12) |
| sorted_tuple_affine | 41.7% (5/12) | 41.7% (5/12) | 25.0% (3/12) | 16.7% (2/12) | 33.3% (4/12) | 58.3% (7/12) | 33.3% (4/12) | 50.0% (6/12) |
| tuple_branch_label | 0.0% (0/12) | 0.0% (0/12) | 16.7% (2/12) | 0.0% (0/12) | 16.7% (2/12) | 0.0% (0/12) | 0.0% (0/12) | 16.7% (2/12) |
Hard-Target Holdout By Factor
| Factor | repair@1 |
|---|---|
| aggregation | 50.0% (12/24) |
| arithmetic | 16.7% (8/48) |
| branching | 13.9% (5/36) |
| length | 25.0% (3/12) |
| modulo | 0.0% (0/12) |
| ordering | 62.5% (15/24) |
| sequence_iteration | 100.0% (12/12) |
| string_format | 35.4% (17/48) |
| string_match | 62.5% (15/24) |
| string_normalization | 100.0% (12/12) |
| tuple_access | 20.8% (5/24) |
Readout
- Best core recombination result: Hard-target trace at 33.3% (20/60).
- Hard-target vs uniform2: 33.3% (20/60) vs 28.3% (17/60), delta 5.0%.
- Seen-preserving target vs uniform4: 25.0% (15/60) vs 25.0% (15/60), delta 0.0%.
- Hard-target vs easy-target budget control: 33.3% (20/60) vs 31.7% (19/60), delta 1.7%.
Figures
experiments/targeted_bridge_allocation/figures/final_repair_by_condition_split.pngexperiments/targeted_bridge_allocation/figures/recombination_holdout_by_family.png
Artifact Layout
- Compact artifacts:
experiments/targeted_bridge_allocation/. - Large artifacts:
large_artifacts/targeted_bridge_allocation/. - Dataset manifest:
experiments/targeted_bridge_allocation/data/dataset_manifest.json. - Evaluation manifest:
experiments/targeted_bridge_allocation/reports/final/final_evaluation_jobs.json.
Experiment log 7
Show the running log (7 entries, 2026-06-22)
2026-06-22
- Created standalone experiment directory at
experiments/targeted_bridge_allocation/. - Created large-artifact directory at
large_artifacts/targeted_bridge_allocation/models/. - Defined the central question: whether targeted allocation of a fixed bridge-example budget improves trace-conditioned recombination repair compared with uniform allocation.
Planned a fixed-budget allocation experiment:
- every trained condition has 240 records,
- uniform baselines allocate 2 or 4 exact bridge examples to every held-out family,
- the main targeted condition allocates 8 bridge examples to each target family and 2 to each responsive-control family,
- a seen-preserving targeted condition keeps the total bridge count equal to the uniform4 baseline,
- an easy-target control spends the same bridge budget as the main targeted condition on responsive-control families,
- three light single-family probes raise one target family at a time to 16 bridge examples,
- no-trace and shuffled-trace controls test whether the targeted allocation depends on aligned trace evidence.
Implemented the experiment package:
scripts/build_allocation_dataset.pyscripts/eval_allocation.pyscripts/run_training.pyscripts/run_final_evaluations.pyscripts/make_report.py
The builder validates every generated record before writing:
- wrong implementation fails visible tests,
- target corrective diff applies,
- target implementation passes visible and hidden tests,
- visible and hidden inputs are disjoint.
Next step: build and validate the datasets, then inspect the manifest before starting training.
Dataset Build
- Ran
scripts/build_allocation_dataset.pywith seed20260622. - Completed executable validation for every generated record.
Wrote eight 240-record training files:
repair_train_uniform2.jsonlrepair_train_uniform4.jsonlrepair_train_hard_target.jsonlrepair_train_hard_target_seen_preserving.jsonlrepair_train_easy_target_control.jsonlrepair_train_modulo16.jsonlrepair_train_length16.jsonlrepair_train_tuple16.jsonl
Wrote three fixed evaluation splits:
repair_val_seen_iid.jsonl: 36 records.repair_val_format_shift.jsonl: 36 records.repair_val_recombination_holdout.jsonl: 60 records.
Verified allocation invariants from
data/dataset_manifest.json:uniform2: 2 bridge examples for every held-out factor pair.uniform4: 4 bridge examples for every held-out factor pair.hard_target: 8 bridge examples foraggregation+modulo,branching+tuple_access, andlength+string_match; 2 each forordering+string_matchandordering+tuple_access.hard_target_seen_preserving: 6 target-family bridge examples and 1 responsive-control bridge example for each responsive-control pair; total bridge count matchesuniform4.easy_target_control: same bridge total ashard_target, but 11 bridge examples each forordering+string_matchandordering+tuple_access.modulo16: 16 bridge examples foraggregation+modulo; 2 for every other held-out factor pair.length16: 16 bridge examples forlength+string_match; 2 for every other held-out factor pair.tuple16: 16 bridge examples forbranching+tuple_access; 2 for every other held-out factor pair.
- Compact experiment directory after dataset build: about 15 MB.
- Large artifact directory remains empty before training.
- Confirmed no
.safetensors,.bin,.pt, or.pthfiles are present in the compact experiment directory.
Next step: train the allocation adapters and controls.
Training
- Ran
scripts/run_training.py --suite all. - Completed 10/10 LoRA training jobs.
- Wrote adapter and checkpoint artifacts under
large_artifacts/targeted_bridge_allocation/models/. Training runtimes:
uniform2_trace: 429.947 seconds.uniform4_trace: 442.551 seconds.hard_target_trace: 446.382 seconds.hard_target_seen_preserving_trace: 420.899 seconds.easy_target_control_trace: 441.100 seconds.modulo16_trace: 428.771 seconds.length16_trace: 444.229 seconds.tuple16_trace: 426.457 seconds.hard_target_no_trace: 437.514 seconds.hard_target_shuffled_trace: 416.731 seconds.
Final checkpoint eval-loss pattern:
hard_target_tracehad the strongest loss profile among trained adapters.uniform4_tracewas close.hard_target_no_traceandhard_target_shuffled_tracewere much weaker, indicating that trace quality mattered during training.
Next step: run the final 39-job evaluation matrix.
Final Evaluation
- Ran
scripts/run_final_evaluations.py --suite all. - Completed 39/39 evaluation jobs.
- Wrote per-job JSON results under
reports/final/. - Wrote final job manifest at
reports/final/final_evaluation_jobs.json. Overall recombination-holdout results:
frozen_trace: 0/60.uniform2_trace: 17/60.uniform4_trace: 15/60.hard_target_trace: 20/60.hard_target_seen_preserving_trace: 15/60.easy_target_control_trace: 19/60.modulo16_trace: 20/60.length16_trace: 12/60.tuple16_trace: 17/60.hard_target_no_trace: 5/60.hard_target_shuffled_trace: 6/60.hard_target_tracewith no-trace prompt: 5/60.hard_target_tracewith shuffled-trace prompt: 4/60.
Main target-family holdout counts:
hard_target_trace:length_contains_code3/12,modulo_sum_label0/12,tuple_branch_label2/12.easy_target_control_trace:length_contains_code1/12,modulo_sum_label0/12,tuple_branch_label2/12.modulo16_trace:length_contains_code0/12,modulo_sum_label5/12,tuple_branch_label0/12.length16_trace:length_contains_code3/12,modulo_sum_label0/12,tuple_branch_label0/12.tuple16_trace:length_contains_code0/12,modulo_sum_label2/12,tuple_branch_label2/12.hard_target_no_trace: 0/12 for all three target families.hard_target_shuffled_trace: 0/12 for all three target families.
Responsive-control holdout behavior was strong and often dominated aggregate scores:
easy_target_control_tracereached 12/12 onsorted_contains_countand 4/12 onsorted_tuple_affine.hard_target_tracereached 12/12 onsorted_contains_countand 3/12 onsorted_tuple_affine.modulo16_tracereached 8/12 onsorted_contains_countand 7/12 onsorted_tuple_affine.
Report Generation
- Ran
scripts/make_report.py. - Wrote
reports/targeted_bridge_allocation_report.md. Wrote CSV summaries:
reports/final_results.csvreports/final_results_by_family.csvreports/final_results_by_factor.csv
Wrote figures:
Validated final manifest:
- 39 jobs.
- all statuses
completed. - all result JSON paths exist.
reports/final_results.csvhas 39 rows.
Artifact Split Verification
- Compact experiment directory: 24 MB.
- Large artifact directory: 13 GB.
- Confirmed no
.safetensors,.bin,.pt, or.pthfiles inexperiments/targeted_bridge_allocation/. Large artifact tree contains:
- 10 adapter directories.
- 410 files.
- 30 checkpoint directories.
- Wrote
reports/large_artifacts_manifest.md.
Interpretation
hard_target_traceis the strongest allocation choice for balanced recombination holdout behavior: it tied the top aggregate result at 20/60 and produced target-family successes on length and tuple while preserving strong responsive-control behavior.easy_target_control_tracenearly matched the aggregate at 19/60, but most of its holdout score came from responsive-control families. It did not improve modulo and only added one length success.modulo16_tracematched the top aggregate score and movedmodulo_sum_labelto 5/12, but it did not transfer to length or tuple.length16_tracemovedlength_contains_codeto 3/12 but lowered aggregate holdout to 12/60.tuple16_tracedid not improvetuple_branch_labelbeyond 2/12.- Trace alignment is essential. Removing traces, shuffling traces at inference, training without traces, and training on shuffled traces all collapsed target-family holdout repair.
- The next high-impact direction is not simply increasing single-family bridge intensity. A better follow-up would preserve aligned traces while changing the training mix to support target-family mechanisms without sacrificing responsive-control coverage.
Figures 2
Data files 4
Result tables and metrics copied from the experiment folder — preview inline or open the raw file.
reports/final_results.csv15 kBreports/final_results_by_factor.csv47 kBreports/final_results_by_family.csv39 kBreports/final/final_evaluation_jobs.json53 kB
Reproduce
Run steps are documented inside the experiment folder (README and scripts).

