본문 바로가기

인공지능

버그를 ‘의도적으로’ 만드는 이유? SWE-smith가 바꿀 소프트웨어 데이터셋의 미래

728x90
반응형

https://swesmith.com/

소프트웨어 개발에 인공지능을 접목하려는 시도가 늘어나고 있습니다. 하지만 문제는 데이터입니다. 좋은 모델을 만들려면 그에 걸맞는 고품질 학습 데이터가 필요하지만, 소프트웨어 엔지니어링(Software Engineering, 이하 SE) 분야에서는 이 데이터 자체를 만들기가 어렵습니다.

기존 SWE-bench 같은 데이터셋은 수작업으로 수천 개의 인스턴스를 만들며, 실행 환경 유지만 해도 수 테라바이트의 저장 공간이 필요합니다. 이 정도면 일반 연구자나 개발자가 쉽게 접근할 수 없는 수준입니다.

이 문제를 해결하기 위해 등장한 것이 바로 SWE-smith입니다. 이 글에서는 SWE-smith가 어떻게 기존 SWE 데이터셋의 한계를 극복하고, 어떤 방식으로 데이터를 자동 생성하며, 실제로 얼마나 효과적인지 상세히 살펴보겠습니다.

반응형

SWE 데이터셋의 한계와 SWE-smith의 등장

기존 SE 태스크용 데이터셋들은 몇 가지 공통적인 문제가 있습니다.

  • 인스턴스 수가 적음 (기껏해야 수천 개)
  • 수작업 시간이 수백 시간에 달함
  • 실행 환경 유지 비용이 매우 높음 (수 TB 수준)
  • 특정 저장소나 태스크에만 최적화됨

이러한 한계를 해결하고자 제안된 것이 SWE-smith입니다. SWE-smith는 실제 파이썬 코드베이스에서 자동으로 버그를 생성하고, 실행 가능한 환경을 구성해주는 파이프라인입니다. 핵심 목표는 두 가지입니다.

  1. 데이터 생성의 자동화
  2. 효율적인 실행 환경 구축

이 파이프라인을 통해 단순히 데이터 양을 늘리는 것뿐만 아니라, 실질적으로 모델 성능 향상에 기여할 수 있는 고품질 태스크 데이터를 생성할 수 있습니다.


SWE-smith의 데이터 생성 프로세스

SWE-smith는 단순한 스크립트가 아닙니다. 하나의 복잡한 파이프라인이며, 총 여섯 가지 주요 단계를 거쳐 태스크 인스턴스를 생성합니다.

1. 실행 환경 구축

  • PyPI 상위 파이썬 저장소를 대상으로 자동 설치
  • 기존 테스트들이 통과하는 개발 환경 구성
  • 수동 검증 후 Docker 이미지로 저장

2. 태스크 인스턴스 후보 생성

  • 다양한 버그 생성 전략을 통해 .diff 형태의 후보 생성
  • 전략에는 LM 기반 변형, AST 기반 수정 등이 포함

3. 버그 생성 전략

LM Generation

  • 기존 함수에 오작동 버전을 생성하거나
  • 함수 헤더와 독스트링만 주고 전체를 재작성

Procedural Modification

  • 조건문 제거, 연산자 변경 등 13가지 자동 AST 변형

Combine Bugs

  • 동일 파일 또는 모듈 내 생성된 버그들을 조합

Invert PRs (PR Mirror)

  • 실제 PR을 되돌리는 방식으로 버그 생성

4. 실행 기반 검증

  • 패치 적용 후 테스트 실행
  • 기존 테스트 중 하나라도 실패하면 유효한 인스턴스로 선정

5. 문제 설명 생성

  • 버그 패치, 실패 테스트 코드, 실행 결과를 LM에 제공
  • 실제 GitHub 이슈처럼 자연스러운 문제 설명 자동 생성

6. 효율적인 환경 공유

  • 저장소 단위로 환경 공유
  • 기존 방식 대비 저장 공간 요구량 대폭 절감 (약 295GB)

얼마나 많은 데이터를 만들었고, 얼마나 효과적이었나?

SWE-smith는 총 128개의 GitHub 저장소에서 50,137개의 태스크 인스턴스를 자동으로 생성했습니다. 이는 SWE-bench보다 훨씬 큰 규모입니다.

이 데이터를 기반으로 파인튜닝된 모델인 SWE-agent-LM-32B는 다음과 같은 성과를 보여줍니다.

  • SWE-bench Verified 벤치마크 기준 Pass@1 해결률 40.2% (오픈소스 모델 중 최고 성능)
  • 5,016개의 전문가 궤적을 이용해 Qwen 2.5 Coder Instruct 32B 모델을 학습

어떤 전략이 가장 효과적이었나?

  • PR Mirror, Procedural Modification, LM Rewrite 전략이 모델 성능 향상에 특히 효과적이었음
  • LM이 생성한 문제 설명은 실제 이슈와 유사한 학습 효과 제공
  • 저장소 수가 늘어날수록 일반화 성능도 향상되는 경향 확인

SWE-smith는 단지 데이터셋이 아니다

SWE-smith는 단순한 데이터셋 이상입니다. 파이프라인 전체, 실행 환경, 전문가 궤적, 학습된 모델까지 모두 오픈소스로 공개되어 있습니다. SWE-smith 생태계를 활용하면 다음과 같은 활용이 가능합니다.

  • 맞춤형 SWE 학습 데이터 생성
  • 특정 저장소에 최적화된 모델 학습
  • 소프트웨어 에이전트 개발 실험

728x90

SWE-smith가 바꾸는 소프트웨어 자동화의 판

소프트웨어 개발을 자동화하려면, 사람처럼 생각하는 모델이 필요합니다. 그리고 그 모델은 사람처럼 ‘실수’를 접하면서 학습합니다. SWE-smith는 바로 이 학습 과정을 대규모로 자동화할 수 있도록 설계된 도구입니다.

복잡한 수작업 없이도, 현실적인 버그와 문제 설명을 자동 생성할 수 있다면 소프트웨어 개발 자동화의 접근성과 속도는 극적으로 향상됩니다. SWE-smith는 그 가능성을 실현하고 있는 실용적인 파이프라인이며, 향후 SE 분야에서의 LLM 응용을 크게 확장할 수 있는 기반이 될 것입니다.

지금까지 SWE 데이터셋 부족으로 고민해왔다면, SWE-smith는 그 해답이 될 수 있습니다.

https://swesmith.com/

 

SWE-smith

Citation @misc{yang2025swesmith, title={SWE-smith: Scaling Data for Software Engineering Agents}, author={John Yang and Kilian Leret and Carlos E. Jimenez and Alexander Wettig and Kabir Khandpur and Yanzhe Zhang and Binyuan Hui and Ofir Press and Ludwig Sc

swesmith.com

728x90
반응형