--- project: modelmap document: expA_probe_reliability — hypothesis (registered before run) author: Simon-Pierre Boucher contact: contact@spboucher.ai website: https://modelmap.io created: 2026-08-12 modified: 2026-08-12 status: reviewed --- # Hypothesis — expA (probe reliability / the noise floor) > Probe reliability — noise floor of linear probes across seeds and datasets. > Registered 2026-08-12, before any run. The harness > (`src/modelmap/probes/linear.py` + `src/modelmap/stats/replication.py`) is > implemented and unit-tested against planted structure and pure noise; > no real-model run has happened yet. ```text Hypothesis : On a 0.5B-class model, per-layer linear-probe maps for simple properties (language ID, code-vs-prose, arithmetic-context) are seed-stable (probe-accuracy SD across ≥5 training seeds < 2 points) but dataset-SENSITIVE: switching prompt corpus moves per-layer accuracy by more than the seed SD on at least a third of layers — i.e. the dataset, not the probe seed, is the dominant noise source (Bolukbasi-consistent). Falsification criterion : Dies if seed variance ≥ dataset variance across the board (then seeds dominate and every later map needs more seeds, not more corpora); the harness itself is invalid if selectivity on a random-init model exceeds 0.05 (fake structure). Method : Qwen3-0.6B (or Pythia-410M fallback) via mlx-lm; capture residual stream at every layer over ≥2 disjoint prompt sets per property (versioned, checksummed promptsets); probe_with_control per (layer, property, seed) for 5 seeds; report selectivity, bootstrap CIs, BH-FDR across the layer scan; replication_rate on top-k layer sets. Baseline / null : shuffled-label control (built into every probe); random-init model of identical architecture; random-direction projections. Result : (pending) Interpretation : (pending — with explicit confidence level) Next experiment : (pending — expA output becomes the first map card) ``` --- # Hypothesis — expA run #2 (structure-borne properties, token-balanced) Registered 2026-08-12 **before** the run, after run #1 failed its validity gate (twin at ceiling on lexically separable classes). Promptsets v2 are designed so no token distribution separates the classes: - **word_order** — grammatical sentence vs seeded scramble of the SAME words (perfectly token-balanced per item); - **agreement** — subject–verb agreement correct vs violated, with is/are balanced across both classes (no single token predicts the class); - **arith_valid** — correct vs off-by-small-delta equations (digit distributions overlap across classes). ```text Hypothesis : (a) VALIDITY: on token-balanced properties the random-init twin falls to chance — max twin selectivity < 0.05 (mean-pooled AND last-token). (b) SIGNAL: the trained model beats the twin on word_order and agreement — real−twin selectivity > 0.10 on at least 5 layers (FDR-significant). (c) arith_valid: exploratory, no directional prediction at 0.6B. (d) rerun of run #1's core question where accuracy is off ceiling/floor: dataset shift > seed SD on ≥ 1/3 of layers. Falsification criterion : (a) dies → mean-pooled/last-token reps are unusable even on balanced classes; harness redesign (matched-position tokens) before any atlas map. (b) dies → structural properties are not linearly decodable at 0.6B-4bit: a publishable Level-1 negative, and probes/v2 is published as such. Method : capture BOTH mean-pooled and last-token reps in one pass; same grid as run #1 (28 layers × 5 seeds × 2 sets × 3 properties, twin on A sets); word-level class token-overlap certificate stored in the promptset manifest; everything else unchanged. Baseline / null : shuffled-label control (every probe); random-init twin; v1 promptsets as positive control (harness must still hit ceiling there — checked on lang_id_A). Result : (pending) Interpretation : (pending) Next experiment : (pending) ```