MachineSex/tests
Giorgio Gilestro 39f6c9f4df hard benchmark: the 7B "fusion wins / no headroom" results were saturation artefacts
The easy task families saturated 7B (strings & arith at 1.00), so the earlier
7B nulls — moe: fusion 0.87 > union 0.84; directed ~= soup — could not separate
"refinements don't help at scale" from "tasks too easy at 7B". Adds a hard task
variant (hard: true in tasks.py: multi-step lists, Caesar ciphers / letter
transforms, multi-step & larger arithmetic; same family labels and answer
formats, threaded through make_tasks/train_specialist/runners; hard specialists
cache separately as spec_*_hard) and re-runs both experiments at 7B on Imperial
CX3 (one L40S, 24 min, unsaturated: arith ~0.48, strings 0.67, lists 0.34).

Both nulls flip back to the 0.5B ordering:
- Union beats fusion again: routing 0.500 > fusion 0.40 (soup 0.392 / ties
  0.400), the same 10-pt margin as 0.5B. Fusion dilutes the fragile strings
  specialist so hard (0.665 -> soup 0.300) that soup even trails the best single
  specialist (0.425); routing keeps it intact (0.670).
- Directed selection beats soup again: 0.492 > 0.392 (+10 pts), recovering most
  of routing's benefit from one deployable merged model (lifts strings to 0.630).

Correction to the earlier interpretation: the llm_moe_hpc "regime flip" and the
llm_directed_hpc "no headroom" null were driven by TASK SATURATION, not base
capability. The operative variable is headroom — "merge, don't average" (union >
fusion) and "directed sex" (selection > single blend) hold whenever there is room
to lose to dilution: a weak base (0.5B) OR hard tasks at a strong base (7B-hard).
Fusion only wins in the degenerate corner where easy tasks let a strong base
compose to the 1.00 ceiling. Vindicates E8's max > mean in real 7B weights once
saturation is controlled.

Default (easy) task behaviour is unchanged (hard defaults False). +1 hard-task
test (131 green). Excludes the 0.5B smoke bundle (a pipeline gate, not a
deliverable). Results in results/llm_{moe,directed}_hard_hpc/ (parquet gitignored).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 19:13:26 +01:00
..
test_analysis.py Layer 1 complete: E3-E6 + E2 analysis add-ons 2026-07-04 18:54:42 +02:00
test_correctness.py Layer 1 core: Wright-Fisher knowledge-transmission model with E1-E2 2026-07-04 18:10:18 +02:00
test_dynamic_society.py society: the dynamic Lamarckian society — the vertical claim (E11 / C3) 2026-07-05 12:34:01 +01:00
test_genotype.py society: make the sexual-transmission model rigorous (E9 epistasis, E10 directed sex) 2026-07-05 11:13:37 +01:00
test_kernel.py knowledge: learning kernel — model the estimator bias, not just sampling 2026-07-05 10:23:33 +01:00
test_llm.py hard benchmark: the 7B "fusion wins / no headroom" results were saturation artefacts 2026-07-05 19:13:26 +01:00
test_mnist.py neural: real-MNIST external-validity tier (collapse + grounding) 2026-07-05 09:19:36 +01:00
test_neural_correctness.py neural: grounding refinement + all five Layer-1.5 figures 2026-07-05 08:14:19 +01:00
test_neural_torch.py recombination: reproduce the E4 "merge, don't average" finding in real weights 2026-07-04 21:49:44 +01:00
test_neural_validation.py Layer 1.5: architecture-general neural existence proof 2026-07-04 21:02:49 +01:00
test_scientific_validation.py Layer 1 core: Wright-Fisher knowledge-transmission model with E1-E2 2026-07-04 18:10:18 +02:00