SakanaAI/ShinkaEvolve
ShinkaEvolve: Towards Open-Ended and Sample-Efficient Program Evolution 🧬
What it solves
ShinkaEvolve is a framework designed to automate the discovery and optimization of scientific code. It solves the challenge of manually designing complex algorithms or optimizing performance metrics in scientific computing by combining the creative capabilities of Large Language Models (LLMs) with the the optimization power of evolutionary search.
How it works
The system maintains a population of programs that evolve over multiple generations. An ensemble of LLMs acts as intelligent mutation operators, suggesting code improvements (via diffs, full rewrites, or cross-pollination) to the existing population. These candidates are then evaluated using a provided verifier program. The framework supports parallel evaluation locally or on Slurm clusters and maintains an archive of successful solutions to facilitate knowledge transfer between different evolutionary islands.
Who it’s for
It is primarily intended for researchers and developers working on scientific tasks where a performance verifier is available and the goal is to optimize code correctness, readability, and performance metrics.
Highlights
- Multi-LLM Ensemble: Uses a variety of LLMs for code generation and dynamic model selection (e.g., UCB) to optimize results.
- Flexible Execution: Supports local execution, Slurm Conda, and Slurm Docker environments for scalable evaluation.
- Agentic Integration: Provides "skills" for integration with coding agents like Claude Code and Codex.
- Broad Language Support: Demonstrated capability to optimize code across multiple languages, including Python, Julia, Fortran, and Verilog RTL.
- Monitoring Tools: Includes a WebUI for real-time tracking and optional Weights & Biases integration for experiment logging.
Related
- Project
- Project
- Project
- Dispatch
- Project