File size: 2,619 Bytes
456264c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# Genre-representation benchmark checklist

This checklist preregisters the test of whether a redesigned learned representation captures more than elementary formula-composition statistics. Complete it for every reported run; do not tune the rule after viewing held-out results.

## Freeze before evaluation

- [ ] Freeze the dataset version, genre labels, model checkpoint, random seeds, and split manifest.
- [ ] Use at least three independently seeded held-out splits.
- [ ] Keep all active molecule identities disjoint between train and held-out records.
- [ ] Keep exact formulas disjoint between train and held-out records.
- [ ] Fit normalization, centroids, and any other learned preprocessing on training records only.
- [ ] Store learned train/test representations in manifest-aligned `.npy` files without genre labels as inputs.

## Run the controlled comparison

- [ ] Run `scripts/genre_baseline_benchmark.py` on the frozen manifest.
- [ ] Confirm every `leakage_audit.passed` value is `true`; a failure invalidates the split rather than becoming an exclusion after results are seen.
- [ ] Compare both representations with the identical nearest-centroid probe and identical held-out rows.
- [ ] Report held-out accuracy for the learned representation and composition baseline.
- [ ] Report the paired bootstrap accuracy delta and 95% confidence interval for every split.
- [ ] Archive the manifest, output JSON, checkpoint identifier, and commit hash.

## Decision and reporting

- [ ] Claim support only if the lower 95% bound for learned-minus-baseline accuracy is above the preregistered margin on every valid split and at least three splits are valid.
- [ ] If that criterion fails, report the result as negative; do not substitute a favorable in-sample or leaky split.
- [ ] In a negative report, state the supported interpretation: the benchmark's genre structure may be explained by elementary compositional statistics, and the experiment does not establish deeper formula semantics.
- [ ] Report all split results, including weak or adverse ones, and document any invalid split with its leakage audit.

Manifest format:

```json
[
  {
    "name": "seed_1",
    "train_records": "data/splits/seed_1_train.jsonl",
    "test_records": "data/splits/seed_1_test.jsonl",
    "learned_train": "artifacts/seed_1_train_embeddings.npy",
    "learned_test": "artifacts/seed_1_test_embeddings.npy"
  }
]
```

Example:

```bash
python scripts/genre_baseline_benchmark.py \
  --manifest artifacts/genre_split_manifest.json \
  --output artifacts/genre_baseline_report.json \
  --minimum-splits 3 --margin 0
```