Two published papers disagree about whether instruction-tuning makes a language model more brain-like. This repo shows the disagreement cannot be settled with the fMRI data that exists, and gives a one-line diagnostic that detects the problem.
Paper: paper_neurips/ · Findings writeup: docs/FINDINGS.md
Everyone in this literature compares models by a scalar alignment score. Nobody reports the reliability of the difference being drawn. That omission turns out to be decisive.
On the deepest fMRI available (15.6 h/subject):
| Quantity | Reliability |
|---|---|
| Each model's own alignment map | 0.91 – 0.95 |
| The difference between two models' maps | 0.005 – 0.031 |
| Spread of that difference across re-draws | sd 0.09 – 0.14 |
The difference is smaller than its own error bar. It held across all four model families tested, including a heavily DPO-tuned pair. Neither obvious escape works: a 20× increase in stimulus takes model maps from noise to 0.93 and leaves the difference inside ±0.02, and doubling model size makes the contrast less measurable, because post-training moves the larger model's representations less.
Resolving a difference map at this scale would need roughly 490–3,400 hours of scanning per subject, against the 15.6 that exist. Published disagreements are therefore consistent with both parties measuring something their data cannot resolve.
The diagnostic costs one extra correlation on fits you have already computed.
It started as a directional hypothesis: that post-training redistributes alignment across the cortical hierarchy rather than raising or lowering it. That hypothesis was rejected, twice over, and the rejection is what produced the result above:
- The spatial redistribution pattern was noise. A pre-registered test failed on the blind subject, and the score flips sign across disjoint story halves.
- The ~5% main effect was a pipeline artifact. Its sign flips between PCA and raw features, unanimously across all three subjects.
The confound-robust pipeline built to test the original hypothesis is sound, and is what the reliability result is measured with. The sections below document that pipeline and the original claim; both are kept because the negative result is the finding.
Post-training (instruction-tuning, DPO/RLHF) does not uniformly raise or lower an LLM's alignment to the human language system — it redistributes it, shifting alignment from core language-network regions toward extended-semantic / default-mode cortex while leaving the aggregate approximately unchanged. Prior work reports a scalar (Aw et al., COLM 2024) or hunts for whole-brain blobs (Gao et al., Nat Comp Sci 2025); a redistribution of this shape is invisible to both.
The hook — from Gao et al.'s own supplement, in the paper whose title says instruction tuning doesn't increase alignment:
"LLaMA3-Instruct 70B showed a higher mean regression score (mean = 0.259 ± 0.005) … compared to the LLaMA3 70B (mean = 0.243 ± 0.005, t = 80.528, P = 5.76 × 10⁻⁴), but no significant brain cluster has been found"
A significant instruct-beats-base effect their method could not localise.
See docs/concept_note.md for the full argument, verified prior-art
audit, method, and timeline.
⚠️ Gao et al. 2025 is widely mis-cited as "Zhang 2025". No author named Zhang is on that paper. Any source citing "Zhang" is unreliable — see the concept note.
alignred/ package (textgrid parsing, features, encoding, ROIs, stats)
configs/ experiment configs
docs/ concept note, experiment log
paper/ manuscript
results/ result artifacts (json/csv)
scripts/ runnable entry points
tests/ pytest suite
data/ gitignored — see Data below
python3 -m venv .venv && .venv/bin/pip install -r requirements.txt
.venv/bin/python -m pytest tests/ -qNot committed. Fetch from OpenNeuro:
# Word-level forced alignments (80 MB) — needed for tests
aws s3 sync --no-sign-request \
s3://openneuro.org/ds003020/derivatives/TextGrids/ data/textgrids/
# Preprocessed fMRI, ~18.7 GB per deep subject (UTS01-03 have 84 stories each)
aws s3 sync --no-sign-request \
s3://openneuro.org/ds003020/derivatives/preprocessed_data/UTS01/ data/fmri/UTS01/| Dataset | ID | Role |
|---|---|---|
| LeBel et al. | OpenNeuro ds003020 |
Depth — pilot (UTS01-03: 84 stories each) |
| Narratives | OpenNeuro ds002345 |
Breadth / power (345 subj, CC0) |
| Pereira 2018 | — | Paradigm generalisation (reading) |
ds003020 ships three Praat serialisations. A long-format-only parser silently drops
3 stories (exorcism, legacy → chronological; life → short) = 6,755 words, ~4% of the
corpus. alignred.textgrid handles all three and raises on an unrecognised header rather
than returning empty.
All model inference / feature extraction runs on Lambda, never locally.