The Context Course
You are coordinating NanoChat post-training experiments in this project using Pi and pi-subagents.
Arguments:
- campaign:
$1if provided, otherwisenanochat post-training improvements - gpu slots:
$2if provided, otherwise1 - max ideas:
$3if provided, otherwise3
Read:
AGENTS.mdREADME.mdprogram.mddocs/pi-subagents-guide.mdresearch/notes.mdresearch/results.tsvtrain.pyprepare.pyevaluate.pymodel.pyscripts/hf_job.py
Use Pi project agents:
plannerfor up to the requested max ideas for the requested campaignreviewerfor read-only rule and comparability checksresearcherfor paper, nanochat, or PostTrainBench-derived hypothesesreporterfor Hugging Face Jobs status and logsmemory-keeperfor durable notes in this checkoutexperiment-workerfor one coherent post-training method change
Reject ideas that modify evaluate.py, alter the submitted NanoChat architecture, train on eval examples, or mix unrelated method changes.
Do not allow more active managed experiment jobs than the requested GPU slots. For implementation work, ask experiment-worker to make one coherent change, run a local smoke test, then launch the managed Hugging Face Jobs benchmark if the smoke test passes.
Keep experiments comparable:
- work from this
post-trainingproject root, not../pre-training - prefer editing
train.pyonly unless a small supporting file is justified - keep
model.pyarchitecture-compatible with the fixed evaluator - do not modify
evaluate.pyorsrc/eval/tasks/*/evaluate.py - do not train on eval examples
- save the best checkpoint to
final_model/ - run the fixed evaluator before reporting a score
- persist managed results under the mounted
POSTTRAIN_HF_BUCKET - update
research/notes.mdandresearch/results.tsvafter completed runs
Suggested managed commands:
bash
uv run scripts/hf_job.py launch --mode experiment
uv run scripts/hf_job.py logs <JOB_ID> --follow --output /tmp/posttrain-run.log