Skip to content

Commit 0517f06

Browse files
committed
Impr
1 parent 2731bd5 commit 0517f06

2 files changed

Lines changed: 91 additions & 40 deletions

File tree

data/cross-ref/CONSOLIDATED_REPORT.md

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ Interpretation:
2525
- `ambiguous`, `unmatched`, and `excluded` rows stay visible in coverage and mapping review, but do not enter correlations.
2626
- Multiple external rows for one LLM Chess player are deduped by keeping the highest external score.
2727
- Pearson `r` measures linear fit; Spearman `rho` measures rank-order fit.
28-
- Release-controlled Elo removes the linear effect of release month from both sides before correlating residuals.
28+
- Raw Elo correlates external score directly with LLM Chess Elo.
29+
- Release-controlled Elo first predicts each side from release month, subtracts predicted from actual on both sides, then correlates the two residual lists.
2930
- OLS CV uses repeated 5-fold cross-validation over 3 seeds. Feature selection happens inside each training fold, not on the full target sample.
3031

3132
## Coverage Debt
@@ -46,8 +47,11 @@ The audit currently reports `reproducibility_status = pass`, `coverage_status =
4647

4748
## Evidence Pointers
4849

49-
- Aggregate facts: [results/cross_ref_summary.json](results/cross_ref_summary.json)
50-
- Generated fact table: [results/cross_ref_report.md](results/cross_ref_report.md)
51-
- Mapping debt: [results/mapping_review.csv](results/mapping_review.csv)
50+
- Methodology and workspace guide: [README.md](README.md)
5251
- ECI summary: [results/eci_summary.json](results/eci_summary.json)
53-
- ARC summary: [results/arc_agi_2_summary.json](results/arc_agi_2_summary.json)
52+
- ARC summary: [results/arc_agi_2_summary.json](results/arc_agi_2_summary.json)
53+
- ECI report: [results/eci.html](results/eci.html)
54+
- ARC report: [results/arc_agi_2.html](results/arc_agi_2.html)
55+
- ECI coverage: [results/eci_coverage.csv](results/eci_coverage.csv)
56+
- ARC coverage: [results/arc_agi_2_coverage.csv](results/arc_agi_2_coverage.csv)
57+
- Mapping sources: [mappings/eci.csv](mappings/eci.csv), [mappings/arc_agi_2.csv](mappings/arc_agi_2.csv)

data/cross-ref/README.md

Lines changed: 82 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,69 +1,116 @@
11
# Cross-Ref Research Workspace
22

3-
## Essence
3+
## Purpose
44

5-
This workspace tests whether external benchmark scores line up with LLM Chess results after conservative model mapping.
5+
This workspace tests whether frozen external benchmark scores line up with LLM Chess outcomes after conservative model identity mapping.
66

7-
Current answer: Epoch ECI has a real positive relationship with LLM Chess Elo. ARC-AGI-2 is positive but weaker, noisier, and more blocked by model-identity ambiguity.
7+
This README is the operating guide. It should stay stable across result refreshes: use it for layout, artifact roles, commands, and methodology. Use [CONSOLIDATED_REPORT.md](CONSOLIDATED_REPORT.md) and the per-eval result artifacts for current findings.
8+
9+
## Artifact Map
10+
11+
| Artifact | Role |
12+
| --- | --- |
13+
| [CONSOLIDATED_REPORT.md](CONSOLIDATED_REPORT.md) | Cross-eval findings, current caveats, and research next steps. |
14+
| [results/eci_summary.json](results/eci_summary.json), [results/arc_agi_2_summary.json](results/arc_agi_2_summary.json) | Machine-readable per-eval facts used for reporting. |
15+
| [results/eci.html](results/eci.html), [results/arc_agi_2.html](results/arc_agi_2.html) | Human-readable per-eval reports. |
16+
| [results/eci_coverage.csv](results/eci_coverage.csv), [results/arc_agi_2_coverage.csv](results/arc_agi_2_coverage.csv) | Row-level coverage and inclusion surfaces. |
17+
| [mappings/eci.csv](mappings/eci.csv), [mappings/arc_agi_2.csv](mappings/arc_agi_2.csv) | Runtime model-identity source of truth. |
18+
| [mapping-research](mapping-research) | Evidence notes behind mapping decisions. |
19+
| [evals/eci/SOURCE.md](evals/eci/SOURCE.md), [evals/arc-agi-2/SOURCE.md](evals/arc-agi-2/SOURCE.md) | External source provenance and score semantics. |
20+
| [evals/eci/epoch_eci_apr_2026.csv](evals/eci/epoch_eci_apr_2026.csv), [evals/arc-agi-2/arc-agi-2-apr-2026.csv](evals/arc-agi-2/arc-agi-2-apr-2026.csv) | Frozen external source snapshots. |
821

922
## Methodology
1023

11-
| Step | Rule | Why it matters |
12-
| --- | --- | --- |
13-
| Source parse | Keep external snapshots in `evals/`; parse the target score to a numeric column. | The benchmark score must be traceable to a frozen source file. |
14-
| Model mapping | Only `accepted`, `alias`, and `variant-compatible` rows enter analysis. `ambiguous`, `unmatched`, and `excluded` rows stay visible but out of correlations. | Weak identity guesses would move the numbers more than the math does. |
15-
| Join to chess | Mapped rows join to LLM Chess rows by canonical player name. | The row must exist in the current chess dataset. |
16-
| Deduplication | If several eval rows map to one chess player, keep the highest external score for that player. | One chess player should not get multiple votes in a correlation. |
17-
| Metric sample | Non-Elo chess metrics use `metric_analysis_rows_max_dedupe`. | These rows have chess metrics even when Elo is missing. |
18-
| Elo sample | Elo relationships use `elo_analysis_rows_max_dedupe`. | These rows have both an external score and non-null LLM Chess Elo. |
24+
### Pipeline
25+
26+
1. Parse each frozen external snapshot into normalized rows with one numeric target score.
27+
2. Map external model names to canonical LLM Chess player names through the mapping CSVs.
28+
3. Include only `accepted`, `alias`, and `variant-compatible` mappings in statistics.
29+
4. Keep `ambiguous`, `unmatched`, and `excluded` rows visible in coverage outputs, but out of correlations.
30+
5. Join included mappings to LLM Chess rows by canonical player name.
31+
6. If multiple external rows map to one chess player, keep the highest external score for that player.
32+
7. Compute non-Elo metric relationships on `metric_analysis_rows_max_dedupe`.
33+
8. Compute Elo relationships on `elo_analysis_rows_max_dedupe`, which requires non-null external score and LLM Chess Elo.
34+
35+
The mapping step is intentionally conservative. A plausible name match is not enough when reasoning mode, product tier, context window, benchmark system, or preview status could change the identity of the model being evaluated.
1936

2037
## Statistics
2138

2239
- Pearson `r`: linear correlation. Larger absolute value means a straighter line.
2340
- Spearman `rho`: rank correlation. Larger absolute value means the ordering agrees more, even if the line is not clean.
24-
- Simple `R2`: Pearson `r` squared for one metric against the external score.
25-
- Release-controlled Elo: Pearson correlation after both external score and LLM Chess Elo are residualized on release month.
41+
- Raw Elo correlation: `corr(external_score, llm_chess_elo)` on the Elo sample.
42+
- Simple `R2`: Pearson `r` squared for one single metric against the external score.
2643
- OLS CV: repeated 5-fold cross-validation over 3 seeds. Features are selected inside each training fold from predeclared non-Elo chess metrics, then scored on held-out rows.
2744

28-
## Current Signal
45+
### Release-Controlled Elo
46+
47+
Raw Elo correlation uses two lists: external scores and LLM Chess Elo values. Release-controlled Elo uses the same final correlation operation, but first replaces both lists with release-date residuals.
48+
49+
Starting from the Elo sample, keep rows with usable release-month metadata:
50+
51+
1. Convert each model release date to a release-month value.
52+
2. Fit a linear model that predicts external score from release month.
53+
3. Subtract predicted external score from actual external score. This gives one external-score residual per row.
54+
4. Fit a separate linear model that predicts LLM Chess Elo from release month.
55+
5. Subtract predicted Elo from actual Elo. This gives one Elo residual per row.
56+
6. Compute Pearson correlation between the two residual lists.
2957

30-
| Eval | Raw Elo | Release-controlled | Top chess metric | OLS CV |
31-
| --- | --- | --- | --- | --- |
32-
| Epoch ECI | Pearson `0.697`, Spearman `0.698`, `n=66` | Pearson `0.493`, `n=65` | `player_wins_percent`: Pearson `0.637`, Spearman `0.769`, `n=81` | `R2=0.381` vs mean baseline `-0.043`; rank Spearman `0.683` |
33-
| ARC-AGI-2 | Pearson `0.527`, Spearman `0.630`, `n=52` | Pearson `0.384`, `n=52` | `player_wins_percent`: Pearson `0.401`, Spearman `0.607`, `n=55` | `R2=-0.041` vs mean baseline `-0.044`; rank Spearman `0.485` |
58+
In formula form:
3459

35-
Interpretation: ECI carries usable signal. ARC carries some rank-order signal, but its calibrated prediction result is basically baseline-level.
60+
```text
61+
raw_elo = corr(external_score, llm_chess_elo)
3662
37-
## Trust Status
63+
external_residual = external_score - predict(external_score from release_month)
64+
elo_residual = llm_chess_elo - predict(llm_chess_elo from release_month)
3865
39-
- Published artifacts currently reproduce: audit `reproducibility_status = pass`.
40-
- Coverage is not clean: audit `coverage_status = review-needed` because `169` mapping rows still need review.
41-
- Do not turn the correlations into capability claims until the high-impact mapping queue shrinks.
66+
release_controlled_elo = corr(external_residual, elo_residual)
67+
```
68+
69+
The release-controlled value answers a stricter question: among models with comparable release timing, do models that beat their date-based external-score expectation also beat their date-based chess-Elo expectation? It removes only the linear release-month trend, not every possible time-related confounder.
70+
71+
## Interpretation Boundaries
72+
73+
- Correlation is association, not causation.
74+
- Raw Elo correlation can be inflated by chronology because newer models often improve across many benchmarks at once.
75+
- Release-controlled correlation is a timing check, not a full causal adjustment.
76+
- OLS CV is a prediction check; it can fail even when rank correlation is positive.
77+
- Mapping uncertainty is part of the result. Do not hide unresolved rows just because they are excluded from statistics.
4278

4379
## Review Order
4480

45-
1. [CONSOLIDATED_REPORT.md](CONSOLIDATED_REPORT.md): current findings and next actions.
46-
2. [results/cross_ref_summary.json](results/cross_ref_summary.json): machine-readable aggregate facts.
47-
3. [results/mapping_review.csv](results/mapping_review.csv): row-level mapping debt.
48-
4. [mappings/eci.csv](mappings/eci.csv) and [mappings/arc_agi_2.csv](mappings/arc_agi_2.csv): identity source of truth used by the runner.
81+
1. Read [CONSOLIDATED_REPORT.md](CONSOLIDATED_REPORT.md) for the cross-eval bottom line and current caveats.
82+
2. Inspect [results/eci.html](results/eci.html) and [results/arc_agi_2.html](results/arc_agi_2.html) for per-eval detail.
83+
3. Check [results/eci_summary.json](results/eci_summary.json) and [results/arc_agi_2_summary.json](results/arc_agi_2_summary.json) when a claim needs machine-readable backing.
84+
4. Use [results/eci_coverage.csv](results/eci_coverage.csv), [results/arc_agi_2_coverage.csv](results/arc_agi_2_coverage.csv), and the mapping CSVs to review row-level inclusion decisions.
85+
5. Use `mapping-review` or `audit` commands below for generated review surfaces that are not necessarily checked in.
4986

5087
## Commands
5188

5289
From the repository root with `.venv` active:
5390

5491
```bash
92+
.venv/bin/python data/cross-ref/run_cross_ref.py eci
93+
.venv/bin/python data/cross-ref/run_cross_ref.py arc_agi_2
94+
.venv/bin/python data/cross-ref/run_cross_ref.py cross-eval
95+
.venv/bin/python data/cross-ref/run_cross_ref.py mapping-review
5596
.venv/bin/python data/cross-ref/run_cross_ref.py audit
5697
```
5798

58-
The default run writes temporary review outputs. Use `--publish` only after reviewing the output and intentionally updating checked-in artifacts.
99+
Default runs write scratch review outputs. Add explicit `--summary-output`, `--report-output`, `--csv-output`, or `--html-output` paths when you need a stable temporary artifact. Use `--publish` only after reviewing outputs and intentionally updating checked-in generated artifacts.
59100

60-
Detailed agent-only command and artifact contracts live in the cross-ref skill references: [commands](../../.agents/skills/cross-ref-research/references/commands.md), [artifacts](../../.agents/skills/cross-ref-research/references/artifacts.md), [methodology](../../.agents/skills/cross-ref-research/references/methodology.md), and [mapping rules](../../.agents/skills/cross-ref-research/references/mapping-rules.md).
101+
Focused examples:
102+
103+
```bash
104+
.venv/bin/python data/cross-ref/run_cross_ref.py mapping-review --status ambiguous --eval-id eci
105+
.venv/bin/python data/cross-ref/run_cross_ref.py rerun-diff eci
106+
.venv/bin/python data/cross-ref/run_cross_ref.py cross-eval --summary-output /tmp/cross_ref_summary.json
107+
```
61108

62109
## Layout
63110

64-
- `evals/`: frozen external source snapshots and provenance notes.
65-
- `mappings/`: mapping CSVs read by the runner.
66-
- `mapping-research/`: evidence notes for mapping decisions.
67-
- `model-identity/`: generated LLM Chess model inventory.
68-
- `results/`: generated summaries, coverage, audit, and review surfaces.
69-
- `adapters/`, `framework/`, `run_cross_ref.py`: normalization, analysis, and publication code.
111+
- [evals](evals): frozen external source snapshots and provenance notes.
112+
- [mappings](mappings): mapping CSVs read by the runner.
113+
- [mapping-research](mapping-research): evidence notes for mapping decisions.
114+
- [model-identity](model-identity): generated LLM Chess model inventory.
115+
- [results](results): checked-in per-eval summaries, coverage files, and human reports.
116+
- [adapters](adapters), [framework](framework), and [run_cross_ref.py](run_cross_ref.py): normalization, analysis, and publication code.

0 commit comments

Comments
 (0)