jcp-efficiency: Seal a training run measured energy as training/1 #44
Loading…
Reference in a new issue
No description provided.
Delete branch "jcp-training-receipt"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Increment 2 of making Agent Joule a training platform, not just an inference harness. Independent of the FL-2 stack; base is main.
The gap. Every lab racing to ship models publishes efficiency in a unit that is not energy — parameters, throughput, tokens, or a flat "runs on your hardware" that moves the electricity bill onto the buyer with no meter attached. Prior landscape scans repeatedly flagged joules-per-token-trained as the single most strategically important, entirely uncontested number. This seals it.
What.
training/1is the inference-sideefficiency/1turned to face the other direction — same honest-provenance energy (measured/modeled/est., never overclaimed), same JCR-1 sealing (COSE_Sign1/EdDSA, ints+strings only), same hash-chaining, same optional attestation binding. What it adds are the training-specific commitments: base weights, dataset, and resulting weights are each a content id, so a set of weights carries verifiable evidence of what it cost and what data produced it. The dataset id is the verified-exhaust corpus digest from increment 1 (agent-joulejoule_core::training), so the chain runs verified run → corpus → weights.uj_per_token_trained.TrainingMethod= sft / rl / lora / distill.Every commitment is load-bearing — a test flips one envelope byte and verification fails, so a receipt cannot be lifted onto different weights or a different dataset. A modeled (FLOP-estimated) run seals as
ModelBased, neverHwShunt— the honest-provenance rule applied to exactly the number the industry most wants to fudge.8 new tests (14 in the crate), full JCP workspace builds with 0 warnings.
Release Notes: