veritas

documentation · schema v2

Auditing benchmark integrity

Overview

Veritas checks whether a model's reported benchmark performance transfers beyond the exact evaluation protocol. It records prompts and responses, runs reproducible transformations and controls, computes paired uncertainty, and packages the evidence with provenance and a deterministic audit hash.

Workflow

audit specification
  → validate benchmark + privacy choices
  → inspect request, token, and cost limits
  → evaluate canonical items
  → generate and validate transformed items
  → run available detectors and controls
  → compute paired statistics
  → write JSON + Markdown + HTML evidence package

Model adapters support replay, mock responses, OpenAI-compatible HTTP endpoints, vLLM-compatible servers, local Hugging Face Transformers, and custom subprocesses. Content-addressed caching makes interrupted runs resumable and includes model and generation settings in every cache key.

Evidence, not a verdict

Findings distinguish exact or near-reference exposure, semantic exposure, template and protocol dependence, choice or position sensitivity, evaluator exploitation, distribution shift, fresh-set transfer, legitimate capability, and inconclusive or unavailable evidence. Every detector declares its requirements and emits not_runwhen those requirements are absent.

Statistics

Score variants retain parent-item lineage. Comparisons use paired parent-item bootstrap intervals, permutation tests, and McNemar analyses where applicable, with clustered uncertainty and effect sizes. The configurable Benchmark Robustness Index is explicitly uncalibrated and must not be read as a probability of contamination.

Install

The package is not published on PyPI yet. Install from a local checkout; the second form adds direct local Transformers inference, the named benchmark catalog, and may install PyTorch.

python -m pip install -e "/absolute/path/to/veritas[cli]"
python -m pip install -e "/absolute/path/to/veritas[cli,local-model,benchmarks]"

# or, from the repository root
uv sync --extra cli --extra local-model --extra benchmarks

veritas benchmarks
veritas benchmarks mmlu

Run an audit

veritas inspect --config audit.yaml
veritas audit --config audit.yaml --out audit-run/

# uv-managed checkout
uv run veritas inspect --config examples/benchmark_integrity/open_weight_audit.json
uv run veritas audit \
  --config examples/benchmark_integrity/open_weight_audit.json \
  --out audit-run/

A catalog audit uses benchmark: {adapter: catalog, name: mmlu, limit: 100}. Presets currently cover MMLU, MMLU-Pro, ARC-Challenge, OpenBookQA, HellaSwag, CommonsenseQA, PIQA, WinoGrande, TruthfulQA, BoolQ, GPQA, HumanEval, and SWE-bench Verified. inspect validates the specification and estimates requests, tokens, cost, and private-data transfer before inference. The audit directory contains machine-readable data and human-readable reports. Open report.json in the report viewer to inspect prompts, responses, transformations, score comparisons, evidence, unavailable tests, and provenance.

Private benchmarks

External adapters require an explicit per-run acknowledgement when the benchmark is marked private. Transfer choices are redacted in provenance, and secrets are excluded from reports and cache keys. Use a local adapter when benchmark terms prohibit external disclosure.

Interpretation

“Benchmark maxxing” is useful shorthand, not a scientific outcome class. A large drop under a valid transformation can show protocol fragility; it does not by itself show training-set contamination. Strong claims require calibrated detectors, matched controls, alternatives, and uncertainty that support that specific claim.

Legacy biology

The sequence-based leakage auditor remains supported as a distinct legacy domain. Its existing report fixtures open in the legacy v1 viewer. Command migration and the v2 schema are documented in the repository's reference docs.