실제 태스크를 EvoX에 연동할 때 어려운 점은 결코 "더 강력한 진화 연산자로 교체하는 것"이 아니라, 먼저 태스크를계약화하는 것입니다. 즉, 어떤 대상이 변경될 수 있는지(탐색 공간), 어떤 결과가 관측될 수 있는지(피드백 채널), 어떤 변화가 보존되어야 하는지(평가 기준)를 정하는 것입니다. 이 세 가지 경계가 진화 폐루프의 성립 여부를 함께 결정하므로, 진화 과정에서 점진적으로 시험하는 것이 아니라 상용화 이전에 반드시 명확히 해야 합니다.
1. 변경 가능 대상 경계: 탐색 공간 설정
결정 변수와 구조(유전형), 그리고 그것들이 실제 산출물로 매핑되는 방식(표현형)을 명시적으로 선언하고, 동시에 읽기 전용인 환경, 데이터, 인터페이스, 하드웨어 제약을 표시합니다. 경계가 너무 넓으면 대량의 무효 후보가 탐색에 유입되고, 너무 좁으면 진화의 여지가 전혀 없습니다. 데이터 처리 파이프라인을 예로 들면, 변경 가능한 것은 연산자 선택, 실행 순서, 하이퍼파라미터이며, 입력 데이터의 구조와 규정 준수 제약은 읽기 전용 부분에 속합니다.
2. 관측 가능 결과 경계: 피드백 채널 연결
모든 후보는 프로그램이 포착할 수 있는 신호를 생성할 수 있어야 합니다. 관측 채널, 지연, 노이즈 수준, 재현성을 명확히 해야 합니다. 관측할 수 없는 차원은 최적화 근거로 삼을 수 없으며, 사후 설명으로만 사용할 수 있습니다. 관측되지 않는 것을 적합도에 넣으면 진화가 노이즈를 향해 표류할 뿐입니다.
3. 평가 기준과 보존 규칙: 무엇을 남길 가치가 있는지 정의
적합도 또는 목표 벡터, 제약 조건, 실행 가능성 판정을 정의하고, 단일 수치로 압축할지 다목적 파레토 보존을 할지 명시하며, 실패·충돌·시간 초과 후보를 어떻게 처벌·복구·조기 종료할지 규정합니다. 평가 기준이 확정되면 실제로 진화가 어느 방향으로 수렴할지가 결정됩니다.
4. 평가의 리듬: 병렬, 비용, 예산
평가를 배치 또는 비동기로 실행할 수 있는지, 단일 평가 비용과 총예산을 확인합니다. 병렬도와 단일 지연은 진화 회로의 리듬과 감당 가능한 세대 수를 직접 결정합니다. 직렬 평가는 회로를 길게 늘려 감당 가능한 세대 수를 급감시키고, 배치 또는 비동기 평가는 반복을 크게 가속할 수 있습니다. 정지와 예산도 명확히 해야 합니다. 평가 예산, 수렴 판정 기준, 정지 조건을 명시하여 무한한 연산 소모를 막고, 아직 형성되지 않은 해를 너무 일찍 종료하는 것도 피해야 합니다.
5. 평가 신뢰도: "지표는 최적화했지만 문제는 해결하지 못한" 상황을 경계하라
세 가지 위험을 경계해야 합니다. 대리 지표와 실제 목표의 불일치, 목표 누출, 그리고 후보가 평가기를 역이용하는 것(점수 취약점을 이용한 점수 부풀리기)입니다. 대응 방식은 독립 검증 세트 또는 사람 검토 단계를 유지하고, 평가 과정을 최대한 무상태·재실행 가능하게 하여 실패 재현과 결과 원인 분석을 용이하게 하는 것입니다.
6. 연동 계약
최종적으로 태스크를 EvoX가 호출할 수 있는 인터페이스로 캡슐화합니다. 후보 하나를 입력하면 지표와 제약을 출력하고, 평가는 최대한 무상태·재실행 가능하도록 보장합니다. 계약이 안정되어야 폐루프도 안정됩니다. 훈련 세트의 점수를 유일한 보존 기준으로 삼으면 진화는 그 지표에 빠르게 과적합됩니다. 이것이 바로 평가 경계가 탐색 경계보다 먼저 확정되어야 하는 이유입니다.
