The scripts are in the repository, not in the installed package. Clone it,
then
cd recipes/papers/board-writers before running the commands below. Browse this recipe on GitHub.Recipe
- Base:
Qwen/Qwen2.5-1.5B-Instruct. Data: MATH train, levels 3 to 5, 1,024 problems; MATH-500 levels 3 to 5, 300 held out (disjoint by construction). - Round one: four copies of the current policy each post a note (key steps and a boxed answer, at most 256 tokens).
- Round two, a ring: reader j reads notes j and j + 1, so every note has exactly two readers. A reader is paid its own answer (
MathEqualagainst the gold). - Baseline: TRL GRPO + LoRA r=32, 80 steps, 12 problems x (4 notes + 4 readers), lr 1e-4, on-policy, no KL, reward minus group mean. Notes are in the batch at zero advantage, so the loss is normalized over the same tokens.
- Recipe: the same, with each note’s advantage its two readers’ mean reward minus the mean over the four notes. Nothing about the note’s own answer enters.
- Eval: the same two rounds on the 300 held-out problems, pass@1 over the 4 readers, three training seeds per arm, paired delta with a 95% interval (
wai.compare,train_runs=).
Run
Result
Recipe vs baseline: -0.017 [-0.048, +0.014] across three training seeds. Verdict: flat, and pointing the wrong way.
Training the readers alone is steady: 0.32, 0.33, 0.35. Paying the notes is not: 0.30, 0.23, 0.34, and the 0.23 seed ends below the untrained base. The notes did not become short and answer-bearing in any seed. They stayed long or got longer (744 chars on seed 17), and the share that close a boxed answer fell to 8 to 16 in 100, where the baseline’s notes kept 14 to 31. The one seed whose notes got short (451 chars) had the worst vote over its board (0.07) and the most misled readers (0.04).
Why the credit did not teach: the mean absolute note advantage was 0.08 to 0.09 all run. On a problem where two readers score 1 and 0, every note on the ring gets roughly the same credit, because each reader reads two notes and every note is read by two readers. The signal a note gets is mostly how hard the problem was, not what the note said. And notes and readers share one set of weights, so reader training moves the notes in both arms (the baseline’s notes drift too, from 0.26 to between 0.14 and 0.31 with an answer).
Checks
Nothing in this table is ticked by hand: every cell is written byrecipe.py into results.json.
Climb
Learned
- Readers learn from a board on hard problems too: from 0.26 untrained to 0.32 to 0.35 on MATH levels 3 to 5, three seeds within 3.5 points of each other.
- Paying a note its readers’ mean does not make better notes at this size. The credit is too flat to say which note helped, the notes drifted long in two seeds and short-and-wrong in the third, and one seed ended below the base.
- Next: sharper credit. Leave one note out and re-read (the difference is that note’s own effect, at 5x the reading cost), or pay a note for its own correct boxed answer plus what its readers did, so the easy signal comes first. The in-budget alternative is a larger model, whose untrained notes already carry answers.
References
- Lambert, N. Reinforcement Learning from Human Feedback. arXiv:2504.12501, 2025. Chapter Reasoning.
- Shao, Z. et al. DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models. arXiv:2402.03300, 2024.
- Park, C. et al. MAPoRL: Multi-Agent Post-Co-Training for Collaborative Large Language Models with Reinforcement Learning. arXiv:2502.18439, 2025.
- Hendrycks, D. et al. Measuring Mathematical Problem Solving With the MATH Dataset. NeurIPS 2021. arXiv:2103.03874.
- Lambert, N. Reinforcement Learning from Human Feedback. arXiv:2504.12501, 2025. Chapter Evaluation.
- Gao, L., Schulman, J., Hilton, J. Scaling Laws for Reward Model Overoptimization. ICML 2023. arXiv:2210.10760.