SWE-at-Scale: 실제 버그 수정 기록으로 확장 가능한 코딩 평가 과제 생성
배경
코딩 에이전트의 성능이 높아질수록 이를 제대로 평가할 수 있는 소프트웨어 엔지니어링 과제의 폭과 신뢰성이 중요해진다. 실제 프로젝트에서 발생한 issue는 현실성이 높지만, 자연적으로 보고되는 버그의 수에는 한계가 있다. 평가용 과제를 사람이 직접 선별하고 정리하는 일도 큰 비용을 요구한다. 대규모 모델의 사전 학습 지식과 휴리스틱 프롬프트로 문제를 합성하는 방식은 겉보기에는 그럴듯해도 실제 소프트웨어 장애의 복잡한 작동 원리를 놓칠 수 있다.
상하이교통대 연구팀이 제안한 SWE-at-Scale는 과거 수정 기록을 반대 방향으로 활용한다. 모델에게 버그를 무작정 상상하게 하는 대신, 실제 버그가 어떻게 수정됐는지를 학습하고 그 지식으로 새로운 결함을 생성하는 접근이다.
수정에서 버그 주입으로
과거의 수정 패치는 단순한 코드 차이 이상의 정보를 담고 있다. 어떤 결함이 어떤 방식으로 만들어졌는지, 어떤 조건에서 문제가 드러났는지, 개발자가 무엇을 바꿔 해결했는지에 대한 단서가 포함될 수 있다. SWE-at-Scale의 핵심 발상은 “어떻게 고칠 것인가”를 학습하는 감독 신호를 반전하면, 현실적인 결함을 코드에 넣는 방법을 학습하는 데 활용할 수 있다는 것이다.
전체 흐름은 다음과 같다.
- 실제 소프트웨어 프로젝트에서 과거 버그 수정 기록을 수집한다.
- 버그 형성과 수정에 관련된 패턴을 추출한다.
- 수정 작업을 반전해 버그 주입용 감독 신호로 바꾼다.
- 학습한 패턴을 새로운 코드 문맥으로 옮긴다.
- 생성 결과를 실행하고 검증해 SWE 과제로 구성한다.
- 같은 코드 문맥에서 여러 결함 유형을 반복적으로 샘플링한다.
따라서 목표는 단순히 문법 오류를 만드는 것이 아니라, 실제 장애가 가진 원인과 개발 상황을 가능한 한 유지하는 것이다.
하나의 파일에서 여러 유형을 생성
논문이 제시하는 주요 특징은 하나의 코드 문맥에서도 서로 다른 버그 유형을 생성할 수 있다는 점이다. 실험에서는 파일당 생성을 계속 늘려도 다양성이 유지되거나 확장됐으며, 최대 200회 생성까지 이러한 경향이 관찰됐다고 설명한다. 이는 코딩 에이전트 평가에서 의미가 크다. 에이전트가 하나의 반복적인 버그 템플릿만 기억하는 것이 아니라, 서로 다른 발생 조건과 증상, 수정 경로에 대응해야 하기 때문이다.
논문 초록에 따르면 SWE-at-Scale가 만든 과제는 기존 합성 기준선보다 다양하고 현실적이며, 최신 코딩 에이전트에 더 큰 난도를 제공했다. 다만 제공된 자료에는 구체적인 벤치마크 이름, 점수, 데이터셋 규모가 포함되지 않았다. 따라서 이 결과는 특정 시스템의 세부 순위가 아니라 논문이 제시한 종합적인 실험 결론으로 이해하는 것이 적절하다.
의미와 남은 과제
SWE-at-Scale의 가장 큰 의미는 유한한 실제 수정 기록을 반복적으로 사용할 수 있는 과제 생성 자원으로 바꾼다는 데 있다. 연구자는 코딩 에이전트의 스트레스 테스트 범위를 넓힐 수 있고, 평가 벤치마크 제작자는 프롬프트에만 의존하지 않는 합성 방법을 확보할 수 있다.
물론 한계도 있다. 생성 과제의 품질은 원본 수정 기록의 품질, 주입된 결함의 유효성, 결과를 안정적으로 실행하고 검증할 수 있는지에 달려 있다. 앞으로는 난이도 조절, 반복 패턴의 통제, 에이전트가 합성 과정의 흔적이 아니라 실제 소프트웨어 문제를 해결하는지 확인하는 일이 중요하다.
결국 SWE-at-Scale는 버그를 고치는 지식과 검증 가능한 버그를 만드는 과정을 연결하며, 코딩 에이전트 평가를 대규모화할 수 있는 데이터 기반 방향을 제시한다.
댓글
로그인 상태 확인 중…
댓글 불러오는 중…