license: apache-2.0
tags:
- mechanistic-interpretability
- linear-probes
- activation-steering
- causal-interpretability
- qwen3.6-27b
- honest-negatives
- reproducibility
pretty_name: "Paper-MEGA: Conditionally-Causal Probes — verification data"
size_categories: - n<1K
Paper-MEGA verification data — Conditionally-Causal Probes in Qwen3.6-27B
Raw run artifacts (JSON) backing every empirical claim in the paper
"Conditionally-Causal Probes: Five Operational Constraints on
Linear-Probe Causality in Qwen3.6-27B" (Vicentino 2026,
openinterp.org/research/papers/conditionally-causal-probes).
This dataset is the primary-source verification trail for the paper's
Appendix A. Every numerical claim in the paper can be re-derived from the
JSONs here.
Apache-2.0. Companion to paper-3 (PSAE marginal-fit
data)
and paper-7 (NLA two-tier
data).
Directory map (claim → file)
Subjective-time probe (paper-8 → constraints C1, C2 + diagnostic D6)
subjective_time_probe_v1/subjective_time_probe_v1_results.json
— Ridge probe at L11/L31/L55. R²={0.8368, 0.8581, 0.8214};
ρ={0.9032, 0.9152, 0.9028}. B0 random / B1 shuffled-target / B2 constant
baselines.subjective_time_phase2a/phase2a_summary.json— α-sweep on GSM8K with
probe vs random direction. ST_L31_gen termination, thinking-length,
flip metrics per α∈{±200, ±100, ±50, +100, +200}.subjective_time_phase2a/phase2a_aggregate_stats.json— Fisher exact
test: n_valid=14, probe_shortens=9/14, random_shortens=2/14, OR=10.8,
p=0.00915, mean gap −32.82pp.subjective_time_phase2a/swe_transfer_test.json— N=10 SWE-bench
Verified astropy probes. Base 0/10, probe α=+50 10/10, random 3/10.subjective_time_phase2a/caveat1_cross_repo/results_cross_repo.json—
N=10 cross-repo (django/sphinx/matplotlib/etc). Base 0/10, probe 9/10,
random 3/10. Combined with astropy = 19/20 vs 6/20.subjective_time_phase2a/caveat1_cross_repo/onset_timing_results.json
— Onset-timing diagnostic D6: probe at decode steps {1, 50, 200}.subjective_time_phase2a/caveat1_cross_repo/design_e_results.json—
Closed-loop probe-as-threshold trigger (FALSIFIED at 1-2/10).subjective_time_phase2a/caveat1_cross_repo/smart_batch_design_ef.json
— Plateau-detector design F (FALSIFIED).subjective_time_phase2c/stage_a_causal_screen.json— Phase 2C
cross-layer: ST_L11_gen 1/10 ragged at α=+25, ST_L55_gen inert at
any α up to ±500. Establishes Constraint C1.subjective_time_phase2c/alpha_calibration.json— α range tested per
layer.subjective_time_phase2c/l11_a25_confirm.json— L11 α=+25 single-case
text inspection.
Capability + persona α-sweep (paper-5 → constraints C3, C4)
phase10_fg_rg_causality/phase10_verdict.json— FG_L31_pre_tool and
RG_L55_mid_think α-sweep verdicts. RG α=+200: raw flip 0.96 vs random
0.02. FG inert.phase10_fg_rg_causality/{fg,rg}_full.json— Per-prompt
alpha-sweep data with stripped flip rates.phase11_capability_locus/phase11_verdict.json— 4 capability sites
(L11/L31/L43/L55 × think_start/pre_tool/turn_end). Cap_L31_pre_tool
α=-100 = +40pp (probe 0.867 - random 0.467). Cap_L55_pre_tool
α=-100 = +34pp.phase11_capability_locus/phase11b_full.json— Extended Phase 11b:
Cap_L23_pre_tool α=-100 = +40pp (probe 1.0 - random 0.6); Cap_L43_turn_end
α=-200 = +60pp (probe 0.933 - random 0.333). All 30-prompt per-site.phase11c_cross_distribution/— BigCodeBench cross-distribution
validation. L31_pre_tool α=-100 gap on BCB.phase11d_cross_distribution_round2/— Codeforces ≥2000 cross-dist.phase11e_multisite_cf/— 4-site Codeforces sweep: L23_pre_tool
+43pp, L31_pre_tool +37pp, L43_turn_end +7pp (saturation-coupled),
L55_pre_tool direction-flip (-3pp pushdown, +40pp pushup at α=+200).phase12_persona/— Persona falsifier (paper-5 Phase 12).
Epiphenomenal cases (paper-6 → constraint C5 + diagnostics D3, D4)
phase8_causal_cot/phase8_steering_results.json— CoT_L55_mid_think
α∈{0, 2, 5} steering (N=8 prompts pilot, before redux to ±200).phase8_causal_cot/phase8_verdict.json— Verdict summary.swebench_v6_phase6/phase7_steering_pilot.json— SWE_L43_pre_tool
steering at α∈{-2, 0, 1, 2, 5}. Naive
fails_mean_shift_finish_alpha2 = 0.4792 (≈ +0.479 claim). Used as
motivating case for diagnostic D3 (control-token normalization).
Phase 6 N=99 capability scale-up (paper-6 → paper-grade signal)
swebench_v6_phase6/phase6_n99_verdict.json— N=99 capability
AUROCs across 5 layers × 5 positions.swebench_v6_phase6/phase6c_methodology_sweep.json— Phase 6c
random-feature baseline + K-sweep. Catches over-parameterization at
K=50 (Diagnostic D1 motivating case).swebench_v6_phase6/phase6c_preview.json— Phase 6c preview.swebench_v6_phase6/phase6_aggregate.json— Aggregate stats.swebench_v6_phase6/selected_iids.json— N=99 SWE-bench Pro
instance ID stratification.
What's NOT here
- PSAE v1.5 data (paper-3) → already at
caiovicentino1/openinterp-psae-v15-marginal-fit-pathology - NLA data (paper-7) → already at
caiovicentino1/openinterp-paper7-nla-two-tier-verbalization - Qwen3.6-27B paper-grade SAEs → already at
caiovicentino1/qwen36-27b-sae-papergrade - SWE-bench captures (200+ files) → these are the trace tensors,
not the verdicts; available on request, too large to bundle here.
How to reproduce
from huggingface_hub import snapshot_download
import json
path = snapshot_download(
repo_id="caiovicentino1/openinterp-paper-mega-conditionally-causal",
repo_type="dataset",
)
# Example: verify the 9/14 Fisher claim
with open(f"{path}/subjective_time_phase2a/phase2a_aggregate_stats.json") as f:
d = json.load(f)
print(d["alpha_plus_50"])
# {'probe_shortens_rate': 0.6429..., 'random_shortens_rate': 0.1429...,
# 'fisher_odds_ratio': 10.8, 'fisher_pvalue': 0.00915..., ...}
License
Apache-2.0. Cite the paper at
openinterp.org/research/papers/conditionally-causal-probes
when using this data.