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스타일 설정으로 작동합니다. - 확장 가능한 훅 – 사용자는 사용자 지정 섬 선택기, 모집단 전략 콜백(수용, 교체, 아카이브, 마이그레이션 등)을 제공하여 진화 역학을 맞춤화할 수 있습니다.
일반적인 작업 흐름
- 초기 프로그램(파일 또는 문자열)과 숫자 점수 또는 지표 사전을 반환하는 평가기를 제공합니다.
config.yaml에서 LLM 제공자와 진화 매개변수(모집단 크기, 섬 수, 기능 차원 등)를 구성합니다.openevolve-run.py(CLI)를 실행하거나 Python에서run_evolution/evolve_function을 호출합니다.- 결과
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을 결합하여 자동화된 최적화 및 알고리즘 발명을 가능하게 하는 연구급 플랫폼으로 포지셔닝됩니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트