Pull Requests as a Training Signal for Repo-Level Code Editing
이 논문은 복원된 GitHub 풀 리퀘스트의 대규모 코퍼스를 활용하여 모델이 저장소 수준의 코드 편집 능력을 내재화할 수 있도록 함으로써, 복잡한 에이전트 스캐폴딩에 의존하지 않고도 SWE-bench에서 베이스라인을 크게 상회하는 성능을 보이는 미드 트레이닝 패러다임인 Clean-PR을 소개한다.
원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기
당신이 수백만 권의 책(코드 파일)이 있는 거대하고 오래된 도서관(소프트웨어 저장소)을 가지고 있다고 상상해 보세요. 당신의 목표는 그중 한 권의 책에 있는 특정 오타를 고치거나 새로운 장을 추가하는 것입니다.
보통 이 일을 하기 위해, 당신은 매우 똑똑하지만 약간은 서투른 사서(AI 모델)를 고용합니다. 도서관이 너무 거대하기 때문에, 사서는 올바른 책을 찾고, 적절한 페이지를 펼치고, 변경 사항을 적용하기 위해 팀원, 복잡한 지도 읽기 시스템, 그리고 많은 시간이 필요합니다. 이것이 현재 대부분의 "AI 소프트웨어 엔지니어"가 작동하는 방식입니다. 그들은 이 혼란스러운 상황을 헤쳐 나가기 위해 무겁고 복잡한 도구들을 사용합니다.
이 논문은 단순한 질문을 던집니다: 우리는 사서가 더 이상 무거운 조수들 없이도 스스로 문제를 찾고 고칠 수 있을 정도로 능숙해지도록 가르칠 수 있을까?
저자들은 "그렇다"라고 답하며, 몇 가지 창의적인 비유를 사용하여 그 방법을 설명합니다.
1. 문제점: "노이즈가 가득한" 도서관
저자들은 사람들이 코드를 수정하고 변경한 기록인 GitHub를 살펴보았습니다. 그들은 이 기록이 믿기 힘들 정도로 엉망이라는 것을 발견했습니다.
- 노이즈: 자동차 타이어를 교체하는 영상을 통해 자동차 수리법을 배운다고 상상해 보세요. 그런데 영상의 40%는 누군가 점심을 먹는 장면이고, 25%는 정비사인 척하는 로봇이며, 나머지 25%는 완성되지 않은 영상이라면 어떨까요?
- 결과: 만약 이 지저륙한 영상을 AI 사서에게 그대로 보여준다면, 사서는 혼란에 빠질 것입니다. 사서는 고칠 필요가 없는 것을 고치려 하거나, 잘못된 통로에서 길을 잃는 것과 같은 나쁜 습관을 배우게 됩니다.
2. 해결책: "Clean-PR" (필터링된 영상)
팀은 Clean-PR이라는 기계를 만들었습니다. 이것은 모든 지저분한 GitHub 영상들을 보고 불필요한 부분을 잘라내는 매우 똑똑한 영상 편집기라고 생각하면 됩니다.
- 필터: 이 필터는 실제 작업이 이루어지지 않았거나, 로봇이 작업을 수행했거나, 혹은 수정 사항이 승인되지 않은 영상들을 버립니다.
- 번역: AI에게 이해하기 어려운 "전과 후"의 사진을 그대로 보여주는 대신, 이 기계는 수정 사항을 명확한 단계별 지침으로 번격합니다: " 'Hello'로 시작하는 단락을 찾아 'Goodbye'로 변경하라."
- 검증: 지침을 저장하기 전에, 기계는 실제로 테스트용 책에 그 지침을 적용하여 완벽하게 작동하는지 확인합니다. 만약 작동하지 않는다면, 그 지침은 버려집니다.
그 결과, 12가지 다른 언어를 다루는 200만 개의 완벽한 지침(Pull Request)으로 구성된 거대하고 깨끗한 도서관이 만들어졌습니다.
3. 학습 과정: 2단계 학습
그들은 단순히 이 데이터를 AI에게 쏟아부은 것이 아닙니다. 그들은 두 가지 구체적인 단계로 AI를 가르쳤습니다.
1단계: 미드 트레이닝 (학습 단계 - "견습생" 단계)
그들은 이 200만 개의 깨끗한 지침이 담긴 도서관을 AI에게 입력했습니다. 이는 사서에게 실제 도서관에서 사람들이 실제로 어떻게 수정 작업을 수행하는지에 대한 속성 과정을 제공하는 것과 같습니다. AI는 다른 누구와 대화할 필요 없이 편집의 패턴을 학습했습니다. 이 과정은 기술을 AI의 뇌(가중치) 속에 "내재화"시켰습니다.2단계: 특화된 연습 (SFT 단계)
실제 세상의 문제는 까다롭습니다. 때때로 사서에게 1,000권의 책 목록이 주어지는데, 문제는 그중 단 한 권에만 있을 수 있습니다. 만약 사서가 모든 책을 고치려고 시도한다면, 엉망을 만들게 될 것입니다.
이를 해결하기 위해, 저자들은 AI를 속이는 특별한 훈련 과제를 만들었습니다. 그들은 AI에게 맞는 책과 함께 여러 권의 틀린 책들(방해 요소)을 주고, "어느 책을 고쳐야 하는가?"라고 물었습니다.
이를 통해 AI는 "나는 이 다른 책들을 건드릴 필요가 없다"라고 말하는 법을 배웠으며, 불필요한 변경을 방지하게 되었습니다.
4. 결과: 슈퍼 사서
그들이 이 새로운 AI를 SWE-bench(AI 소프트웨어 엔지니어를 위한 까다로운 시험)에서 테스트했을 때:
- 기존 방식: 이전의 상위 모델들은 문제를 해결하기 위해 거대한 디지털 조수 팀과 복잡한 계획 루프가 필요했으며, 약 20%의 문제를 해결했습니다.
- 새로운 방식: 이 새로운 AI는 "조수 없는" 훨씬 단순한 접근 방식을 사용하여 **30.6%**의 문제를 해결했습니다.
- 놀라운 점: 이 AI는 경쟁 모델들(720억 개의 뇌 세포)보다 크기가 작았음에도 불구하고(320억 개의 뇌 세포), 더 뛰어난 성능을 보였습니다.
핵심 요약
이 논문은 소프트웨어를 고치기 위해 거대하고 복잡한 기계와 많은 도구가 필요한 것이 아님을 증명합니다. 대신, 모델에게 어떻게 수정하는지에 대한 고품질의 검증된 사례를 제공한다면, 모델은 그 기술을 직접 학습할 수 있습니다.
이는 학생에게 자동차 엔진을 수리하는 매뉴얼(지저분하고 이론적인 것)을 주는 것과, 이미 프로가 200만 마일을 완벽하게 운전한 자동차의 운전석에 앉혀두는 것(Clean-PR)의 차이와 같습니다. 학생은 어디로 핸들을 돌려야 할지 코치가 알려주지 않아도 될 정도로 운전의 감각을 완벽하게 익히게 됩니다.
요약하자면: 저자들은 인터넷의 지저륙한 데이터를 정제했고, AI가 그 깨끗한 버전을 통해 학습하도록 가르쳤으며, 이것이 AI를 훨씬 더 나은, 독립적인 소프트웨어 엔지니어로 만든다는 것을 보여주었습니다.
연구 분야의 논문에 파묻히고 계신가요?
연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.