Sources
A source is where a chain of data starts: a Hugging Face dataset or model, a bucket prefix, a URL, a git repo.hf:datasets/allenai/c4@1588ec4). A uri that carries a credential (a presigned signature, a token, a password) is refused before it leaves your machine. A source a run used cannot be deleted.
Datasets
A dataset is a team-wide name with versions:dataset:c4-clean@3. Register what a run wrote:
- Bytes stay where they are by default. A folder is identified by its manifest: each file’s path, size and SHA-256 (hashed within the run’s I/O budget; past it, a fingerprint). Probe stores the manifest, never the data.
- Same bytes, same version. Registering identical bytes again adds no version; it records the run as a check on the existing one.
- Store it in Probe with
--upload/upload=True, file or folder. Unchanged files are never uploaded twice. Hosted data has its own quota: 50 GiB on the free plan (datasets and checkpoints together), no limit on paid plans. - A step done by hand:
probe dataset add OUT --name N --from dataset:raw@1 --step "dedup by hand" --project Precords the step as a finished run. - A mixture:
log_dataset(..., composition={"dataset:a@2": 24000, "dataset:b@1": 10000})(rows or shares) records what the new dataset is made of. - Read-restricted projects: registering from a run in one needs
--publish/publish=True, because the catalog is team-wide. - A dataset any run used cannot be deleted.
What a run used
Say what a run trained on, and with what role (train, validation, test, eval, init, tokenizer, other). Name the exact version or save:
dataset:<name>@<N>, checkpoint:<run>@step<N> or source:<key>@<revision> — so history never moves when @4 lands. probe dataset show lists a dataset’s versions and probe checkpoint list --run RUN a run’s saves.
- The CLI refuses a moving ref. A bare
dataset:<name>,@latest,@bestor a source with no revision would pin whatever is newest when you link it, not what the run read. - In a script, a moving ref is pinned to what it names at the moment of the call. It is never queued for later: if Probe is unreachable, or the run is offline, the call warns and records nothing. A fixed ref is always safe.
--reasonsays in a sentence why the run used it.--evidence <stream>:<offset>:<index>(repeatable) names the session event the link rests on, as the transcript shows it.- The Hugging Face integration records the base model (
init) and Hub datasets for you.
Checking and correcting a run’s links
probe run inputs lists what the SDK saw the run read. Each read carries stored_as: the catalog entries holding exactly those bytes. That is evidence for choosing the right link, never a link itself — record the use with probe dataset use or probe checkpoint use. A link that is wrong, or has the wrong role, is fixed by removing its edge (probe edge remove) and recording the right one.
Checkpoints
Every checkpoint a run saved, team-wide, with what it was trained on and what it started from:--rewind-to-step), checkpoints from the discarded range are marked rewound and are never picked by @latest or @best.
Uploaded checkpoints come back byte for byte. With PROBE_CHECKPOINTS=upload (or checkpoints="upload"), a checkpoint’s files are never rewritten: a file holding something the credential scrubber would mask is not stored at all, with a warning, and the download names it as missing. Checkpoints stored masked by an older client stay masked; Client.download_checkpoint warns with ArtifactRedactedWarning naming those files, and probe artifact download --checkpoint prints a note. Upload them again to fix them.
Where it came from
log_dataset, probe dataset add) and what each run used (use_dataset, probe dataset use, probe checkpoint use). Nothing is matched by file bytes, so a step that recorded no use is a gap in the chain. For data Probe must not read, the hash level records each file’s hash and row count instead of its contents.
Downloading
The catalog needs CLI 0.253.0 or later. Every SDK call warns once and carries on if the server or network says no: it never stops a training job.