experiment: llm_speciation_add kind: llm_speciation seed: 1 seeds: [1, 2, 3] n_replicates: 1 # The de-confounded conflict sweep (companion to configs/llm/speciation.yaml). The "replace" design # holds TOTAL training fixed, so the merge's private-family decline with conflict_frac is confounded # with shrinking private data (coherence is the clean readout there). Here conflict_mode: add holds # each child's PRIVATE training fixed at n_train and ADDS conflict data on top, so any decline in the # MERGE's private-family accuracy relative to its parents is interference from the conflicting # convention, not a data-budget artefact. Pre-registered readings: merged private accuracy tracks the # parents at every frac -> conflict damage is localised to the conflicted function (function-specific # hybrid breakdown); merged private accuracy falls below the parents as frac rises -> the conflict # corrupts shared circuitry beyond the conflicted function (global hybrid breakdown). Run at 3 seeds: # the single-seed pilot showed one anomalous grid point (frac=0.75, a bad parent-B run), so per-seed # replication is required before reading the curve. base_model: Qwen/Qwen2.5-0.5B-Instruct family_a: strings family_b: arith n_train: 400 n_test: 100 epochs: 3 lora: {r: 16, alpha: 32} conflict_mode: add conflict_fracs: [0.0, 0.25, 0.5, 0.75, 1.0] durations: [] output: {dir: results/llm_speciation_add}