1 viewer
cre8-tiny-demo

Model

One CRE8-made int8 model, derived from the recipe in this URL: its card, its training receipt, every weight, the corpus it cuts into, and the layer chain run on the emulator against the native forward pass.

Root
4749998015ed…
Shape
16 → 8 → 4
Weights
160 bytes
Chunks
4 × 40
Loss
63,946 → 7,251
Edits
0

Recipe

Shape
16 → 8 → 4
Shift
4
Seed
7
Iterations
2,000
Batch
16
Chunk bytes
40
Edits
none
Training work
5,120,000 mul-adds

This URL is the provenance. Anyone who opens it derives the same bytes and the same root — and the root in the path is that root.

/view/model/4749998015ed26b0ad94bbf4ae1db50aba8878e2689a10a801c4ed7b27723b11?name=cre8-tiny-demo&widths=16,8,4&shift=4&seed=7&iterations=2000&batch=16&chunk=40

Card

Schema
cre8.tiny_model.v1
Name
cre8-tiny-demo
Weights sha256
cf4626abc479271cdf66ffce9cc7aea04cb0c16505609d06960d7875f2b28f2e
Basis root
4749998015ed26b0ad94bbf4ae1db50aba8878e2689a10a801c4ed7b27723b11
Total bytes
160
Chunk bytes
40
Chunk count
4
Input columns
16
seed 7iterations 2,000batch 16initial loss 63,946final loss 7,251accepted moves 247

Training curve

Training loss 7251

Integer L1 loss over the fixed batch, sampled every 8 iteration(s): 63,946 → 7,251 across 2,000 iterations, 247 accepted moves. Hill-climbing keeps only improving deltas, so the curve never rises.

Layers

#ShapeOffsetBytesShiftChunksELF sha256StepsChain
08 × 1601284#0–#35ee9178afa66…1,096probe input
14 × 8128324#3a2f2d93bd1d0…296chained
layer 0 · 8 × 16 · bytes 0..128
layer 1 · 4 × 8 · bytes 128..160

Cells are int8 weights: warm is positive, cool is negative, deeper is larger. Hover a cell for its index and value; a ringed cell was hand-edited.

Corpus

#040 bytes · 0..40
35f382aa5f59…
layer 0no holder declared
#140 bytes · 40..80
05bf4d504a42…
layer 0no holder declared
#240 bytes · 80..120
f1376ce80c15…
layer 0no holder declared
#340 bytes · 120..160
fd343fc60657…
layer 0, 1no holder declared

4 chunk(s) of 40 bytes fold to root 4749998015ed26b0ad94bbf4ae1db50aba8878e2689a10a801c4ed7b27723b11. Custody is declared per chunk by the peers that hold it; the Foundry holds nothing, so every tile is unheld here. In the lane, a holder answers a custody challenge over the chunk bytes and a checker that holds the same chunk verifies the answer, or confirms membership alone when it does not.

Poke a weight

Change one weight byte and watch what moves: the byte, its chunk's hash, the root, and — sometimes — the probe's outputs. The training receipt does not move; the card records the edit instead. Probe input [40, 59, -19, -84, -61, 23, -58, -51, 13, 63, 108, -90, 42, -85, 11, 81] → outputs [-964, -539, 809, -1051].

Poke a weight

Run it here

LayerELF bytesELF sha256StepsOutputsActivation outChain
04,2405ee9178afa6635e03c10465355d75bcc6e171b031b27d66348f0aa556c49439a1,096[2509, -198, -713, 1598, 689, 467, 1287, -3200]ec424d7e9b26…probe input
14,136a2f2d93bd1d0a06c0be64d1cc6866fee692aaf7ee4620434c790e3ce02b755b0296[-964, -539, 809, -1051]d9d09ed842b8…chained

emulated == native The RV64 emulator, running each layer's ELF from the corpus slices, reproduced the native forward pass on the probe: [-964, -539, 809, -1051].

Each ELF's sha256 is the program binding a proof of that layer commits to, so the weight slice is bound through it. This run is local and unproven — a receipt, not a STARK; the lane's executors prove the same ELFs.

Train another

Swarm

This page ran every layer itself. In the lane, layer k is a workunit_v1 parcel an executor peer runs and the requester admits (model_lane::admit_model_layer_response: witness-bound, artifact-bound, step-Merkle commitment present, kernel ir_hash) before settling cre8/compute/model to the executor. A durable run log lands with the scheduler tick; until then there are no receipts to list here, and this section says so rather than showing a stand-in.