보상 해킹과 관련된 여러 위험이 있습니다. 위험 및 해당 완화 전략은 다음을 참고하세요.
위험 1:
탐욕스러운 보상 해킹. Obj = w1*S1 + w2*S2 + w3*S3인 경우 AlphaEvolve는 S2를 발견하여 완전히 집중하고 S1과 S3을 무시할 수 있습니다.
완화 방법:
하위 점수의 가중치를 줄입니다. 가중치를 보정하려면 2~3회 시험 실행이 필요할 수 있습니다. 몇 가지 점수 결과의 예비 기준 시뮬레이션이 도움이 됩니다.
위험 2:
제약조건 페널티 무시. 소프트 제약조건이 페널티인 경우
(Obj = Score - w*Penalty) AlphaEvolve는 제약조건을 무시하면 더 높은 Obj가 생성된다는 것을 발견할 수 있습니다.
완화 방법:
페널티 가중치를 크게 늘립니다. 동작이 지속되면 문제 설명에 '점수와 관계없이 제약조건 X를 위반하는 솔루션은 유효하지 않습니다.'와 같은 명시적 안내를 추가합니다.
위험 3:
평가 함수 악용. AlphaEvolve는 평가자가 인위적으로 높은 점수를 반환하도록 하는 입력을 찾을 수 있습니다 (부동 소수점 엣지 케이스, 테스트 데이터 유출).
완화 방법:
고정된 무작위 시드를 사용한 확정적 평가. 실험 후 보류된 데이터에서 우승자를 검증합니다.
보상 해킹을 방지하려면 다음 일반적인 기법을 구현하세요.
금지된 기본 요소 (sys, os, inspect, eval, exec, getattr, setattr)에 AST 검사를 사용하고 발견되면
None을 반환합니다.EVOLVE-BLOCK외부의 코드가 변경되지 않았는지 확인합니다 (텍스트 diff 또는 AST).동일한 입력으로 진화된 함수를 두 번 실행하고 동일한 출력을 확인합니다 (무작위성 해킹을 포착).
평가 시간을 확인합니다. 마이크로초 내에 완료되면 답변이 하드 코딩되었을 수 있습니다.
점수 로직을 LLM에 표시되지 않는 별도의 파일에 넣습니다.