Skip to content

Commit 7bb822b

Browse files
author
Marcel
committed
Align repo front door with final claim and reorganize legacy phase scripts
1 parent 2c9ccd1 commit 7bb822b

25 files changed

Lines changed: 467 additions & 167 deletions

CLAIMS_AND_EVIDENCE.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Claims and Evidence
2+
3+
This table is the canonical mapping from research claims to exact artifacts and scripts.
4+
5+
| Claim | Supported | Evidence Files | Producing Script(s) |
6+
|---|---|---|---|
7+
| Global H0/H1 summaries robustly predict correctness on GSM8K traces | **No** | `artifacts/paired_dynamic_qwen35/static_vs_dynamic_separability_2b.csv`; `artifacts/qwen35_2b_window_corrected/classifier_auc.csv` | `scripts/analyze_paired_dynamic.py`; `scripts/analyze_2b_window_corrected.py` |
8+
| Under fixed decoding, token-cap termination strongly predicts wrong answers | **Yes** | `artifacts/qwen35_2b_within_question/run_manifest.csv` | `scripts/run_multi_sample_questions.py` |
9+
| Cap sensitivity: longer budget rescues some capped failures but many remain wrong | **Yes** | `artifacts/qwen35_2b_cap_sensitivity_640/analysis/transition_summary.csv`; `artifacts/qwen35_2b_cap_sensitivity_640/analysis/per_question_transition_summary.csv` | `scripts/run_cap_sensitivity.py`; `scripts/analyze_cap_sensitivity.py` |
10+
| Micro-world decoder under-expresses `Unknown` | **Yes** | `artifacts/micro_world_v1/comparison_decoder_qwen_gemma.csv` | `scripts/run_micro_world_inference.py`; `scripts/analyze_micro_world_geometry.py` |
11+
| Verdict-region hidden states recover `Unknown` better than decoder outputs | **Yes** | `artifacts/micro_world_v1/comparison_probe_states_qwen_gemma.csv` | `scripts/run_micro_world_probe.py` |
12+
| Same-label vs different-label geometry gap is positive across worlds | **Yes** | `artifacts/micro_world_v1/analysis_qwen35_2b_partial19/sign_test_summary.csv`; `artifacts/micro_world_v1/analysis_gemma_3_4b_eval20_nothink/sign_test_summary.csv` | `scripts/analyze_micro_world_geometry.py` |
13+
| Constrained decoding fixes Unknown collapse | **No** | `artifacts/micro_world_v1/comparison_decoder_constrained_vs_unconstrained_qwen_gemma.csv` | `scripts/run_micro_world_inference.py`; comparison scripts in `artifacts/micro_world_v1` |
14+
| Gemma base-vs-instruct comparison after parse-confound repair still shows readout mismatch | **Yes** | `artifacts/micro_world_v1/comparison_gemma_base_prompt_rerun.csv`; `artifacts/micro_world_v1/comparison_probe_gemma_basefmt_vs_it_raw.csv` | `scripts/run_micro_world_inference.py`; `scripts/run_micro_world_probe.py` |
15+
| Verdict-step label logits under-rank `Unknown` on gold-Unknown decoder failures | **Yes** | `artifacts/micro_world_v1/comparison_label_logits_gemma_it_vs_pt_basefmt.csv` | `scripts/analyze_micro_world_label_logits.py` |
16+
| Layer sweeps show strong internal Unknown recoverability even when decoder fails | **Yes** | `artifacts/micro_world_v1/comparison_layer_sweep_gemma_it_vs_pt_basefmt.csv` | `scripts/run_micro_world_layer_sweep_probe.py` |
17+
18+
## Main Paper Claim
19+
20+
Supported by triangulation above:
21+
22+
> On a held-out procedural micro-world task with nonce lexicons and held-out templates, `Unknown` / non-entailment is recoverable from verdict-region hidden states while decoder outputs under-express it; this dissociation replicates across Qwen and Gemma and survives prompt-path, constrained-decoding, logit, and layer-sweep controls.

