### Basic Installation Source: https://github.com/tianyi-stack/madevolve/blob/main/README.md Installs the MadEvolve package with basic dependencies. ```bash pip install -e . ``` -------------------------------- ### Installation with Optional Dependencies Source: https://github.com/tianyi-stack/madevolve/blob/main/README.md Installs MadEvolve with specific optional features like Google Gemini support, Bayesian optimization, parsing, or similarity metrics. The '[full]' option installs all features, and '[dev]' installs development dependencies. '[all]' installs everything. ```bash # Google Gemini support pip install -e ".[google]" # Bayesian optimization for inner-loop tuning pip install -e ".[optimizer]" # Syntax tree parsing pip install -e ".[parsing]" # Structural similarity metrics pip install -e ".[similarity]" # Full installation (all features) pip install -e ".[full]" # Development dependencies pip install -e ".[dev]" # Everything pip install -e ".[all]" ``` -------------------------------- ### Configuration File Example Source: https://github.com/tianyi-stack/madevolve/blob/main/README.md An example YAML configuration file for MadEvolve, detailing settings for models, population, evolution parameters, and execution. ```yaml # config.yaml # Model configuration models: primary: gpt-4o # Primary model for evolution fallback: claude-sonnet-4-20250514 # Fallback model on failure selection_strategy: ucb # Options: ucb, thompson, random, fixed # Population settings population: size: 50 # Total population size elite_size: 10 # Number of elite solutions to preserve island_count: 4 # Number of parallel islands migration_interval: 10 # Generations between migrations migration_rate: 0.1 # Fraction of population to migrate # Evolution parameters evolution: generations: 100 # Maximum generations mutation_rate: 0.8 # Probability of mutation crossover_rate: 0.2 # Probability of crossover strategy: hybrid # Options: differential, holistic, hybrid # Execution settings executor: backend: native # Options: native, slurm timeout: 300 # Evaluation timeout (seconds) max_retries: 3 # Retries on failure parallel_workers: 4 # Concurrent evaluations ``` -------------------------------- ### YAML Configuration Example Source: https://github.com/tianyi-stack/madevolve/blob/main/README.md Example of storage and inner-loop optimization settings in YAML format. ```yaml storage: checkpoint_interval: 10 # Save checkpoint every N generations cache_enabled: true # Enable LLM response caching database_path: ./cache.db # SQLite cache location # Inner-loop optimization (optional) inner_loop: enabled: false method: grid_search # Options: grid_search, bayesian, autodiff budget: 100 # Evaluation budget per candidate ``` -------------------------------- ### JSON Configuration Example Source: https://github.com/tianyi-stack/madevolve/blob/main/README.md Example of configuration settings in JSON format, including models, population, and evolution parameters. ```json { "models": { "primary": "gpt-4o", "fallback": "claude-sonnet-4-20250514" }, "population": { "size": 50, "elite_size": 10 }, "evolution": { "generations": 100 } } ``` -------------------------------- ### EvolutionOrchestrator Initialization and Run Source: https://github.com/tianyi-stack/madevolve/blob/main/README.md Example of initializing and running the main EvolutionOrchestrator class. ```python orchestrator = EvolutionOrchestrator( config: EvolutionConfig, results_dir: str = "./results", checkpoint_path: Optional[str] = None, ) orchestrator.run() ``` -------------------------------- ### Python Custom Adapter Example Source: https://github.com/tianyi-stack/madevolve/blob/main/README.md Example of creating custom adapters for domain-specific analysis in Python, including defining metrics and registering adapters. ```python from madevolve.analyzer import ( ScenarioAdapter, MetricsAdapter, PromptAdapter, ReportTemplateAdapter, BaseMetrics, register_adapter, ) from dataclasses import dataclass from typing import Any, Dict # 1. Define your metrics structure @dataclass class MyMetrics(BaseMetrics): accuracy: float = 0.0 loss: float = 0.0 ``` -------------------------------- ### Custom Scenario Adapter Implementation Source: https://github.com/tianyi-stack/madevolve/blob/main/README.md Example of implementing a ScenarioAdapter that bundles custom metrics, prompt, and template adapters, and how to register it. ```python # 4. Bundle into a ScenarioAdapter class MyScenarioAdapter(ScenarioAdapter): def __init__(self): self._metrics = MyMetricsAdapter() self._prompts = MyPromptAdapter() # Your implementation self._templates = MyTemplateAdapter() # Your implementation @property def metrics_adapter(self) -> MetricsAdapter: return self._metrics @property def prompt_adapter(self) -> PromptAdapter: return self._prompts @property def template_adapter(self) -> ReportTemplateAdapter: return self._templates # 5. Register and use register_adapter('my_scenario', MyScenarioAdapter) ``` -------------------------------- ### Custom Metrics Adapter Implementation Source: https://github.com/tianyi-stack/madevolve/blob/main/README.md Example of how to implement a custom metrics adapter by inheriting from MetricsAdapter and defining methods for scenario name, description, parsing metrics, and generating comparison tables and summaries. ```python class MyMetricsAdapter(MetricsAdapter): @property def scenario_name(self) -> str: return "my_scenario" @property def scenario_description(self) -> str: return "My custom evolution scenario" def parse_metrics(self, metrics_data: Dict[str, Any]) -> MyMetrics: return MyMetrics( combined_score=metrics_data.get("score", 0.0), accuracy=metrics_data.get("accuracy", 0.0), loss=metrics_data.get("loss", 0.0), ) def get_metrics_comparison_table(self, baseline: BaseMetrics, best: BaseMetrics) -> str: return f"| Metric | Baseline | Best |\n|--------|----------|------|\n| Score | {baseline.combined_score:.4f} | {best.combined_score:.4f} |" def get_metrics_summary(self, metrics: BaseMetrics) -> str: return f"Score: {metrics.combined_score:.4f}" def get_key_metrics_for_llm(self, metrics: BaseMetrics) -> str: return f"Combined Score: {metrics.combined_score}" ``` -------------------------------- ### Python API - Basic Usage Source: https://github.com/tianyi-stack/madevolve/blob/main/README.md Demonstrates how to configure and run the EvolutionOrchestrator using the Python API. It sets up population, model, and executor configurations, then initiates the evolution process. ```python from madevolve import ( EvolutionOrchestrator, EvolutionConfig, PopulationConfig, ModelConfig, ExecutorConfig, ) # Configure the evolution config = EvolutionConfig( population=PopulationConfig( size=50, elite_size=10, island_count=4, ), model=ModelConfig( primary="gpt-4o", fallback="claude-sonnet-4-20250514", ), executor=ExecutorConfig( backend="native", timeout=300, ), generations=100, mutation_rate=0.8, crossover_rate=0.2, ) # Create and run the orchestrator orchestrator = EvolutionOrchestrator( config=config, results_dir="./results", ) orchestrator.run() ``` -------------------------------- ### Using Registered Adapters Source: https://github.com/tianyi-stack/madevolve/blob/main/README.md Python code demonstrating how to list available adapters, retrieve a specific adapter, and use it with DataExtractor and ReportGenerator to extract data and generate reports. ```python from madevolve.analyzer import ( get_adapter, list_adapters, DataExtractor, ReportGenerator, ) # List available adapters print(list_adapters()) # Get adapter and generate report adapter = get_adapter('my_scenario') extractor = DataExtractor(adapter) data = extractor.extract_evolution_data("/path/to/results") generator = ReportGenerator(adapter) report = generator.generate_full_report(data, output_path="report.md") ``` -------------------------------- ### Command Line Interface - Run Evolution Source: https://github.com/tianyi-stack/madevolve/blob/main/README.md Runs the evolution process using a specified configuration file and output directory. The '--resume' flag allows resuming from a checkpoint, and '--quiet' suppresses the banner. ```bash # Run evolution with a configuration file madevolve run -c config.yaml -o ./results # Resume from a checkpoint madevolve run -c config.yaml -o ./results --resume checkpoint.pkl # Run without banner madevolve run -c config.yaml -o ./results --quiet # Show version madevolve version ``` -------------------------------- ### Environment Variables for API Keys Source: https://github.com/tianyi-stack/madevolve/blob/main/README.md Sets environment variables for LLM provider API keys. Replace 'sk-...' with actual keys. ```bash export OPENAI_API_KEY="sk-..." export ANTHROPIC_API_KEY="sk-ant-..." export GOOGLE_API_KEY="..." export DEEPSEEK_API_KEY="..." ``` -------------------------------- ### ExecutorConfig Dataclass Source: https://github.com/tianyi-stack/madevolve/blob/main/README.md Definition of the dataclass for execution backend settings. ```python @dataclass class ExecutorConfig: backend: str = "native" # "native" or "slurm" timeout: int = 300 max_retries: int = 3 parallel_workers: int = 4 ``` -------------------------------- ### EvolutionConfig Dataclass Source: https://github.com/tianyi-stack/madevolve/blob/main/README.md Definition of the top-level configuration dataclass for evolution experiments. ```python @dataclass class EvolutionConfig: population: PopulationConfig model: ModelConfig executor: ExecutorConfig storage: StorageConfig generations: int = 100 mutation_rate: float = 0.8 crossover_rate: float = 0.2 ``` -------------------------------- ### ModelConfig Dataclass Source: https://github.com/tianyi-stack/madevolve/blob/main/README.md Definition of the dataclass for LLM provider settings. ```python @dataclass class ModelConfig: primary: str = "gpt-4o" fallback: str = "claude-sonnet-4-20250514" selection_strategy: str = "ucb" max_tokens: int = 4096 temperature: float = 0.7 ``` -------------------------------- ### PopulationConfig Dataclass Source: https://github.com/tianyi-stack/madevolve/blob/main/README.md Definition of the dataclass for population and island model settings. ```python @dataclass class PopulationConfig: size: int = 50 elite_size: int = 10 island_count: int = 4 migration_interval: int = 10 migration_rate: float = 0.1 ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.