OpenEvolve 소개
Google DeepMind가 발표한 AlphaEvolve는 대형 언어 모델(LLM)을 활용하여 알고리즘을 진화시키는 혁신적인 시스템입니다. 이제 그 오픈소스 구현체인 OpenEvolve가 GitHub에 공개되어, 누구나 직접 실험하고 활용할 수 있게 되었습니다. 복잡한 수학 문제부터 최적화 알고리즘까지, LLM을 활용한 코드 진화에 관심 있는 개발자라면 관심있어 할 프로젝트입니다.
OpenEvolve는 DeepMind의 AlphaEvolve 논문을 기반으로 한 오픈소스 프로젝트로, LLM을 이용하여 코드를 자동으로 생성하고 평가하며, 이를 반복적으로 개선해 나가는 시스템입니다. 기존의 유전 알고리즘과 LLM을 결합하여, 단순한 함수 수준이 아닌 전체 프로그램 수준에서의 진화를 목표로 합니다.
이 시스템은 다양한 프로그래밍 언어를 지원하며, OpenAI 호환 API를 사용하는 모든 LLM과 연동이 가능합니다. 또한, 다목적 최적화, 유연한 프롬프트 엔지니어링, 분산 평가 등의 기능을 제공하여, 다양한 문제에 적용할 수 있는 유연성을 갖추고 있습니다.
기존의 코드 생성 도구들은 주로 정적 분석이나 제한된 범위 내에서의 자동 완성을 제공하는 반면, OpenEvolve는 전체 프로그램을 대상으로 한 진화를 목표로 합니다. 또한, 단일 모델에 의존하지 않고, 다양한 LLM을 앙상블하여 더 나은 결과를 도출합니다. 이러한 접근 방식은 기존의 자동화 도구들과 차별화되는 점입니다.
OpenEvolve의 주요 특징
- 전체 프로그램 진화: 단일 함수가 아닌 전체 코드 파일을 대상으로 진화를 수행합니다.
- 다양한 언어 지원: 여러 프로그래밍 언어를 지원하여 다양한 환경에 적용 가능합니다.
- LLM 앙상블: 여러 LLM을 조합하여 더 나은 코드 생성을 도모합니다.
- 다목적 최적화: 여러 평가 기준을 동시에 고려하여 최적의 코드를 찾습니다.
- 유연한 프롬프트 엔지니어링: 문제에 맞는 프롬프트를 유연하게 구성할 수 있습니다.
- 분산 평가: 여러 평가기를 병렬로 실행하여 효율적인 평가를 수행합니다.
사용 방법
설치
git clone https://github.com/codelion/openevolve.git
cd openevolve
pip install -e .
Python API 사용 예시
from openevolve import OpenEvolve
evolve = OpenEvolve(
initial_program_path="path/to/initial_program.py",
evaluation_file="path/to/evaluator.py",
config_path="path/to/config.yaml"
)
best_program = await evolve.run(iterations=1000)
print(f"Best program metrics:")
for name, value in best_program.metrics.items():
print(f" {name}: {value:.4f}")
커맨드라인 사용 예시
python openevolve-run.py path/to/initial_program.py path/to/evaluator.py --config path/to/config.yaml --iterations 1000
체크포인트에서 재시작
python openevolve-run.py path/to/initial_program.py path/to/evaluator.py \
--config path/to/config.yaml \
--checkpoint path/to/checkpoint_directory \
--iterations 50
라이선스
OpenEvolve 프로젝트는 Apache-2.0 License로 공개 및 배포되고 있습니다. 상업적 사용에 제한이 없으며, 자유롭게 수정 및 배포가 가능합니다.
OpenEvolve GitHub 저장소
OpenEvolve Hugging Face 블로그
더 읽어보기
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다.
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~