SWE-Trail, 이력 기반으로 코딩 에이전트 학습 궤적 수집 개선
들어가며
코딩 에이전트가 저장소 이슈를 해결하는 과정은 단순한 코드 생성이 아닙니다. 관련 파일을 찾고, 구현을 읽고, 수정한 뒤 테스트를 실행하며, 실패 원인을 분석해 다시 수정하는 긴 작업 흐름이 이어집니다. 이러한 상호작용 궤적은 코드 모델의 포스트트레이닝 데이터로 활용되고 있습니다. 따라서 어떤 궤적을 어떻게 수집하느냐가 모델이 배우는 행동 패턴에 직접 영향을 줍니다.
독립 샘플링의 중복 문제
일반적인 방식은 하나의 이슈에 대해 에이전트를 여러 번 독립적으로 실행한 뒤 결과를 선택하거나 정리하는 것입니다. 하지만 샘플 수가 늘어날수록 후속 실행은 앞선 실행과 비슷한 경로를 반복하기 쉽습니다. 같은 파일을 조사하고, 유사한 수정안을 시도하며, 같은 실패 지점에 도달하면 추가 계산의 정보 가치가 낮아집니다.
과거 궤적을 에이전트에게 보여주고 다음 행동을 조언하게 하는 방법도 생각할 수 있습니다. 그러나 이 경우 학습 중에는 존재하지만 테스트 시에는 없는 정보에 모델이 의존할 수 있습니다. 이는 학습 환경과 실제 사용 환경 사이에 불일치를 만드는 문제입니다. SWE-Trail은 과거 이력을 에이전트의 컨텍스트에 넣지 않는 방식으로 이 문제를 다룹니다.
SWE-Trail의 작동 방식
새로운 롤아웃이 시작되면 수집기는 이전 궤적을 분석해 추가 탐색 가치가 있을 것으로 보이는 상태나 체크포인트를 찾습니다. 이후 코딩 에이전트는 과거 이력을 보지 않고, 일반 실행 때와 동일한 컨텍스트만 사용해 가능한 다음 행동을 제안합니다. 수집기는 같은 체크포인트에서 후보 행동을 짧게 실행하고, 어떤 경로를 계속 확장할지 판단합니다.
즉, 이력은 에이전트가 무엇을 생성할지 지시하는 것이 아니라 수집 자원을 어디에 투입할지 결정하는 데 사용됩니다.
핵심 내용
- 과거 롤아웃은 수집기 외부에 남고 에이전트 프롬프트에는 들어가지 않는다.
- 반복 가능성이 높은 경로보다 추가 정보가 기대되는 상태에 탐색 예산을 배분한다.
- 후보 행동은 동일한 체크포인트에서 비교된다.
- 단순히 해결된 궤적의 수가 아니라, 해당 데이터로 학습한 학생 모델의 성능을 평가한다.
결과와 의미
논문은 Ling-3.0-flash-base에서 초기화한 124B 학생 모델을 각 방식으로 수집한 궤적으로 학습했습니다. 독립 샘플링과 비교했을 때 SWE-Trail은 SWE-bench Multilingual의 평균 해결률을 2.33%포인트, SWE-bench Pro를 1.60%포인트 높였습니다.
이력의 효과를 분리한 비교도 눈여겨볼 만합니다. 같은 수집 파이프라인에서 이력만 사용하지 않았을 때는 독립 샘플링보다 해결된 궤적을 더 많이 얻었지만, Multilingual 성능 향상은 0.11%포인트에 그쳤습니다. 이는 성능 개선의 핵심이 파이프라인 자체가 아니라, 이력을 활용해 탐색 위치를 선택한 데 있음을 보여줍니다.
SWE-Trail이 제시하는 broader lesson은 에이전트 데이터 구축을 대량 생성 문제가 아니라 탐색 예산 배분 문제로 보는 것입니다. 이미 충분히 시도된 경로에 계속 계산을 투입하기보다, 아직 덜 탐색된 체크포인트에 자원을 집중하는 편이 새로운 학습 신호를 만들 가능성이 높습니다. 또한 이력은 데이터 수집 과정에서만 사용되므로, 실제 배포 시 존재하지 않는 조언을 모델이 전제로 학습할 위험을 줄일 수 있습니다. 모든 저장소 과제에서 최선이라고 단정할 수는 없지만, 긴 문제 해결 과정과 많은 분기를 가진 코딩 에이전트 학습에 유용한 설계 방향을 제시합니다.
댓글
로그인 상태 확인 중…
댓글 불러오는 중…