From SWE-ZERO to SWE-HERO: Execution-free to Execution-based Fine-tuning for Software Engineering Agents
이 논문은 대규모 오픈 가중치 LLM 을 정제하여 SWE-bench 에서 최첨단 성능을 달성하는 두 단계의 미세 조정 파이프라인 (SWE-ZERO 와 SWE-HERO) 을 제안하고, 이를 통해 32B 모델이 62.2% 의 해결률을 기록함과 동시에 파이썬 학습만으로 다국어 환경에서도 강력한 제로샷 전이 능력을 입증했습니다.
원저자:Nikolai Ludwig, Wasi Uddin Ahmad, Somshubra Majumdar, Boris Ginsburg
기존의 AI 코딩 교육 방식은 마치 매번 실습실을 빌려서 코드를 직접 실행해 보는 방식이었습니다.
문제점: 실습실 (Docker 컨테이너) 을 세우는 데 돈이 너무 많이 들고, 시간이 오래 걸리며, 복잡한 프로그램일수록 실행 자체가 안 되는 경우가 많았습니다. 그래서 AI 가 배울 수 있는 자료의 양에 한계가 있었습니다.
이 논문은 이 문제를 해결하기 위해 **두 단계 (2 단계)**로 나누어 학습시키는 새로운 방법을 제안합니다.
1 단계: SWE-ZERO (이론의 달인) 📚
비유: "책상 위에 앉아 이론만 공부하는 천재 학생"
무엇을 하나요? AI 는 코드를 실제로 실행해 보지 않습니다. 대신, 방대한 양의 코딩 자료 (30 만 개 이상의 데이터) 를 읽으며 "이런 문제가 생기면 보통 이렇게 고치는구나"라는 직관과 논리를 배웁니다.
장점: 실행할 필요가 없으니 컴퓨터 자원 (돈과 시간) 이 거의 들지 않습니다. 그래서 엄청난 양의 데이터를 빠르게 학습할 수 있습니다.
결과: AI 는 코드의 구조와 의미를 완벽하게 이해하게 되지만, "실제로 돌아가는지"는 아직 모릅니다.
2 단계: SWE-HERO (실전의 영웅) 🛠️
비유: "이론을 바탕으로 실제 현장에 투입되어 실수를 교정하는 수련생"
무엇을 하나요? 이제 AI 는 1 단계에서 배운 직관을 바탕으로, 소량 (1 만 3 천 개) 의 고품질 데이터로 실전 훈련을 합니다. 이때는 실제 코드를 실행하고, 테스트를 돌려보며 "아, 내가 생각한 대로 안 되네? 다시 고쳐야지"라고 피드백을 받습니다.
장점: 1 단계에서 이미 기초가 탄탄했기 때문에, 실행 훈련을 훨씬 효율적으로 할 수 있습니다.
결과: 이론과 실전을 모두 갖춘 최고 수준의 AI 코딩 에이전트가 됩니다.
🌟 이 방법이 얼마나 대단한가요?
이 논문에서 만든 SWE-HERO-32B라는 AI 는 놀라운 성과를 냈습니다.
압도적인 성능: 같은 크기의 다른 오픈소스 AI 들보다 훨씬 더 많은 문제를 해결했습니다. (예: 320 억 파라미터 모델 기준, 62.2% 성공률)
비용 절감: 실행 환경 구축에 드는 막대한 비용을 40% 이상 줄이면서도 더 좋은 결과를 냈습니다.
언어 장벽 돌파: 오직 파이썬 (Python) 데이터로만 훈련했는데도, 자바, C++ 등 다른 언어로 된 문제도 잘 해결했습니다.
비유: "한국어 요리책만 보고 배운 요리사가, 일본 요리나 프랑스 요리도 맛있게 해내는 것"과 같습니다. 이는 AI 가 '요리 (코딩) 의 원리'를 통째로 깨달았기 때문입니다.
📊 한눈에 보는 비교
특징
기존 방식 (기존 AI)
새로운 방식 (SWE-ZERO → SWE-HERO)
학습 방법
무조건 실행해 보며 실수하고 고침 (비효율적)
먼저 이론 (ZERO) → 그다음 실전 (HERO)
데이터 양
실행 환경 구축이 어려워 데이터가 적음
실행 불필요로 엄청난 양 (30 만 개) 학습 가능
비용
비쌈 (서버 비용, 시간)
절반 이하로 저렴함
성능
중간
최고 (State-of-the-Art)
💡 결론
이 연구는 "AI 가 코딩을 잘하려면 무조건 실행해 봐야 한다"는 고정관념을 깨뜨렸습니다.
마치 마라톤 선수가 먼저 **이론과 스트레칭 (ZERO)**으로 근육과 호흡을 다듬은 뒤, **실제 경기 (HERO)**에서 기록을 단축하는 것과 같습니다. 이 방법을 통해 앞으로 더 똑똑하고, 저렴하며, 누구나 쓸 수 있는 AI 코딩 도우미들이 쏟아져 나올 것으로 기대됩니다.
이 논문은 NVIDIA 에서 공개한 데이터와 모델들을 통해 이 기술을 누구나 무료로 사용할 수 있도록 오픈소스로 제공했습니다.
1. 문제 정의 (Problem)
소프트웨어 엔지니어링 (SWE) 에이전트의 발전은 주로 Docker 와 같은 컨테이너 환경을 활용한 물리적 코드 실행 (Execution) 에 의존해 왔습니다. 그러나 이 접근 방식은 다음과 같은 심각한 확장성 (Scalability) 병목 현상을 초래합니다.
데이터 확장성 한계: 복잡한 레거시 설정이나 의존성 문제로 인해 컨테이너 환경에서 빌드가 불가능한 실제 GitHub 저장소 (PR) 들이 대량으로 폐기됩니다.
학습 비용 과다: 수천 개의 작업별 Docker 이미지를 오케스트레이션하는 것은 막대한 인프라 오버헤드와 컴퓨팅 비용을 요구합니다.
추론 (Inference) 비효율성: 실행 환경 초기화 및 테스트 실행 비용이 높아 에이전트가 다양한 해결책을 탐색하는 데 비효율적입니다.
기존 연구들은 이러한 물리적 실행에 대한 절대적 의존성으로 인해 오픈소스 에이전트 개발의 한계에 직면해 있습니다.
2. 방법론 (Methodology)
저자들은 SWE-ZERO에서 SWE-HERO로 이어지는 2 단계 학습 파이프라인을 제안하여, 의미론적 추론 (Semantic Reasoning) 과 물리적 검증을 분리하고 순차적으로 결합합니다.
1 단계: SWE-ZERO (실행 없는 기초 학습)
개념: 런타임 피드백 없이 대규모의 실행 없는 (Execution-free) 궤적 (Trajectories) 을 활용하여 에이전트가 코드 의미론과 저장소 수준의 추론 능력을 습득하게 합니다.
데이터: 15 만 개의 실제 GitHub PR 을 기반으로 30 만 개의 에이전트 궤적을 생성했습니다.
구현:
Teacher Model: Qwen3-Coder-480B 를 사용하여 OpenHands 프레임워크 내에서 궤적을 생성합니다.
제약 조건: 실행 환경 (Docker) 을 제공하지 않고, 샌드박스 환경에서 코드 실행 명령어 (python, pytest 등) 를 명시적으로 금지합니다. 에이전트는 정적 분석과 컨텍스트 추론만으로 버그를 식별하고 패치를 생성해야 합니다.
필터링: 실행 명령어를 사용한 궤적, 무한 루프, 또는 테스트 패치를 수정하는 '단순화 (Shortcut)' 행위가 포함된 궤적을 제거하여 30 만 개의 고품질 데이터를 확보했습니다.
효과: 실행 오버헤드가 없어 토큰 소비가 약 40% 감소하며, 에이전트는 저장소 아키텍처에 대한 직관적 이해를 갖추게 됩니다.
2 단계: SWE-HERO (실행 기반 정밀 다듬기)
개념: SWE-ZERO 를 통해 학습된 에이전트에 대해, 실제 컨테이너 환경에서 실행된 13,000 개의 고품질 궤적 (SWE-HERO 데이터셋) 으로 미세 조정 (Fine-tuning) 합니다.
목적: SWE-ZERO 에서 습득한 '직관 (Intuition)'을 엄격한 공학적 워크플로우와 물리적 검증을 통해 '정밀한 해결 (Rigorous Resolution)'로 전환합니다.
구현: Docker 기반의 완전한 실행 환경에서 단위 테스트를 실행하고 피드백을 받아 패치를 검증하는 과정을 학습시킵니다.
3. 주요 기여 (Key Contributions)
새로운 학습 패러다임 제안: 물리적 실행에 대한 의존성을 줄이고, 대규모 실행 없는 데이터로 의미론적 기반을 다진 후 소규모 실행 데이터로 정밀화하는 SWE-ZERO to SWE-HERO 전략을 제시했습니다.
대규모 데이터셋 공개: Qwen3-Coder-480B 에서 증류된 30 만 개의 SWE-ZERO 궤적과 13,000 개의 SWE-HERO 궤적 데이터셋을 오픈소스로 공개했습니다.
모델 공개: Qwen2.5-Coder 시리즈 (7B, 14B, 32B) 를 기반으로 한 SWE 에이전트 모델을 공개했습니다.
효율성 증대: 실행 환경 구축 없이도 SWE-bench 에서 최첨단 (SOTA) 성능을 달성하여 오픈소스 SWE 에이전트의 확장성을 입증했습니다.
4. 실험 결과 (Results)
SWE-bench Verified 성능:
SWE-HERO-32B는 **62.2%**의 해결률 (Resolve Rate) 을 기록하여, 동급 크기의 오픈소스 모델들 (SERA-32B: 54.2%, SWE-Lego-32B: 52.6% 등) 을 압도했습니다.
특히 7B 와 14B 모델에서도 기존 모델 대비 큰 성능 향상 (7B: 52.7%, 14B: 60.8%) 을 보여주어 소형 모델의 효율적 학습 가능성을 입증했습니다.
Ablation Study: SWE-ZERO 단계를 생략하고 SWE-HERO 데이터만으로 학습한 경우 (55.7%) 보다, 2 단계 학습을 거친 경우 (62.2%) 성능이 유의미하게 향상되어 SWE-ZERO 단계의 필수성을 입증했습니다.
다국어 일반화 (Multilingual): Python 데이터로만 학습되었음에도 불구하고, SWE-HERO-32B는 SWE-bench Multilingual에서 **44.1%**의 해결률을 기록하며 강력한 제로샷 (Zero-shot) 전이 능력을 보여주었습니다. 이는 SWE-ZERO 단계에서 학습된 광범위한 추론 패턴이 언어 장벽을 넘어설 수 있음을 의미합니다.
비교: 실행 기반 학습만 수행한 기존 모델들보다 더 적은 리소스로 동급의 성능을 달성했습니다.
5. 의의 및 결론 (Significance)
이 논문은 소프트웨어 엔지니어링 에이전트 개발의 패러다임을 물리적 실행 의존성에서 **의미론적 증류 (Semantic Distillation)**로 전환하는 중요한 이정표입니다.
확장성 해결: 컨테이너 환경 구축의 높은 비용과 기술적 장벽을 제거함으로써, 더 많은 실제 GitHub 데이터를 학습에 활용할 수 있게 되었습니다.
비용 효율성: 실행 없는 학습 단계를 도입하여 토큰 소비와 인프라 비용을 대폭 절감하면서도 높은 정확도를 유지합니다.
미래 지향성: 오픈소스 모델이 폐쇄형 거대 모델 (Proprietary Models) 과 경쟁할 수 있는 새로운 청사진을 제시하며, 추론 능력과 실행 검증의 균형을 맞춘 차세대 에이전트 개발의 기초를 마련했습니다.
결론적으로, 이 연구는 "직관 (SWE-ZERO)"과 "검증 (SWE-HERO)"을 결합한 2 단계 학습 전략이 오픈소스 소프트웨어 엔지니어링 에이전트의 성능 한계를 돌파하는 핵심 열쇠임을 증명했습니다.