| # Async Evolution Pipeline |
|
|
| Shinka runs evolution through `ShinkaEvolveRunner`. |
| Use proposal concurrency to control throughput and emulate prior sync behavior. |
|
|
| ## Quick Start |
|
|
| ```python |
| from shinka.core import ShinkaEvolveRunner, EvolutionConfig |
| from shinka.launch import LocalJobConfig |
| from shinka.database import DatabaseConfig |
| |
| |
| evo_config = EvolutionConfig( |
| num_generations=50, |
| max_proposal_jobs=1, # sync-like proposal behavior |
| llm_models=["gpt-5-mini"], |
| ) |
| |
| runner = ShinkaEvolveRunner( |
| evo_config=evo_config, |
| job_config=LocalJobConfig(eval_program_path="evaluate.py"), |
| db_config=DatabaseConfig(), |
| ) |
| |
| runner.run() |
| ``` |
|
|
| In async contexts (for example notebooks/async apps), use: |
|
|
| ```python |
| await runner.run_async() |
| ``` |
|
|
| ## Concurrency Knobs |
|
|
| - `max_evaluation_jobs`: max concurrent evaluation jobs. |
| - `max_proposal_jobs`: max concurrent proposal generation jobs. |
| - `max_db_workers`: max async database worker threads. |
|
|
| `max_proposal_jobs=1` gives sequential proposal generation behavior. |
|
|
| ## ShinkaEvolveRunner Parameters |
|
|
| ```python |
| ShinkaEvolveRunner( |
| evo_config=EvolutionConfig(...), |
| job_config=JobConfig(...), |
| db_config=DatabaseConfig(...), |
| verbose=True, |
| max_evaluation_jobs=2, |
| max_proposal_jobs=None, # defaults to evo_config.max_proposal_jobs |
| max_db_workers=None, # defaults to evo_config.max_db_workers |
| ) |
| ``` |
|
|
| ## Recommended Settings |
|
|
| | Scale | max_evaluation_jobs | max_proposal_jobs | |
| |-------|-------------------|-------------------| |
| | Sequential-like | 1-4 | 1 | |
| | Small | <= 10 | 2-5 | |
| | Medium | 10-50 | 5-10 | |
| | Large | 50+ | 10-20 | |
|
|
| ## Troubleshooting |
|
|
| - Too many requests: reduce `max_proposal_jobs`. |
| - Memory pressure: lower `max_proposal_jobs` and `max_evaluation_jobs`. |
| - DB contention: lower `max_db_workers`. |
| - File I/O errors: ensure `aiofiles` installed. |
|
|