algorithmicsuperintelligence/openevolve

Open-source implementation of AlphaEvolve

OpenEvolve – 진화적 코드 생성 엔진

정의 – OpenEvolve는 대규모 언어 모델(LLM)을 품질-다양성 진화 알고리즘(MAP-Elites + 섬 병렬 처리) 내의 변이/재조합 엔진으로 활용하는 Python 라이브러리입니다. 여러 언어(Python, Rust, R, Metal 셰이더 등)로 작성된 코드를 자동으로 재작성, 최적화, 또는 창조하며 사용자가 제공한 테스트 하네스로 후보들을 평가합니다. 이 시스템은 연구급 재현성을 위해 설계되었으며 명령줄, Docker 컨테이너, 또는 Python 모듈로 실행할 수 있습니다.

주요 기능

  • LLM 기반 진화 – LLM이 새로운 프로그램 변형을 제안하며, 프레임워크는 프롬프트, 폴백 앙상블, 아티팩트 피드백을 처리합니다.
  • MAP-Elites + 섬 – 사용자 정의 기능 차원(예: 속도, 코드 크기, 복잡성)에 걸쳐 다양한 모집단을 유지하고 여러 섬을 병렬로 실행하여 조기 수렴을 방지합니다.
  • 결정적 실행 – 고정 시드(기본 42)로 모든 진화가 머신 간 재현 가능합니다.
  • 다중 목적 / 파레토 최적화 – 성능, 메모리 및 기타 지표 간의 트레이드오프를 자동으로 발견합니다.
  • 플러그 앤 플레이 LLM 백엔드 – OpenAI, Google Gemini, Claude Code CLI, 로컬 Ollama/vLLM 서버, OptiLLM 프록시, Copilot CLI 또는 Codex 앱 서버와 통합된 OPENAI_API_KEY 스타일 설정으로 작동합니다.
  • 확장 가능한 훅 – 사용자는 사용자 지정 섬 선택기, 모집단 전략 콜백(수용, 교체, 아카이브, 마이그레이션 등)을 제공하여 진화 역학을 맞춤화할 수 있습니다.

일반적인 작업 흐름

  1. 초기 프로그램(파일 또는 문자열)과 숫자 점수 또는 지표 사전을 반환하는 평가기를 제공합니다.
  2. config.yaml에서 LLM 제공자와 진화 매개변수(모집단 크기, 섬 수, 기능 차원 등)를 구성합니다.
  3. openevolve-run.py(CLI)를 실행하거나 Python에서 run_evolution / evolve_function을 호출합니다.
  4. 결과 result.best_code와 전체 MAP-Elites 아카이브에서 파레토 최적 솔루션을 검사합니다.

예시 (Python API)

from openevolve import run_evolution

result = run_evolution(
    initial_program="""
    def bubble_sort(arr):
        for i in range(len(arr)):
            for j in range(len(arr)-1):
                if arr[j] > arr[j+1]:
                    arr[j], arr[j+1] = arr[j+1], arr[j]
        return arr
    """,
    evaluator=lambda path: {"score": benchmark_sort(path)},
    iterations=50,
    llm_config={"primary_model": "gemini-2.5-flash"},
)

print("Evolved algorithm:\n", result.best_code)

이 호출은 LLM이 정렬 루틴을 재작성하도록 하는 작은 진화 루프를 실행합니다. 50회 반복 후 출력된 코드는 종종 삽입 정렬과 퀵 정렬의 하이브리드로 원래 버블 정렬보다 성능이 뛰어납니다.

설치

  • PyPI (권장): pip install openevolve
  • 개발: 저장소를 클론하고 pip install -e "[dev]"
  • Docker: ghcr.io/algorithmicsuperintelligence/openevolve:latest를 풀하고 예제 파일을 마운트하여 컨테이너를 실행합니다.

지원 플랫폼 – Python 3.10+, macOS, Linux, Windows에서 작동합니다(spawn 멀티프로세싱 요구 사항 참고). GPU 특정 예제(Metal 셰이더)는 Apple Silicon 하드웨어가 필요합니다.

사용 사례 하이라이트

도메인 OpenEvolve가 수행하는 작업
성능 튜닝 하드웨어 인식 커널 최적화 발견(예: 2.8배 더 빠른 Metal attention 커널).
알고리즘 발견 게시된 벤치마크와 일치하거나 초과하는 새로운 정렬, 원형 패킹, 기호 회귀 솔루션 발견.
과학 컴퓨팅 필터 설계, 방정식 발견, 기타 매개변수 집약적 작업 자동화.
경쟁 프로그래밍 고전 콘테스트 문제에 대한 여러 솔루션 전략 생성.
다중 목적 최적화 속도, 메모리, 코드 복잡성 간의 파레토 최적 집합 반환.

비용 모델 – 라이브러리 자체는 무료이며, 각 진화 반복은 LLM 제공자의 토큰 비용이 발생합니다. README에는 Gemini, OpenAI o3/o3-mini, 로컬 모델의 일반적인 반복당 가격과 비용 절감 팁(반복 줄이기, 저렴한 모델 사용, 캐스케이드 평가)이 포함되어 있습니다.

라이선스 – 프로젝트는 저장소의 LICENSE 파일(README에 링크됨)에 따라 공개되며, 자유로운 사용 및 수정을 허용하는 오픈 소스 라이선스입니다.


OpenEvolve는 진화 알고리즘과 현대 LLM을 결합하여 자동화된 최적화 및 알고리즘 발명을 가능하게 하는 연구급 플랫폼으로 포지셔닝됩니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트