GitHub - algorithmicsuperintelligence/openevolve: Open-source implementation of AlphaEvolve
요약
상세 내용
핵심 기능 및 장점:
* Autonomous Discovery: LLM이 단순한 최적화를 넘어 완전히 새로운 알고리즘을 발견합니다.
* Proven Results: 실제 하드웨어에서 2~3배의 speedup을 달성하고, n=26 circle packing 문제에서 state-of-the-art 결과를 도출했습니다. Apple Silicon에서 GPU kernel 최적화를 통해 2.8배 빠른 성능을 시연했습니다.
* Research Grade: 완전한 reproducibility, 광범위한 evaluation pipelines, 그리고 scientific rigor를 내장하고 있습니다.
* Multi-Language Support: Python, Rust, R, Metal shaders 등 다양한 언어를 지원합니다.
OpenEvolve 작동 방식 (Core Methodology):
OpenEvolve는 LLM과 evolutionary algorithms를 결합한 정교한 파이프라인을 구현합니다. 핵심은 "MAP-Elites + LLMs"입니다.
* 이는 코드의 "feature dimensions"(예: complexity, diversity, performance, memory_usage)를 기반으로 다차원 grid를 구성하고, 각 grid cell에 해당 특성을 가진 최고의 코드를 저장합니다. 이를 통해 단순히 최고 성능의 코드뿐만 아니라 다양한 특성을 가진 고품질 코드를 탐색하고 유지할 수 있습니다.
*
feature_dimensions와 feature_bins 설정을 통해 사용자 정의 feature dimensions를 추가하고, evaluator가 반환하는 raw values를 OpenEvolve가 자동으로 binning 처리합니다.* 각 island는 자체적인 evolutionary process를 진행하며, 주기적으로 (migration_interval에 따라) 다른 island와 elite 코드(genes)를 교환(migration)합니다. 이 ring topology migration pattern은 premature convergence를 방지하고 solution space의 더 넓은 탐색을 가능하게 합니다.
gemini-2.5-pro, gemini-2.5-flash 등)을 가중치 기반으로 조합하는 LLM Ensemble 기능을 제공합니다.*
Intelligent Ensembles는 sophisticated fallback strategies를 포함하여 LLM의 신뢰성과 효율성을 높입니다.*
Universal API를 통해 OpenAI, Google, local models(Ollama, vLLM) 및 proxy(OptiLLM) 등 OpenAI-compatible API를 사용하는 모든 LLM과 연동됩니다.*
Test-Time Compute: OptiLLM과 같은 proxy system을 통해 inference 시 더 비싸거나 복잡한 모델을 사용하여 reasoning 능력을 강화할 수 있습니다.artifacts라는 side-channel을 통해 실행 환경의 feedback(예: stderr, profiling_data, LLM_feedback, build_warnings)을 수집합니다.* 이
artifacts는 다음 세대의 LLM prompt에 자동으로 포함되어, LLM이 이전 시도의 실수로부터 학습하고 개선된 코드를 생성하도록 돕는 강력한 feedback loop를 형성합니다.* Adaptive Feature Dimensions: 진화 과정에서
quality-diversity metrics를 동적으로 조정합니다.* Multi-Strategy Sampling: Elite, diverse, exploratory selection 방식을 조합하여 균형 잡힌 탐색을 수행합니다.
Comprehensive Seeding: LLM, database, evaluation 등 모든 구성 요소에 random_seed를 적용하여 Deterministic Evolution을 보장합니다. Default seed는 42입니다.*
Component Isolation: Hash-based isolation을 통해 cross-contamination을 방지합니다.System Messages의 중요성:system_message는 LLM이 주어진 도메인, 제약 조건, 최적화 목표를 이해하는 데 가장 중요한 요소입니다.
* Domain Expertise: 문제 공간에 대한 특정 지식을 LLM에 제공합니다.
* Constraint Awareness: 진화 중에 변경할 수 있는 것과 없는 것을 정의합니다.
* Optimization Focus: LLM을 의미 있는 개선으로 이끌어냅니다.
* Error Prevention: 일반적인 문제와 compilation error를 피하는 데 도움을 줍니다.
성공적인 system_message는 초기 초안 → 구체적인 guidance 추가 → 전문화 → OpenEvolve 자체를 사용하여 prompt를 최적화하는 meta-evolution의 반복적인 과정을 통해 생성됩니다.
활용 사례:
* Performance Optimization: 하드웨어에 특화된 최적화를 발견합니다.
* Algorithm Discovery: 고전적인 문제에 대한 새로운 접근 방식을 찾습니다.
* Scientific Computing: 지루한 수동 tuning 과정을 자동화합니다.
* Competitive Programming: 프로그래밍 대회 솔루션을 자동 생성합니다.
* Multi-Objective Problems: 여러 목표에 대한 Pareto-optimal solution을 제공합니다.
* Prompt Evolution: LLM 자체의 성능을 개선하기 위해 prompt를 진화시키는 데 사용될 수 있습니다 (HotpotQA에서 23% 정확도 향상).
설치 및 사용:pip install openevolve로 쉽게 설치할 수 있으며, python openevolve-run.py 명령어로 실행합니다. Docker도 지원합니다. inline code나 Python 함수를 직접 진화시키는 library usage도 가능합니다.
비용 추정:
LLM provider와 iteration 수에 따라 비용이 달라집니다. Gemini-2.5-Flash 또는 local models를 사용하거나, cascade evaluation, 작은 population size를 설정하여 비용을 절감할 수 있습니다.
시각화:
실시간 evolution tracking을 위한 interactive web interface를 제공합니다. Evolution tree, performance tracking, code diff viewer, MAP-Elites grid visualization 등 다양한 시각화 기능을 통해 진화 과정을 모니터링할 수 있습니다.
OpenEvolve는 LLM의 창의성과 evolutionary algorithms의 탐색 능력을 결합하여, 기존의 수동 최적화 방식으로는 불가능했던 속도와 규모로 코드와 알고리즘을 혁신하는 강력한 도구입니다.