Feature detectors: saved-result notebook

Requires Python 3.12 or later. Extract all files into one directory, then run:

  python -m pip install -r requirements.txt
  marimo edit notebook.py

Opening the notebook reads the bundled final-model parameters and activation
records. It does not train, download the dataset, or overwrite saved results.
Select a data split and a message, inspect each neuron, disable neurons,
try a new message, and compare the recorded initialization runs.
The implementation and gradient explanations appear at the notebook's end.

To rerun training explicitly (downloads the dataset the first time):
  python train_sms.py --epochs 40 --seed 42 --output new-results.json

To reproduce the interpretability audit and regenerate its artifacts:
  python analyze_interpretability.py
This overwrites interpretability-results.json, its activation archive, and PNG.
The original example-results.json remains unchanged.

Recorded run: PyTorch 2.14.1+cpu, seed 42, 40 epochs, 4,128 training messages,
1,031 held-out messages. The archive contains activations at the final model,
not an epoch-by-epoch history. Different software/hardware can affect reruns.

Dataset: UCI SMS Spam Collection, Almeida & Hidalgo (2011).
https://archive.ics.uci.edu/dataset/228/sms%2Bspam%2Bcollection
https://doi.org/10.24432/C5CC84
Licensed under CC BY 4.0: https://creativecommons.org/licenses/by/4.0/
See the report and JSON for deduplication, split rules, checksums and limitations.
