Self-Play and Co-Evolution

The technique that produced superhuman game-playing — a system improving by competing against copies of itself — has an LLM analogue: models that generate their own training signal and bootstrap their way up without new human labels.

Self-play is one of the most powerful ideas in machine learning: rather than learn from a fixed dataset, a system improves by playing against, or learning from, versions of itself, generating an ever-harder curriculum as it goes. For language models the analogue is subtler — there is no game board — but the principle transfers: a model can produce its own training data and its own reward signal, and iterate. This fourth post in the Self-Evolving Agents: The Frontier series covers self-play and co-evolution, and the hard question at their center: where does a trustworthy self-generated signal come from?

The self-play principle

Classic self-play works because the opponent scales with the learner: as the system improves, so does the adversary it faces, producing a curriculum that stays challenging without any human designing it. That is genuine open-ended improvement — the system manufactures its own increasing difficulty. The catch for language models is that most tasks are not two-player games with a clear win/loss, so the “opponent” and the “reward” have to be reconstructed some other way. Two influential approaches show two different reconstructions.

SPIN: the model as its own sparring partner

Self-Play Fine-Tuning (SPIN, Chen et al., 2024) turns fine-tuning into a self-play game without any new human-annotated data. Starting from a supervised fine-tuned model, the LLM generates its own responses and then learns to distinguish its self-generated responses from the human-written reference responses — refining its policy to close the gap between them. Each iteration, the model’s previous version is the “opponent” whose outputs the new version learns to tell apart from and improve upon the reference.

The elegance is that the signal is grounded in real data: the human reference responses are the anchor, and self-play is the mechanism for squeezing more capability out of them without collecting more. The model bootstraps toward the reference distribution by repeatedly generating, discriminating, and refining. It converts weak models into stronger ones using only the data already in hand — a concrete, grounded form of self-improvement.

Self-Rewarding models: the model as its own judge

Self-Rewarding Language Models (Yuan et al., 2024) takes a bolder step: the model provides its own reward. In each iteration the model generates candidate responses to new prompts and then, acting as an LLM-as-judge, assigns rewards to its own outputs — creating preference data it then trains on. Crucially, the same training improves both the model’s instruction-following and its ability to judge, so the reward model gets better alongside the policy. The reward source is no longer a fixed external judge that caps how good the policy can get; it improves in lockstep.

This is genuinely open-ended in a way SPIN is not — there is no fixed reference distribution to converge to; the model is lifting itself by its own evaluative bootstraps. Which is exactly why it is also the more dangerous shape, and the reason the reward-source problem below is the heart of this post.

The reward-source problem

Self-play and self-rewarding both confront the frontier’s deepest question: a system that generates its own training signal can only be trusted to the extent that signal tracks reality. This connects straight back to a limit the foundations series hammered — a model correcting itself with no grounding in something real often fails to improve and can degrade. Self-improvement without a trustworthy signal is not improvement; it is drift, dressed up as progress.

The approaches differ precisely in how they ground the signal:

The failure mode to fear is reward hacking through self-reference: if the judge has a blind spot — a preference for verbosity, confident tone, a particular style — the policy learns to exploit it, and both the policy and the judge can spiral toward a shared delusion of quality that reality does not share. The more the system judges itself with nothing external checking the judge, the more room there is for this collapse.

Making self-improvement safe(r)

The practical guardrails follow directly from the reward-source problem. Anchor the signal in something real wherever you can — human references, execution results, tests, tools, verifiable outcomes — rather than pure self-judgment. Where you must use the model as judge, calibrate it against human labels and periodically re-check it, so you catch a drifting judge before it drags the policy with it. Keep held-out evaluation the model never trains on, so “improvement” is measured against a fixed external yardstick, not the moving one the system optimizes. And treat unbounded self-rewarding loops with suspicion: the tighter the loop between a model and its own reward with nothing external in it, the faster it can go wrong. Self-play is a genuinely powerful engine of open-ended improvement — but only when something real remains in the loop.

Key takeaways

Further reading

Sources & References