imbue-ai/darwinian_evolver

Framework for evolving code and prompts inspired by Darwinian evolution

해결하는 문제

Darwinian-evolver는 진화에서 영감을 받은 반복적인 과정을 통해 코드 조각이나 프롬프트 템플릿을 자동으로 개선하는 프레임워크를 제공합니다. 변이, 테스트, 선택의 주기를 자동화함으로써 프롬프트를 수동으로 조정하거나 복잡한 로직을 작성해야 하는 문제를 해결합니다. 이를 통해 변경 사항을 생성하는 도구(뮤테이터)가 신뢰할 수 없는 경우에도 솔루션이 더 높은 성능을 향해 진화할 수 있도록 합니다.

작동 방식

이 프레임워크는 솔루션(생물체) 집단을 유지하며 다음 세 가지 핵심 구성 요소를 통해 진화시킵니다.

  1. 초기 생물체 (Initial Organism): Python 함수나 프롬프트 템플릿과 같은 시작점.
  2. 평가자 (Evaluator): 생물체의 성능을 점수화하고 특정 실패 사례(솔루션이 실패한 입력)를 식별하는 시스템.
  3. 뮤테이터 (Mutator): 생물체와 그 실패 사례를 입력받아 개선된 버전을 생성하는 LLM 기반 에이전트 또는 프롬프트.

각 반복에서 프레임워크는 (성능 점수와 참신함을 모두 고려한) 가중 샘플링 방법을 기반으로 유망한 부모를 선택하고, 변이를 적용하며, 새로운 자손을 평가합니다. 여기에는 한 번에 여러 실패를 처리하는 배치 변이 (Batch Mutations), 전체 평가 전에 좋지 않은 변경 사항을 걸러내는 변이 후 검증 (Post-Mutation Verification), 뮤테이터가 이전 시도의 성공 또는 실패를 참조할 수 있게 하는 학습 로그 (Learning Log) 와 같은 고급 기능이 포함되어 있습니다.

대상 사용자

수동적인 시행착오 없이 LLM 프롬프트를 최적화하거나, AI 코딩 에이전트를 진화시키거나, 복잡한 추론 작업(예: ARC-AGI)을 해결하고자 하는 개발자 및 AI 연구원.

주요 특징

  • 탄력적 최적화 (Resilient Optimization): 뮤테이터가 아주 적은 확률로만 개선을 생성하더라도 효과적으로 작동합니다.
  • 코드 진화 (Coded Evolution): 실제 소스 코드의 진화를 지원하여 에이전트가 자신의 로직을 개선하는 자기 개선형 뮤테이터를 가능하게 합니다.
  • 유연한 샘플링 (Flexible Sampling): 시그모이드 스케일링된 성능 및 참신함 보너스를 사용하여 최상위 솔루션 활용과 집단 다양성 간의 균형을 맞춥니다.
  • 계보 시각화 (Lineage Visualization): 집단의 진화 역사를 시각적으로 검사할 수 있는 도구가 포함되어 있습니다.

관련

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