An experiment is the atomic unit NeuronScope produces. Every artifact, every diff, every report, every research write-up is anchored to one or more experiments — never to a live process.
Anatomy of an experiment
- Inputs. A model, a dataset or prompt, a probe, and a captured environment. Each is fingerprinted before recording begins.
- Plan. A frozen description of which layers, tensors, and summaries will be observed. Fingerprinted separately from the model.
- Observations. The tensors and metadata produced during the forward pass.
- Artifact. The sealed
.nszthat binds all of the above together.
Lifecycle
An experiment moves through five states: resolved, planned,instrumented, running, sealed. Each transition is checkpointed so a failure is attributable to a specific stage — see thearchitecture page for the flow diagram.
Constructing one
import neuronscope as ns
with ns.record(
model=model,
probe=ns.probes.LayerActivations("encoder.*"),
out="run.nsz",
) as run:
run.forward(**inputs)
print(run.artifact.fingerprint)Sessions vs experiments
A Session groups related experiments — for example, one per epoch during training. Sessions do not add semantics; they are a folder-level container so batch analyses can iterate cleanly. If you have a single recording, you have a single experiment and can ignore sessions entirely.