
AI가 스스로 완성할 수 있는 가장 큰 소프트웨어 프로젝트는 무엇인가?
요약
MirrorCode는 AI가 장기적인 코딩 작업을 수행할 수 있는지 평가하기 위해 METR과 공동 개발한 새로운 벤치마크입니다. 기존의 짧은 작업 중심 벤치마크와 달리, AI가 전체 프로그램을 엔드 투 엔드로 재구현해야 하는 고난도 과제를 부여합니다.
핵심 포인트
- MirrorCode는 대규모 소프트웨어 재구현을 통한 장기 코딩 능력 측정
- 충분한 추론 예산을 제공하여 실제 복잡한 작업 수행 환경 조성
- 인터넷 및 원본 코드 접근을 차단하여 부정행위 방지 설계
- Claude Opus 4.7이 생물정보학 툴킷을 성공적으로 재구현하며 가능성 입증
AI는 지난 몇 년 동안 소프트웨어 엔지니어링 벤치마크(benchmarks)에서 급격한 발전을 이루었습니다. 하지만 이러한 벤치마크의 대부분은 버그 수정이나 개별 기능 구현과 같은 짧은 작업에 집중하는 경향이 있습니다. MirrorCode는 장기적 코딩 작업(long-horizon coding tasks)에서 AI 모델을 테스트하기 위해 METR과 공동 개발한 우리의 벤치마크입니다. MirrorCode 작업에서 AI 모델은 원본 소스 코드에 접근할 수 없는 상태로 전체 프로그램을 엔드 투 엔드(end-to-end)로 재구현하는 과제를 부여받습니다. AI가 생성한 솔루션은 홀드아웃 테스트(held-out tests)를 포함한 엔드 투 엔드 테스트에서 원본 프로그램의 출력과 정확히 일치해야 합니다. MirrorCode의 25개 대상 프로그램은 Unix 유틸리티, 데이터 직렬화 및 쿼리 도구, 생물 정보학(bioinformatics), 인터프리터(interpreters), 정적 분석(static analysis), 암호학(cryptography), 압축(compression) 등 컴퓨팅의 다양한 분야를 아우릅니다.
MirrorCode가 다른 점
규모를 고려한 평가 (Scale-aware evaluations)
결정적으로, 우리는 MirrorCode 작업을 진지하게 시도할 수 있을 만큼 충분한 추론 예산(inference budget)을 제공합니다. 기존의 많은 소프트웨어 엔지니어링 벤치마크는 사람이 완료하는 데 몇 주가 걸릴 작업임에도 불구하고 추론 비용을 약 1~10달러로 제한합니다. 예를 들어, 가장 큰 MirrorCode 작업 중 하나는 단 한 번의 실행에 2,600달러가 소요되었으며, 인간의 개입 없이 AI가 19일 동안 작업했습니다.
어렵지만 공정함
전체 프로그램을 재구현하는 것은 인간 소프트웨어 엔지니어에게도 매우 도전적인 일입니다. 우리는 AI가 없는 인간 엔지니어가 가장 복잡한 MirrorCode 작업을 해결하는 데 수개월이 걸릴 것이라고 믿습니다. 하지만 MirrorCode 작업은 실현 가능하기도 합니다. 우리는 작업이 공정할 수 있도록 충분한 정보가 존재한다는 것을 알고 있습니다.
설계 단계부터 부정행위 방지 (Cheat-resistant by design)
우리는 AI 모델을 샌드박스(sandbox)화하여, 인터넷 접속 없이, 원본 코드베이스에 접근 없이, 그리고 작업에서 부정행위를 할 수 없는 환경에서 작업을 수행하도록 요구합니다. 모델이 코드를 개발하는 동안 절대 볼 수 없는 엔드 투 엔드 테스트가 존재하므로, 모델이 단순히 원본 프로그램의 출력을 모방하기 위한 룩업 테이블(lookup table)을 만들 수는 없습니다.
AI는 이미 일부 장기적 코딩 작업을 수행할 수 있습니다
AI는 그 어려움에도 불구하고 이미 장기적(long-horizon) MirrorCode 작업을 해결할 수 있습니다. 예를 들어, Claude Opus 4.7은 약 16,000줄의 Go 언어 코드와 40개 이상의 명령어로 구성된 생물정보학 툴킷인 gotree를 재구현했습니다.1 우리는 AI의 도움 없이 인간 엔지니어가 이와 동일한 작업을 수행하려면 2~17주가 소요될 것이라고 믿습니다. Opus 4.7은 이를 14시간 만에 해결했으며, 비용은 251달러가 들었습니다.
이러한 결과에 대한 한 가지 중요한 주의 사항은 데이터 오염(data contamination)입니다. MirrorCode 작업은 오픈 소스 프로그램을 재구현하는 것을 포함하기 때문에, AI 모델이 사전 학습(pretraining) 과정에서 원본 코드베이스를 이미 보았을 가능성이 높습니다. 이는 벤치마크 성능을 부풀릴 수 있습니다. 그러나 AI는 우리의 암기 검사(memorization screen)를 통과한 여러 대상 프로그램을 성공적으로 재구현했으며, 검사에서 암기의 증거가 나타난 프로그램의 재구현에는 실패했습니다. 이는 결과가 암기에 의해 지배된 것이 아니라, 암기가 AI 성능에 기여했을 가능성을 완전히 배제할 수는 없음을 시사합니다. 전반적으로, 우리는 MirrorCode로 측정된 능력이 보지 못한 코드베이스에도 일반화될 것이라고 기대합니다. 이에 대한 자세한 논의와 더 많은 결과 및 벤치마크 구축에 대한 세부 사항은 논문에서 다룹니다.
리더보드 (Leaderboard)
MirrorCode는 완전히 해결된 것이 아닙니다. 정기적으로 업데이트되는 리더보드를 위해, 우리는 **MirrorCode (ML, +Private, 2L)**를 보고합니다. 이는 Medium(중형) 및 Large(대형) 버킷의 15개 대상 프로그램을 실행하고, Small(소형) 버킷은 제외함을 의미합니다. 각 대상 프로그램은 두 가지 구현 언어(일반적으로 Go 및 Ada)로 평가되어 총 30개의 작업을 제공합니다. 우리는 각 작업을 100억 개의 토큰과 시도당 7일의 예산 내에서 세 번씩 실행합니다.2
오픈 소스 코드 (Open-source code)
우리는 스캐폴드(scaffold)와 25개의 MirrorCode 대상 프로그램 중 22개(지원되는 6개 프로그래밍 언어에 걸쳐 총 132개 작업 인스턴스)를 오픈 소스로 공개하며, 나머지 3개의 대상은 비공개 테스트 세트로 유지합니다.
이 작업은 METR과 공동 개발되었으며 METR의 보조금을 지원받았습니다. MirrorCode의 저자는 Tom Adamczewski, David Owen, David Rein입니다. Florian Brand, Giles Edkins, Allen Hart, Daniel O’Connell이 추가적인 대상 프로그램(target programs)을 기여했습니다. Rasmus Faber-Espensen은 중요한 인프라 개선을 수행하고 엔지니어링에 대한 조언을 제공했습니다.
가장 높은 점수를 받은 AI gotree 구현체는 2000/2001개의 테스트를 통과했으나, 날짜 주석(date annotations)을 조작하는 특수 명령에 대한 단 하나의 엣지 케이스(edge-case) 테스트에서 실패했습니다. 결과적으로, 이들이 과제를 100% 완벽하게 해결했다고 엄격하게 말할 수는 없지만, 우리는 이 재구현(reimplementation)이 본질적으로 모든 범위 내의 기능(scoped functionality)을 다루고 있으므로 거의 완벽한 수준이라고 간주합니다.
논문의 “Suggested naming conventions(제안된 명명 규칙)”에 있는 정의를 참조하십시오. “+Private”는 비공개 테스트 세트(private test set)가 포함되었음을 나타냅니다. 여기서는 Medium 및 Large 버킷의 비공개 대상인 private_M과 private_L을 의미합니다. 2L 매핑 하에서, 대상 프로그램들은 두 가지 예외를 제외하고 일반적으로 Go와 Ada(하나의 주류 언어와 하나의 저자원 언어)를 사용합니다. 이 점수들은 논문의 결과와 직접적으로 비교할 수 없습니다. 해당 논문은 25개의 모든 대상 프로그램을 평가했고, Small 및 Medium 버킷에서 6개의 에이전트 구현 언어를 모두 사용했으며, Large 대상에서만 예외로 모든 시도에 대해 시간 제한 없이 10억 토큰의 예산(budget)을 부여했기 때문입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 HN AI Posts의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기