PAPER_STATUS.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Paper Status
2+
3+
Current manuscript path:
4+
5+
- Source: `paper/main.tex`
6+
- PDF: `paper/paper.pdf`
7+
8+
Current framing:
9+
10+
1. Phase A global topology branch is reported as a negative replication.
11+
2. Phase B fixed-decoding branch is reported as a convergence-failure result.
12+
3. Phase C micro-world branch is the main positive result:
13+
representation--decoder dissociation for `Unknown`.
14+
15+
What is included in the current draft:
16+
17+
- Probe equation and protocol.
18+
- World-level geometry gap definition.
19+
- Verdict-step label-logit metrics.
20+
- Layer-sweep formulation.
21+
- Worked micro-world example table.
22+
- Exact artifact paths and reproduction commands.
23+
24+
Build:
25+
26+
```bash
27+
python3 paper/scripts/make_figures.py
28+
cd paper
29+
pdflatex -interaction=nonstopmode -halt-on-error main.tex
30+
pdflatex -interaction=nonstopmode -halt-on-error main.tex
31+
```

README.md

Lines changed: 28 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,76 +1,44 @@
1-
# Topology of Truth (Consolidated Main)
1+
# Topology Repository
22

3-
This repository is now one merged branch with all experiments, artifacts, and paper outputs.
3+
This repo contains three completed experiment phases. The front-door claim is:
44

5-
## Project Status (short)
5+
> On a held-out procedural micro-world task, `Unknown` / non-entailment is recoverable from verdict-region hidden states, while decoder outputs under-express it.
66
7-
- The original global-topology hypothesis did **not** verify.
8-
- A fixed-decoding GSM8K branch found a strong **convergence-failure** effect.
9-
- A procedural micro-world branch found a replicated **representation--decoder dissociation** for `Unknown`.
7+
The old “global topology of truth” headline did not survive.
108

11-
## The 3 Experiment Tracks
9+
## Start Here
1210

13-
1. **Old global H0/H1 topology (negative)**
14-
Details: [docs/experiments/01_global_h0_topology/README.md](docs/experiments/01_global_h0_topology/README.md)
15-
16-
2. **Convergence failure on fixed GSM8K decoding (positive)**
17-
Details: [docs/experiments/02_convergence_failure/README.md](docs/experiments/02_convergence_failure/README.md)
18-
19-
3. **Procedural micro-world semantics (main positive)**
20-
Details: [docs/experiments/03_micro_world_semantics/README.md](docs/experiments/03_micro_world_semantics/README.md)
21-
22-
Index: [docs/experiments/README.md](docs/experiments/README.md)
23-
24-
## Key Results
25-
26-
### Track 1 (negative)
27-
28-
- Dynamic/topology separability stayed weak (`AUC ~0.5-0.6`).
29-
- Corrected fixed-window topology did not beat controls (`AUC 0.20` vs controls `0.60`).
30-
31-
### Track 2 (convergence)
32-
33-
From `artifacts/qwen35_2b_within_question/run_manifest.csv`:
34-
35-
- `n=180`, correct/wrong = `88/92`
36-
- capped = `87` (`75` wrong, `12` correct)
37-
- eos = `93` (`17` wrong, `76` correct)
38-
- cap->wrong AUC = `0.839`
11+
- Paper source: [paper/main.tex](paper/main.tex)
12+
- Paper PDF: [paper/paper.pdf](paper/paper.pdf)
13+
- Claim-to-file mapping: [CLAIMS_AND_EVIDENCE.md](CLAIMS_AND_EVIDENCE.md)
14+
- Repository file map: [REPO_MAP.md](REPO_MAP.md)
15+
- Experiment index: [docs/experiments/README.md](docs/experiments/README.md)
3916

40-
From `artifacts/qwen35_2b_cap_sensitivity_640/analysis/transition_summary.csv`:
17+
## Three Phases
4118

42-
- matched capped reruns = `87`
43-
- wrong->correct at longer budget = `27`
44-
- wrong->still wrong = `48`
19+
1. Phase A (negative): global H0/H1 topology on GSM8K traces
20+
[docs/experiments/01_global_h0_topology/README.md](docs/experiments/01_global_h0_topology/README.md)
4521

