Generate verifiable synthetic training data (problems + solutions + verification artifacts) through evolutionary synthesis that works across math, code, and agent tasks without task-specific rules.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
A direct command skips the review prompt. Inspect the source before running it.
Generate verifiable synthetic training data (problems + solutions + verification artifacts) through evolutionary synthesis that works across math, code, and agent tasks without task-specific rules.
Technique: Evolutionary Data Synthesis — Task-Agnostic Verifiable Data Generation
Creating high-quality synthetic training data requires either expensive human annotation or task-specific generation rules (code templates, math problem schemas). EvoSyn solves this through evolutionary data synthesis: jointly evolve problems, diverse solutions, and verification artifacts that can be checked automatically.
The key insight is that verification enables learning without perfection. By generating problems where correctness can be automatically verified, the model learns from diverse high-quality solutions without human labels. The evolutionary approach generalizes across domains (math, code, agents) without task-specific engineering.
Core Concept
EvoSyn operates on four principles:
Multi-Component Generation: Simultaneously evolve problems, candidate solutions, and verification checks
Consistency-Based Evaluation: Solutions must pass both human-annotated and strategy-induced checks
Iterative Discovery: Refine what counts as "verifiable" across multiple domains
Task-Agnostic: Single pipeline works for math, coding, agent tasks without customization
The result is stable RL training with automatic verification and effective distillation across diverse problem types.
Architecture Overview
Problem Generator: Create diverse problems in target domain
self,
generator_model,
executor,
max_generations: int = 50
self
self
self
self
# List of (problem, solutions, verifier) tuples
def
generate_problem
self, seed: str = ""
str
"""
Generate a problem in the target domain.
Domain-agnostic: works for math, code, agent tasks.
"""
f"""
Generate a unique problem. The problem should be:
1. Self-contained (no external references)
2. Solvable (solution exists)
3. Diverse (different from previous)
Seed hint: {seed}
Problem:
"""
self
300
return
def
synthesize_solutions
self, problem: str, num_variants: int = 3
List
str
"""
Generate multiple diverse solutions to the problem.
"""
"""
Create verifiable checkers for the problem.
Examples: test cases for code, equations for math, assertions for agents.
"""
f"""
Create verification checkers for this problem and its solutions.
Problem: {problem}
Solutions: {solutions}
For each solution, create:
1. Test case / verification script
2. Expected output
3. Edge cases to check
Verification Artifact:
"""
model,
synthesized_examples: List[Dict],
num_epochs: int = 3
"""
Train model on EvoSyn-generated data with automatic verification.
"""
1e-4
for
in
range
0.0
for
in
"problem"
"solutions"
"verifier"
# Train on all solutions (they're all verified!)
for
in
f"Problem: {problem}\n\nSolution: "
# Standard supervised fine-tuning
len
3
print
f"Epoch {epoch + 1}: Loss={avg_loss:.4f}"
return
The evolutionary approach is crucial: rather than specifying what makes a good problem (human task knowledge), the system discovers it through selection for consistency and diversity. This generalizes across domains.
Practical Guidance
Domain
Data Quality
Consistency
Performance Gain
Math
High
85%+
+15-25%
Coding
High
80%+
+10-20%
Agent tasks
Medium-High
75%+
+8-15%
When to Use:
Synthetic data for RL training (verification is key)
Task-agnostic pipeline preferred over custom generation
Need diverse high-quality problems automatically
Verifiable correctness available (math, code with tests, agents with assertions)