MIT·사카나 AI, 평가 비용 줄인 자가개선 에이전트 ‘SIFT’ 공개

AI가 제 작업 방식을 스스로 고쳐 더 나아지려 해도, 수정안마다 시험을 치르는 비용이 너무 크면 진화는 오래 이어지기 어렵다. MIT와 사카나 AI 연구진은 이 ‘검증 비용 병목’을 줄이기 위한 코딩 에이전트 프레임워크 SIFT를 온라인 논문으로 공개했다. SIFT는 ‘빠른 트리 탐색을 통한 재귀적 자기개선’이라는 뜻으로, 에이전트가 만든 여러 개선안 가운데 실제 시험에 투입할 후보를 값싼 사전 심사로 추리는 기술이다.
재귀적 자기개선은 AI가 자신의 문제 해결 절차를 고치고, 바뀐 버전이 다시 다음 개선을 시도하는 방식이다. SIFT는 코딩 작업을 수행하는 하위 모델을 매번 다시 학습시키지 않는다. 대신 모델을 둘러싼 프롬프트와 도구, 제어 코드인 ‘에이전트 하네스’를 수정한다. 사람이 같은 엔진을 둔 채 작업 지침과 공구함, 작업 순서를 바꿔 효율을 높이는 것과 비슷하다.
핵심은 모든 후보에게 곧바로 비싼 종합시험을 치르게 하지 않는 데 있다. 새 에이전트는 먼저 쉬운 코딩 과제 4개를 풀어 기본 기능이 망가지지 않았는지 확인한다. 이 관문을 통과하면 별도의 대규모 언어모델 심사자가 새 후보와 기존 상위 후보를 최대 10차례 짝지어 비교한다. 심사자는 실제 벤치마크 점수를 보지 않고 구현 코드와 변경 내용을 살펴 어느 쪽이 더 좋은 성능을 낼 가능성이 큰지 판단한다.
여러 일대일 판단은 브래들리-테리 모델로 합친다. 이는 승패 기록을 모아 후보들의 상대적 강함을 수치화하는 통계 방식이다. SIFT는 이 순위를 바탕으로 실제 벤치마크에 보낼 후보와 추가 개발할 가지를 정한다. 이미 자주 살펴본 후보에는 방문 횟수 페널티를 줘 탐색이 한 갈래에만 몰리지 않게 했다. 새 패치를 만드는 일과 다른 후보를 평가하는 일도 동시에 진행해, 시험이 끝날 때까지 다음 개선을 멈추지 않도록 했다.
연구진은 C++, Go, Rust, Java, JavaScript, Python 등 6개 언어의 225개 과제로 구성된 폴리글롯 벤치마크를 사용했다. 탐색에는 고정된 50개 과제를 쓰고, 전체 225개는 마지막 보류 평가에 사용했다. 한 실행에서는 5시간 이내에 정확도 35.1%를 기록했으며 약 42 CPU시간과 API 비용 150달러가 들었다. 같은 설정의 추가 실행 결과는 32.0~35.6%로 나타나 실행마다 차이가 있었다.
언어모델 심사의 기여도도 드러났다. o3-미니를 사용한 실험에서 심사자를 둔 SIFT는 35.1%, 심사자를 뺀 방식은 29.8%를 기록했다. 연구진이 제시한 기존 다윈 괴델 머신의 30.7%보다도 낮았다. 이는 작은 시험에서 당장 점수가 높은 후보만 고르는 것보다 코드 구조를 함께 살피는 중간 심사가 유망 후보를 찾는 데 도움을 줄 수 있음을 보여준다.
실제 개선 과정에서는 코드 수정 뒤 알맞은 시험 도구를 자동으로 찾아 실행하고 구조화된 오류 정보를 돌려주는 test_runner도 만들어졌다. 이 도구는 pytest, Cargo, Go test, npm, Gradle, Maven을 자동 감지하도록 설계됐다. 단순한 초기 버전과 복잡한 후속 버전은 작은 시험에서 모두 44%였지만, 전체 평가에서는 초기 버전이 35.6%, 후속 버전이 33.8%였다. 언어모델 심사자는 전체 평가 전에 단순한 버전을 더 높게 평가했다.
다만 SIFT가 실제 검증을 없앤 것은 아니다. 언어모델 심사는 비용이 싼 중간 신호일 뿐이며, 최종 성능은 실제 벤치마크로 확인해야 한다. 가장 강한 실행에는 코딩을 맡은 모델보다 강한 별도 심사 모델도 사용됐다. 연구진은 실험을 도커 격리 환경에서 수행하고, 수정 가능한 파일을 제한했으며 벤치마크나 하네스 자체를 바꾸는 패치는 거부했다.
자료: MIT, 사카나 AI