46-
### Track 3 (micro-world)
22+
2. Phase B (positive): fixed-decoding convergence failure on GSM8K
23+
[docs/experiments/02_convergence_failure/README.md](docs/experiments/02_convergence_failure/README.md)
4724

48-
Decoder baseline (`artifacts/micro_world_v1/comparison_decoder_qwen_gemma.csv`):
25+
3. Phase C (main positive): procedural micro-world representation–decoder dissociation
26+
[docs/experiments/03_micro_world_semantics/README.md](docs/experiments/03_micro_world_semantics/README.md)
4927

50-
- Qwen3.5-2B Unknown recall = `0.000`
51-
- Qwen3.5-4B Unknown recall = `0.000`
52-
- Gemma-3-4B-it Unknown recall = `0.0125`
28+
## Main Numbers
5329

54-
Verdict-token probe (`artifacts/micro_world_v1/comparison_probe_states_qwen_gemma.csv`):
30+
- Phase A: corrected topology-only AUC = `0.20` (controls = `0.60`)
31+
- Phase B: cap→wrong AUC = `0.839`; OR ≈ `26.40`
32+
- Phase C: decoder Unknown recall (`Qwen2B=0.000`, `Qwen4B=0.000`, `Gemma-it=0.0125`) while verdict-token probe Unknown recall (`0.7375`, `0.1292`, `0.5625`)
5533

56-
- Qwen3.5-2B Unknown recall = `0.7375`
57-
- Qwen3.5-4B Unknown recall = `0.1292`
58-
- Gemma-3-4B-it Unknown recall = `0.5625`
34+
## Repo Notes
5935

60-
## Paper and CI
61-
62-
- Paper source: [paper/main.tex](paper/main.tex)
63-
- Compiled PDF: [paper/paper.pdf](paper/paper.pdf)
64-
- Figure generator: [paper/scripts/make_figures.py](paper/scripts/make_figures.py)
65-
- CI workflow: [.github/workflows/paper.yml](.github/workflows/paper.yml)
66-
- Release bundle script: [scripts/package_release_bundle.py](scripts/package_release_bundle.py)
36+
- Legacy root Python scripts were moved to `phase_a_global_h0_topology/scripts/`.
37+
- All committed artifacts are kept under `artifacts/` and `outputs/`.
38+
- `.npz` artifacts are committed (not ignored).
6739

6840
## Reproducibility
6941

70-
- Version lock: [repro/requirements.lock.txt](repro/requirements.lock.txt)
71-
- Rebuild instructions: [repro/README.md](repro/README.md)
72-
73-
## Artifact policy
74-
75-
All committed artifacts are retained in-repo under `artifacts/` and `outputs/`.
76-
Release packaging additionally provides `release/paper_release_bundle.tar.gz` for a compact reproducible subset.
42+
- Locked deps: [repro/requirements.lock.txt](repro/requirements.lock.txt)
43+
- Rebuild guide: [repro/README.md](repro/README.md)
44+
- CI build/release: [.github/workflows/paper.yml](.github/workflows/paper.yml)

