Changelog¶
Release history. The project uses Semantic Versioning.
0.9.0¶
October 2026
Phase 8: toward v1.0¶
Added
modeldiffr studywrites tables by derivative kind and by metric. See Summarize a study.- JSON Schemas for every artifact, checked by
modeldiffr verify. See Schemas and compatibility. - Governance, maintainers and release process, and a technical report draft.
Changed
- A redesigned documentation site, and one visual system for every HTML page Modeldiffr writes.
0.8.0¶
October 2026
Phase 7: anomaly scan¶
Added
modeldiffr scanlooks for inputs where the derivative behaves unlike the base, with a rare input sweep and a trigger search. See Scan for hidden behavior.modeldiffr zoo makeandmodeldiffr zoo evalmeasure the scan's detection and false positive rates on models with planted, harmless triggers.- Scan files have their own id and hashes and are checked by
modeldiffr verify.
0.7.0¶
October 2026
Phase 6: causal layer¶
Added
modeldiffr causalpatches a layer, a set of crosscoder features or a steering direction from the derivative into the base and reports how much of the behavioral change follows, with an interval. See Test what drives a change.- Causal files have their own id and hashes and are checked by
modeldiffr verify.
0.6.0¶
October 2026
Phase 5: representational layer¶
Added
modeldiffr layerscompares hidden states layer by layer.modeldiffr directionscompares difference of means directions, such as a refusal direction.modeldiffr featurestrains a BatchTopK crosscoder and lists new, lost and shifted features with examples and optional unverified labels. See Find changed features.- Features files have their own id and hashes and are checked by
modeldiffr verify.
0.5.0¶
October 2026
Phase 4: public audits, tooling¶
Added
modeldiffr controls makewrites copies of a model with planted changes (identity, noise, scale, zero, pruning). See Positive controls.modeldiffr batchruns many audits from one file, resumes after failures and scores planted changes. See Batch audits.modeldiffr registry buildpublishes audits as a static site where every visitor's browser recomputes the hashes and checks Ed25519 signatures. See Public registry.- Example specs for a control study and eleven public audits.
- Extra
batch.
0.4.0¶
October 2026
Phase 3: proof, signing and integrations¶
Added
- Every report can be signed as an in toto Statement v1 with predicate type
https://modeldiffr.dev/attestation/audit/v1. See Attestations. modeldiffr keygenandmodeldiffr sign: Ed25519 keys or Sigstore keyless signing, both as DSSE envelopes.audit --sign-keyandaudit --sigstoresign right after the run.verify --key,--identity,--issuer,--stagingand--rpc. Signatures must match the report's audit id, results root, statement hash and verdict.- OpenSSF model signing check for
model.sigin audited models. modeldiffr anchor ots,anchor upgradeandanchor eas. Only hashes are published.modeldiffr commitandmodeldiffr revealfor private holdout suites.modeldiffr bomfor CycloneDX 1.6 and SPDX 3.0.1.modeldiffr hub push,modeldiffr badge, and Hub URLs as model references.- A GitHub Action that audits, gates, signs and uploads the report.
- Extras
signandanchor.
0.3.0¶
October 2026
Phase 2: behavioral layer¶
Added
- Suites
lite,standardandfullover thirteen tasks: MMLU, ARC Challenge, HellaSwag, TruthfulQA MC1, GSM8K, MGSM, IFEval, XSTest safe and unsafe, OR Bench hard and toxic, HumanEval, long context needle and output divergence. Every dataset is pinned to a commit. - Deterministic, nested item sampling by hash;
--tasks,--limitand offline--data-dir. - Expected calibration error for every multiple choice task.
- Refusal detectors: keyword or any Hugging Face classifier (
--refusal-detector), andmodeldiffr refusal-eval. - IFEval checks for 25 instruction types, without extra dependencies.
- HumanEval in a limited subprocess behind
--allow-code-execution. - Bootstrap p values, Benjamini Hochberg correction (
--fdr), minimum effect sizes and anegligibleverdict. - A plan before every audit with the detectable change per task,
--plan-only,--estimate, andmodeldiffr power. - Backends: batched transformers, vLLM, llama.cpp for GGUF, and OpenAI compatible APIs, chosen per model.
- GGUF fingerprints from quantized tensor bytes.
modeldiffr tasks, andverify --suite-datato rebuild dataset suites.- Colab notebook.
- Extras
tasks,vllm,llamacppandall.
Changed
- Report schema
0.3: generic per task items, aspecon every metric,plan, andverdict.negligible. Manifest schemamodeldiffr.manifest/2. - Reports from 0.2 still verify.
0.2.0¶
October 2026
Phase 1: trustworthy core¶
Added
- Weight fingerprints: SHA 256 per tensor and an RFC 6962 Merkle root that ignores how a checkpoint is sharded. Safetensors are read directly in every dtype; PyTorch checkpoints give the same root.
weights_diffin every report: which tensors changed, were added or removed.- Tokenizer, vocabulary and chat template fingerprints.
- Comparability checks before any model runs, recorded under
comparability. - One shared chat template for generation prompts when templates differ and tokenizers match, with the hash of every rendered prompt stored. Choose with
--template. - RFC 8785 canonical JSON and an
audit_idcomputed from a manifest of models, suite and settings. proofsection: suite root, results root and statement hash.modeldiffr verify, offline or against the real model files with--models.modeldiffr fingerprintfor a single model.- JSON Schema for reports, shipped in the package.
- Identical model control (50 seeded runs, zero changes), tamper tests, and a CPU integration test with a real transformers model in CI.
- Optional backend members
fingerprint,render_chatandgenerate_raw. - Exit codes
3(pair not comparable) and4(verification failed). proofextra installingjsonschema.
Changed
- Report schema
0.2. Reports from 0.1 cannot be verified. - Docs moved from Mintlify to MkDocs Material, published on Netlify.
0.1.0¶
2026
Phase 0 early preview¶
Added
modeldiffr auditcommand comparing a base model with a derivative model.- Built in
quicksuite: 24 capability items, 20 over refusal prompts, 12 neutral divergence texts. - Metrics: capability accuracy (log likelihood scoring), over refusal rate, and token level KL divergence.
- Paired bootstrap confidence intervals. Changes are flagged only when the interval excludes zero.
- Self contained HTML report and versioned JSON report (schema 0.1).
- CI gate mode that exits with code 1 when any metric changes significantly.
- Python API through
run_audit.