{
  "schema_version": "1.0.0",
  "rubric_version": "1.0",
  "license": "CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/)",
  "record": {
    "id": "K-0009",
    "slug": "recomputation",
    "title": "Recomputation",
    "aliases": [
      "re-execution",
      "replay"
    ],
    "status": "draft",
    "last_reviewed": "2026-09-23",
    "review_interval_days": 90,
    "steward": null,
    "provenance": {
      "drafted_by": "ai",
      "reviewed_by": []
    },
    "risk_flags": [],
    "flags": [],
    "one_liner": "Checking a claimed computation by re-running all of it, or a random sample, on hardware the verifier trusts and comparing the results.",
    "sources": [
      {
        "source": "S-0029",
        "supports": "full re-running of large training is infeasible; verifier re-runs segments from a reported checkpoint with the reported data batches and accepts if close to the next checkpoint; jointly trusted air-gapped cluster for confidentiality",
        "locator": "§5.1; §5.2"
      },
      {
        "source": "S-0016",
        "supports": "trusted reference implementation recomputes predictions for generated tokens; nondeterminism makes legitimate variation hard to tell from real problems",
        "locator": "abstract"
      },
      {
        "source": "S-0015",
        "supports": "inference verification against a reference to limit steganographic weight exfiltration",
        "locator": "abstract"
      },
      {
        "source": "S-0017",
        "supports": "prover commits to sampled weights before learning whether a step will be audited; correctness vs completeness; schemes address correctness only",
        "locator": "pre-training scheme; introduction"
      },
      {
        "source": "S-0018",
        "supports": "recomputation in air-gapped auditing environments with committed weights",
        "locator": "system architecture"
      }
    ],
    "related": [
      "K-0008",
      "K-0020",
      "K-0024"
    ],
    "type": "concept",
    "url": "https://trustbutveri.fyi/concepts/recomputation/",
    "source_file": "content/concepts/recomputation.md",
    "flags_all": [
      "ai-drafted"
    ],
    "body_markdown": "Recomputation checks a claimed computation by re-running it, or a random sample of it, from the same inputs on hardware the [[K-0002|verifier]] trusts, and comparing the results with those reported [[S-0029]] [[S-0016]].\n\nRe-running a large training run in full would be very costly, so in Shavit's framework the verifier re-runs selected segments, starting from a reported checkpoint and applying the reported data batches, and accepts if the result is close to the next reported checkpoint; this is the basis of [[M-0006|proof-of-learning and training-transcript verification]] [[S-0029]]. For inference, a trusted reference implementation recomputes what the model should have predicted at each generated token [[S-0016]], as in [[M-0001|sampled inference recomputation]]; the same check can limit how much of a model's weights can be hidden in its responses ([[M-0024]]) [[S-0015]]. Amodo Design distinguishes correctness, meaning that the workloads run match those declared, from completeness, meaning that every workload is reported, and notes that its recomputation schemes address only correctness [[S-0017]]. Recomputation also needs:\n- **Access to inputs and weights.** This raises confidentiality problems, which Shavit addresses with a jointly trusted, air-gapped cluster [[S-0029]]; one low-trust design uses air-gapped auditing environments with committed weights [[S-0018]].\n- **Commitment before sampling.** The prover must fix its records, for example by [[K-0024|committing]] to a hash of sampled weights, before it learns which step will be audited [[S-0017]].\n- **A way to handle [[K-0008|numerical nondeterminism]].** Benign noise otherwise makes legitimate variation hard to tell from real problems [[S-0016]].",
    "body_text": "Recomputation checks a claimed computation by re-running it, or a random sample of it, from the same inputs on hardware the verifier trusts, and comparing the results with those reported [S-0029] [S-0016]. Re-running a large training run in full would be very costly, so in Shavit's framework the verifier re-runs selected segments, starting from a reported checkpoint and applying the reported data batches, and accepts if the result is close to the next reported checkpoint; this is the basis of proof-of-learning and training-transcript verification [S-0029]. For inference, a trusted reference implementation recomputes what the model should have predicted at each generated token [S-0016], as in sampled inference recomputation; the same check can limit how much of a model's weights can be hidden in its responses (Bounding unexplained information in outputs) [S-0015]. Amodo Design distinguishes correctness, meaning that the workloads run match those declared, from completeness, meaning that every workload is reported, and notes that its recomputation schemes address only correctness [S-0017]. Recomputation also needs: - Access to inputs and weights. This raises confidentiality problems, which Shavit addresses with a jointly trusted, air-gapped cluster [S-0029]; one low-trust design uses air-gapped auditing environments with committed weights [S-0018]. - Commitment before sampling. The prover must fix its records, for example by committing to a hash of sampled weights, before it learns which step will be audited [S-0017]. - A way to handle numerical nondeterminism. Benign noise otherwise makes legitimate variation hard to tell from real problems [S-0016].",
    "referenced_by": [
      {
        "id": "M-0024",
        "title": "Bounding unexplained information in outputs",
        "url": "https://trustbutveri.fyi/mechanisms/bounding-unexplained-information/"
      },
      {
        "id": "M-0002",
        "title": "Deterministic and bit-exact inference",
        "url": "https://trustbutveri.fyi/mechanisms/deterministic-inference/"
      },
      {
        "id": "M-0012",
        "title": "Model identity attestation",
        "url": "https://trustbutveri.fyi/mechanisms/model-identity-attestation/"
      },
      {
        "id": "M-0013",
        "title": "Network taps and certifiers",
        "url": "https://trustbutveri.fyi/mechanisms/network-taps-and-certifiers/"
      },
      {
        "id": "M-0006",
        "title": "Proof-of-learning and training-transcript verification",
        "url": "https://trustbutveri.fyi/mechanisms/proof-of-learning/"
      },
      {
        "id": "M-0003",
        "title": "Reproducible computation packets",
        "url": "https://trustbutveri.fyi/mechanisms/reproducible-computation-packets/"
      },
      {
        "id": "M-0023",
        "title": "Safeguard attestation",
        "url": "https://trustbutveri.fyi/mechanisms/safeguard-attestation/"
      },
      {
        "id": "M-0001",
        "title": "Sampled inference recomputation",
        "url": "https://trustbutveri.fyi/mechanisms/sampled-inference-recomputation/"
      },
      {
        "id": "I-0011",
        "title": "AI 2040 inference-only verification stack",
        "url": "https://trustbutveri.fyi/implementations/ai-2040-inference-only-verification-plan/"
      },
      {
        "id": "I-0002",
        "title": "DiFR (Divergence From Reference)",
        "url": "https://trustbutveri.fyi/implementations/difr/"
      },
      {
        "id": "I-0012",
        "title": "Low-trust AI compute verification system overview",
        "url": "https://trustbutveri.fyi/implementations/low-trust-compute-verification-system-overview/"
      },
      {
        "id": "I-0008",
        "title": "SASH confidential network logger",
        "url": "https://trustbutveri.fyi/implementations/sash-confidential-network-logger/"
      },
      {
        "id": "I-0001",
        "title": "TOPLOC",
        "url": "https://trustbutveri.fyi/implementations/toploc/"
      },
      {
        "id": "C-0005",
        "title": "The declared model is the one being served",
        "url": "https://trustbutveri.fyi/claims/declared-model-is-served/"
      },
      {
        "id": "C-0004",
        "title": "This compute runs inference, not training",
        "url": "https://trustbutveri.fyi/claims/inference-not-training/"
      },
      {
        "id": "C-0007",
        "title": "A training run stayed within declared limits",
        "url": "https://trustbutveri.fyi/claims/training-within-declared-limits/"
      },
      {
        "id": "K-0008",
        "title": "Numerical nondeterminism",
        "url": "https://trustbutveri.fyi/concepts/numerical-nondeterminism/"
      },
      {
        "id": "K-0020",
        "title": "Sampling and assurance",
        "url": "https://trustbutveri.fyi/concepts/sampling-and-assurance/"
      }
    ]
  }
}