REPO_MAP.md

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# Repository Map
2+
3+
This file maps the paper claims to concrete directories and entry points.
4+
5+
## Top-level Layout
6+
7+
- `README.md` — front-door summary and links.
8+
- `CLAIMS_AND_EVIDENCE.md` — claim-by-claim evidence table.
9+
- `docs/experiments/` — per-phase reproducibility docs.
10+
- `paper/` — manuscript (`main.tex`), PDF, figure pipeline.
11+
- `artifacts/` — committed run outputs used in analysis.
12+
- `outputs/` — additional generated outputs from legacy runs.
13+
- `repro/` — environment lock and rebuild notes.
14+
- `scripts/` — active analysis/generation scripts for Phases A/B/C.
15+
- `phase_a_global_h0_topology/scripts/` — legacy original root scripts (moved for clarity).
16+
17+
## Experiment Phases
18+
19+
### Phase A: Global Topology (Negative)
20+
21+
- Doc: `docs/experiments/01_global_h0_topology/README.md`
22+
- Legacy scripts: `phase_a_global_h0_topology/scripts/`
23+
- Main artifacts:
24+
- `artifacts/paired_dynamic_qwen35/`
25+
- `artifacts/qwen35_2b_window_corrected/`
26+
27+
### Phase B: Convergence Failure (Fixed Decoding)
28+
29+
- Doc: `docs/experiments/02_convergence_failure/README.md`
30+
- Main scripts:
31+
- `scripts/run_multi_sample_questions.py`
32+
- `scripts/analyze_within_question_basins.py`
33+
- `scripts/run_cap_sensitivity.py`
34+
- `scripts/analyze_cap_sensitivity.py`
35+
- Main artifacts:
36+
- `artifacts/qwen35_2b_within_question/`
37+
- `artifacts/qwen35_2b_cap_sensitivity_640/`
38+
39+
### Phase C: Micro-World Semantics (Main Result)
40+
41+
- Doc: `docs/experiments/03_micro_world_semantics/README.md`
42+
- Main scripts:
43+
- `scripts/generate_micro_world_dataset.py`
44+
- `scripts/run_micro_world_inference.py`
45+
- `scripts/analyze_micro_world_geometry.py`
46+
- `scripts/run_micro_world_probe.py`
47+
- `scripts/analyze_micro_world_label_logits.py`
48+
- `scripts/run_micro_world_layer_sweep_probe.py`
49+
- Main artifacts:
50+
- `artifacts/micro_world_v1/dataset/`
51+
- `artifacts/micro_world_v1/generations/`
52+
- `artifacts/micro_world_v1/comparison_*.csv`
53+
- `artifacts/micro_world_v1/layer_sweep_*`
54+
- `artifacts/micro_world_v1/label_logits_*`
55+
56+
## Paper Assets
57+
58+
- TeX source: `paper/main.tex`
59+
- Compiled PDF: `paper/paper.pdf`
60+
- Figure script: `paper/scripts/make_figures.py`
61+
- Generated figures: `paper/figures/`
62+
- CI workflow: `.github/workflows/paper.yml`
63+
- Release bundler: `scripts/package_release_bundle.py`
64+
65+
## Legacy Script Location
66+
67+
Legacy first-direction scripts previously kept at repo root are now under:
68+
69+
- `phase_a_global_h0_topology/scripts/`
70+
71+
This includes:
72+
73+
- `audit_report.py`
74+
- `trace_generator.py`
75+
- `batch_verifier.py`
76+
- `topological_engine.py`
77+
- `analyze_results.py`
78+
- `visualizer.py`
79+
- `visualize_comparisons.py`

docs/experiments/01_global_h0_topology/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ This track is the direct test of that idea.
1111

1212
- GSM8K examples from configured dataset loader.
1313
- Model generations and hidden states from Qwen3.5 0.8B/2B pilots.
14+
- Legacy first-pass pipeline scripts now live in:
15+
- `phase_a_global_h0_topology/scripts/`
1416

1517
## Artifact generation pipeline
1618

docs/experiments/02_convergence_failure/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ python3 scripts/run_multi_sample_questions.py \
2020
--model-id Qwen/Qwen3.5-2B \
2121
--question-start 0 \
2222
--question-count 20 \
23-
--samples-per-question 5 \
23+
--samples-per-question 9 \
2424
--temperature 0.7 \
2525
--top-p 0.95 \
2626
--max-new-tokens 384 \

paper/README.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Paper Draft
22

3-
This directory contains a submission-style draft of the project report and the figure pipeline used by the manuscript.
3+
This directory contains the submission draft aligned with the current repository claim:
4+
the micro-world representation--decoder dissociation for `Unknown` is the main positive result; the GSM8K global-topology branch is a documented negative result.
45

56
## Files
67

@@ -21,3 +22,9 @@ pdflatex -interaction=nonstopmode -halt-on-error main.tex
2122
```
2223

2324
The GitHub workflow `.github/workflows/paper.yml` runs the same steps and uploads a release bundle.
25+
26+
See also:
27+
28+
- `../CLAIMS_AND_EVIDENCE.md`
29+
- `../REPO_MAP.md`
30+
- `../PAPER_STATUS.md`

paper/main.pdf

56.2 KB
Binary file not shown.

0 commit comments

Comments
 (0)