Prerequisites
Before you begin, you need:- A registered miner hotkey on BASE (netuid 100).
- Python with
torch, able to build atorch.nn.Moduleunder the 150M parameter cap. - A two-script project: a model
architecture.pyand a trainingtraining.py.
src/prism_challenge/evaluator/interface.py:26 (150M cap); docs/miner/README.md:1-18.
Get started
Write architecture.py
Expose a pure Source:
build_model(ctx) factory that returns a torch.nn.Module. It must not read data, open files, touch the network, or reference the dataset.docs/submissions.md:137-153.Write training.py
Expose Source:
train(ctx) — the loop you own. Build the optimizer and schedule, read the locked train split from ctx.data_dir, tokenize, run the loop, handle multi-GPU, and write only under ctx.artifacts_dir.docs/submissions.md:157-165.Declare prism.yaml (optional)
Add a Source:
prism.yaml to declare the entrypoints and the tokenizer. When absent, PRISM uses the default entrypoints (architecture.py, training.py) and symbols (build_model, train).docs/submissions.md:43-49; examples/tiny-1m/prism.yaml:1-5.Bundle the project
Package the scripts as a Source:
.zip (or directory snapshot). A minimal bundle:docs/submissions.md:130-135.Submit
Submit the bundle to the public route (when public submissions are enabled), or let the BASE proxy forward it in production.Source:
src/prism_challenge/routes.py:32-33; docs/miner/README.md:104-118.What happens after you submit
- PRISM validates the two-script contract and runs the static AST sandbox.
- An OpenRouter LLM hard gate reviews both scripts and can reject before any GPU work.
- The validator re-executes your
training.pyunder a forced random init on the locked train split. - The challenge computes the prequential bits-per-byte score plus the held-out delta tie-breaker.
- Scores rank on the leaderboard and convert into normalized, dry-run weights.
README.md:34-42.
Next steps
Submitting to PRISM
The three submit modes and full
prism.yaml reference.Providing context
The
PrismContext fields your scripts receive.Examples
A complete tiny two-script bundle.
Scoring
How your bundle is scored and ranked.