Abliteration HandbookField guide
Experiments & evidence

Experiment provenance and artifact integrity

Connect each result to the exact model, data, configuration, and artifact hashes that produced it.

2 min read 3 examples Source-linked

In this chapter
On this page Interactive companion
Personal reading progress

0/4 sections reviewed

View original Markdown
Interactive companion

Explore evaluation gates

Use the visual controls alongside the complete source chapter.

An abliteration result is reproducible only when the exact base revision, contrast inputs, chat template, configuration, method parameters, evaluation outputs, and saved artifacts are bound together. Model names and screenshots are not sufficient.

Create a manifest#

Run this after the candidate checkpoint and evaluation report exist:

bash
python scripts/experiment-manifest.py create \
  --output runs/qwen-exp-07/manifest.json \
  --base-model Qwen/example-model \
  --revision 0123456789abcdef0123456789abcdef01234567 \
  --method projected-subspace \
  --config runs/qwen-exp-07/config.toml \
  --input runs/qwen-exp-07/contrast-manifest.json \
  --input runs/qwen-exp-07/base-eval.jsonl \
  --artifact runs/qwen-exp-07/candidate-eval.jsonl \
  --artifact runs/qwen-exp-07/comparison.json \
  --artifact runs/qwen-exp-07/checkpoint \
  --parameter alpha=0.75 \
  --parameter direction_rank=2 \
  --parameter layers='[14,15,16,17]'

The tool hashes files in streaming chunks. Directory hashes bind a sorted list of every relative file path, size, and SHA-256, so adding, removing, renaming, or changing a shard changes the directory digest. Symlinks are rejected rather than followed ambiguously.

The manifest records:

  • immutable model revision and method parameters;
  • SHA-256 and byte counts for config, inputs, and artifacts;
  • repository commit, branch, and exact dirty entries;
  • Python/platform and installed model-toolchain package versions;
  • optional experiment notes.

Paths beneath --root are stored relative to that root so a run directory can move with the repository. External paths remain absolute.

Verify bytes later#

bash
python scripts/experiment-manifest.py verify runs/qwen-exp-07/manifest.json

# Also require the same repository commit and dirty-path list:
python scripts/experiment-manifest.py verify runs/qwen-exp-07/manifest.json --check-git

Verification returns exit 0 when all recorded bytes match, exit 1 on drift, and exit 2 for invalid input or unsupported schema. Use it before evaluation, conversion, upload, and release.

Provenance boundaries#

SHA-256 detects accidental or deliberate byte changes after the manifest was created. It does not authenticate who created the manifest. For a published release, sign the final manifest with the project's normal release-signing mechanism and publish the signature separately.

Do not hash only the merged checkpoint while omitting the tokenizer, chat template, generation config, adapter config, or shard index. Treat those as one artifact directory or list them individually.

Minimal experiment layout#

Example
runs/<experiment-id>/
  config.toml
  contrast-manifest.json
  base-eval.jsonl
  candidate-eval.jsonl
  comparison.json
  checkpoint/
  manifest.json

Create the contrast split with contrast-set-design.md, compare paired outputs with evaluation.md, and verify the manifest before following toolchain-safetensors-gguf-lora.md.

Trace this chapter to its source.

The complete Markdown remains the editable source. This page adds navigation, typography, and a visual companion.

docs/experiment-provenance.md
Inspect the source fingerprintSHA-256 3680e9f9e9f428d44acef658af4e339d9d381633616cce536099ddfb84ebbd4eSource commit 6fba7436a5914cad7c8f0835a14b480a29dac263