검색 공간 및 결정 변수 정의

AlphaEvolve 사용 사례의 검색 공간과 결정 변수를 정의하려면 문제를 코드로 적절하게 공식화하고 진화적 휴리스틱이 반복하고 개선할 수 있는 작동 기준 솔루션을 제공해야 합니다.

이 프로세스에는 다음이 포함됩니다.

  • 타겟 컨텍스트 제공: 최적화 사용 사례의 배경, 도메인 규칙, 성능 경계를 설정합니다.

  • 깔끔한 기준 제공: 타겟 문제의 기준 솔루션을 올바르게 구현하는 명확하고 잘 구조화된 코드를 제공합니다.

  • 자유도 태그 지정: 명시적인 EVOLVE-BLOCK 주석으로 코드베이스에 주석을 달아 에이전트가 더 나은 성능의 솔루션을 식별하기 위해 변이시키고 탐색할 수 있는 특정 결정 변수, 논리 구조 또는 루틴을 표시합니다.

초기 프로그램의 구조

초기 프로그램은 진화 검색의 경계를 결정하는 두 가지 기본 블록 유형으로 구성됩니다.

  1. 변경 불가능한 코드 블록: 검색 공간을 제한하거나 솔루션 성능에 영향을 미치지 않는 작업을 실행하는 상용구 코드, 도우미 함수, 종속 항목 (예: 표준 전처리 단계 또는 데이터 처리 루틴).

  2. 변경 가능한 코드 블록 (EVOLVE-BLOCK): 에이전트가 탐색하고 변경할 수 있는 특정 결정 변수, 논리 구조 또는 분석 표현식이 포함된 타겟팅된 영역입니다.

    import numpy as np
    # Code to constrain the search space (Immutable)
    def def_preprocessing():
        """Feature engineering and preprocessing."""
        pass
    
    # EVOLVE-BLOCK-START
    # Mutable block: Provides degrees of freedom for AlphaEvolve to optimize
    def model_tuning():
        """Model tuning function: parametrized to take features."""
        pass
    # EVOLVE-BLOCK-END
    
    # Boilerplate code that does not impact solution performance (Immutable)
    def batch_predictions():
        """Inference function: batch predictions to test performance."""
        pass
    

EVOLVE-BLOCK 서식 규칙에는 다음이 포함됩니다.

  • 독립형 줄: EVOLVE-BLOCK-START 및 EVOLVE-BLOCK-END 주석 마커는 자체 줄에 단독으로 표시되어야 합니다. 공백 및 주석 접두사 (예: # 또는 //)를 제외하고 마커와 동일한 줄에 코드나 기타 콘텐츠를 배치하지 마세요.
  • 수정 가능한 코드가 필요함: 시작 및 종료 마커 사이의 영역에 수정 가능한 코드가 한 줄 이상 포함되어야 합니다. 공백, 주석 또는 독스트링만 포함하는 블록은 AlphaEvolve가 진화할 수 있는 변경 가능한 로직이 없으므로 검증 오류와 함께 거부됩니다.
  • 중첩 불가: 중첩된 evolve 블록은 지원되지 않습니다.

검색 공간 제한 권장사항

변경 불가능한 가져오기를 정렬하고 evolve 블록을 명시적으로 배치하는 방식은 AlphaEvolve의 운영 경계를 보여줍니다.

라이브러리 가져오기 및 종속 항목 관리

AlphaEvolve는 프로덕션 환경에 유효한 외부 라이브러리를 기본적으로 확인할 수 없습니다.

개방형 탐색을 허용하려면 측정항목을 최대화하는 데 허용되는 머신러닝 또는 수학 패키지가 있는 경우 변경 가능한 EVOLVE-BLOCK 내부에 가져오기를 배치하세요. 이를 통해 AlphaEvolve는 대체 프레임워크 (예: sklearn을 TensorFlow 또는 xgboost로 대체)를 자유롭게 사용할 수 있습니다.

엄격한 도구 체인을 적용하려면 모든 모델이 특정 패키지에서 제공되어야 하는 경우 evolve 블록 외부에서 해당 패키지를 변경 불가능한 가져오기로 선언합니다. AlphaEvolve가 검색 중에 해당 패키지의 추가 내부 모듈을 필요로 하는 경우 전역 제약 조건을 위반하지 않고도 변경 가능한 공간 내에서 로컬로 가져올 수 있습니다.

과도하게 제한된 검색 공간 방지

가능한 한 많은 하드 제약 조건을 초기 프로그램이나 추가 사용자 제공 텍스트 컨텍스트 내에서 변경 불가능한 코드 블록으로 공식화합니다. 이렇게 하면 에이전트가 구조적으로 불가능한 솔루션을 탐색할 가능성이 최소화됩니다.

하지만 진화적 접근 방식이 중복될 정도로 검색 공간을 좁히지는 마세요. 예를 들어 AlphaEvolve가 단일 매개변수 선형 회귀만 사용하도록 강제하면 문제가 표준 그리드 검색 유틸리티로 파싱할 수 있는 좁은 구성 공간으로 축소됩니다. 대신 평가 기준에서 소프트 제약 조건을 부정적 페널티로 사용하여 탐색을 방해하지 않고 안내하세요.

타겟팅된 목표를 위한 전략적 블록 배치

EVOLVE-BLOCK의 범위를 변경하면 파이프라인의 전체 최적화 목표가 변경됩니다.

아웃샘플 (OOS) 보정 최적화: 목표가 광범위한 알고리즘 검색인 경우 전체 모델 조정 및 초기화 루틴 주위에 블록을 래핑합니다.

구조적 적합성 최적화: 선형 프레임워크를 유지하면서 복잡한 분석 표현식이나 맞춤 수학적 변환을 발견하려면 기능 변환 로직 주위에 변경 가능한 블록을 엄격하게 격리하여 다운스트림 모델 아키텍처를 고정하고 변경 불가능하게 유지하세요.

모듈식 계층 구조 유지 (HDL/Verilog 예): 구조적 코드 블록 구성을 최적화할 때는 EVOLVE-BLOCK-START 및 EVOLVE-BLOCK-END 태그를 모듈 정의 경계 내에 엄격하게 유지합니다. 이렇게 하면 검색 휴리스틱이 단일의 깔끔하게 포함된 모듈을 매핑되지 않은 여러 플로팅 하위 모듈로 바꾸려고 하는 등 구조적으로 잘못된 이동을 하지 않습니다.