목록으로
GitHub - algorithmicsuperintelligence/openevolve: Open-source implementation of AlphaEvolve
Service2025.06.01

GitHub - algorithmicsuperintelligence/openevolve: Open-source implementation of AlphaEvolve

요약

OpenEvolve는 LLM을 활용하여 코드를 자율적으로 최적화하고 획기적인 알고리즘을 발견하는 최첨단 오픈소스 evolutionary coding agent입니다.
이 시스템은 MAP-Elites와 LLM을 결합한 Quality-Diversity Evolution, Island-Based Architecture 및 Artifact Side-Channel 피드백을 통해 효율적인 코드 진화를 가능하게 합니다.
OpenEvolve는 GPU Kernel 최적화, 최신 Circle Packing 문제 해결, Function Minimization 등 다양한 분야에서 괄목할 만한 성능 향상과 새로운 솔루션 발견을 입증했습니다.

상세 내용

OpenEvolve는 대형 언어 모델(LLM)을 활용하여 새로운 알고리즘을 자율적으로 발견하고 기존 코드를 최적화하는 데 초점을 맞춘 최첨단 오픈 소스 evolutionary coding agent입니다. 이 프로젝트는 특히 코드를 진화시키는 과정을 통해 획기적인 최적화를 달성하며, 인간의 개입 없이도 작동하도록 설계되었습니다.

핵심 기능 및 장점:
* 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"입니다.

  • Quality-Diversity Evolution (MAP-Elites):
  • * 전통적인 evolutionary algorithms는 주로 성능만을 최적화하지만, OpenEvolve는 MAP-Elites(Multi-dimensional Archive of Phenotypic Elites)를 사용하여 solution space의 다양성과 품질을 동시에 유지합니다.
    * 이는 코드의 "feature dimensions"(예: complexity, diversity, performance, memory_usage)를 기반으로 다차원 grid를 구성하고, 각 grid cell에 해당 특성을 가진 최고의 코드를 저장합니다. 이를 통해 단순히 최고 성능의 코드뿐만 아니라 다양한 특성을 가진 고품질 코드를 탐색하고 유지할 수 있습니다.
    * feature_dimensionsfeature_bins 설정을 통해 사용자 정의 feature dimensions를 추가하고, evaluator가 반환하는 raw values를 OpenEvolve가 자동으로 binning 처리합니다.

  • Island-Based Architecture:
  • * evolutionary computing에서 흔히 사용되는 island model을 채택합니다. 이는 여러 개의 독립적인 "island" 또는 population이 동시에 코드를 진화시키는 방식입니다.
    * 각 island는 자체적인 evolutionary process를 진행하며, 주기적으로 (migration_interval에 따라) 다른 island와 elite 코드(genes)를 교환(migration)합니다. 이 ring topology migration pattern은 premature convergence를 방지하고 solution space의 더 넓은 탐색을 가능하게 합니다.

  • LLM Ensemble 및 Advanced LLM Integration:
  • * OpenEvolve는 LLM을 code generator이자 optimizer로 사용합니다. 단일 LLM에 의존하는 대신, 여러 LLM 모델(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 능력을 강화할 수 있습니다.

  • Artifact Side-Channel (Error Feedback):
  • * 코드가 평가될 때, 단순한 성능 metric 외에 artifacts라는 side-channel을 통해 실행 환경의 feedback(예: stderr, profiling_data, LLM_feedback, build_warnings)을 수집합니다.
    * 이 artifacts는 다음 세대의 LLM prompt에 자동으로 포함되어, LLM이 이전 시도의 실수로부터 학습하고 개선된 코드를 생성하도록 돕는 강력한 feedback loop를 형성합니다.

  • Evolution Algorithm Innovations:
  • * Double Selection: 성능을 위한 코드와 다음 세대의 영감을 위한 코드(inspiration)를 다르게 선택합니다.
    * Adaptive Feature Dimensions: 진화 과정에서 quality-diversity metrics를 동적으로 조정합니다.
    * Multi-Strategy Sampling: Elite, diverse, exploratory selection 방식을 조합하여 균형 잡힌 탐색을 수행합니다.

  • Scientific Reproducibility:
  • * 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의 탐색 능력을 결합하여, 기존의 수동 최적화 방식으로는 불가능했던 속도와 규모로 코드와 알고리즘을 혁신하는 강력한 도구입니다.

    원본 보기
    GitHub
    Shared by Anonymous