Skip to main content
CoreWeave 샌드박스를 사용하여 SWE-bench 평가를 병렬로 실행하세요. 이 가이드는 대규모로 언어 모델의 코드 수정 성능을 평가하려는 ML 실무자와 연구자를 위한 것입니다. 이 가이드를 마치면, 여러 CoreWeave 샌드박스에서 SWE-bench 평가를 동시에 실행하고 결과를 로컬에 저장하여 분석할 수 있는 작동하는 설정을 갖추게 됩니다.

이 기능의 역할

SWE-bench는 언어 모델이 실제 저장소에서 실제 버그를 수정할 수 있는지 테스트합니다. 각 작업은 패치를 적용하고 테스트 스위트를 실행한 후 수정이 작동하는지 확인합니다. 도커로 SWE-bench를 로컬에서 실행할 수 있지만, 머신의 리소스가 제한됩니다. CoreWeave 샌드박스를 사용하면 CoreWeave infrastructure에서 평가를 대규모로 실행할 수 있습니다. 직접 관리하지 않고도 수십 또는 수백 개의 샌드박스를 동시에 시작할 수 있습니다. 스크립트는 GHCR의 Epoch AI 레지스트리에서 사전 구축된 이미지를 가져오므로 로컬 도커 구축 단계가 필요 없습니다.

설정

평가를 실행하기 전에 다음 단계에 따라 필요한 도구를 설치하고 인증을 설정하세요.
  1. Python SDK와 평가 의존성을 설치하세요:
  2. 예시 평가 스크립트가 포함된 저장소를 복제하세요:
  3. CWSANDBOX_API_KEY를 CoreWeave API 액세스 토큰으로 설정하세요. [API-ACCESS-TOKEN]을 본인의 토큰으로 바꾸세요:
평가 스크립트는 기본적으로 CoreWeave 인증을 사용합니다. Forge API 키를 사용하려면 시작하기에 안내된 명시적 인증 설정 절차를 따른 다음, 그 결과로 얻은 auth 값을 examples/swebench/run_evaluation.py의 SandboxDefaults(...)에 전달하세요.

빠른 시작

확장하기 전에 단일 인스턴스 run으로 시작하여 환경, 인증 정보 및 GHCR에 대한 네트워크 액세스가 모두 작동하는지 확인하세요. gold 옵션은 데이터셋의 알려진 올바른 수정을 사용합니다:
이 run은 통과하여, 샌드박스가 이미지를 pull하고 패치를 apply하며, 테스트 스위트를 end to end로 실행할 수 있음을 확인합니다.

병렬 실행

여러 인스턴스를 동시에 실행하세요:
이 명령은 8개의 샌드박스를 시작하고 동시에 실행합니다. gold 패치가 올바른 수정이기 때문에 모두 통과합니다.

모델 예측 평가

맞춤형 모델 출력을 테스트하려면:
예측 파일은 인스턴스 ID를 패치에 매핑합니다.

옵션

리소스 조정

기본값은 샌드박스당 CPU 2개와 메모리 4Gi입니다. run_evaluation.py에서 이를 변경하세요:

작동 방식

이 섹션에서는 스크립트의 동작 원리를 설명하므로, 사용자가 자신의 평가 워크플로에 맞게 조정할 수 있습니다.

Container images

Epoch AI는 GHCR에 사전 구축된 이미지를 호스팅합니다. 각 인스턴스에는 올바른 커밋에서 체크아웃된 저장소, 설치된 의존성, 준비된 테스트 환경이 포함된 자체 이미지가 있습니다. 이미지 형식: ghcr.io/epoch-research/swe-bench.eval.x86_64.{instance_id}:latest 샌드박스는 GHCR에서 직접 이를 가져옵니다. 로컬 구축은 필요하지 않습니다.

평가 flow

각 인스턴스는 다음 단계를 거칩니다: 단계 2~5와 8은 원격으로 실행됩니다. 단계 1, 6, 7은 사용자 머신에서 실행됩니다.

병렬 실행

스크립트는 ThreadPoolExecutor를 사용하여 인스턴스 워크플로를 동시에 실행합니다. 각 스레드는 하나의 인스턴스를 워크플로를 통해 구동합니다. 한 인스턴스가 테스트하는 동안, 다른 인스턴스는 패치를 적용할 수 있고, 또 다른 인스턴스는 로컬에서 평가하고, 또 다른 인스턴스는 시작할 수 있습니다. 이러한 중첩이 속도의 원천입니다. 워크플로가 as_completed()를 통해 종료하면 결과가 반환됩니다.

정리

이 스크립트는 샌드박스 Session을 사용해 샌드박스를 추적합니다. 세션이 종료되면(정상 종료, 예외 발생 또는 Ctrl+C) 세션이 모든 샌드박스를 정리합니다.

출력

결과는 {output-dir}/{run-id}/{model-name}/{instance-id}/에 저장됩니다:

보고서 형식

이 형식은 표준 SWE-bench 도구와 호환됩니다.

문제 해결

패치 적용 실패

로그에 APPLY_PATCH_FAIL이 표시되면 패치 형식이 잘못되었거나, 잘못된 커밋을 대상으로 하거나, whitespace 문제가 있을 수 있습니다. 로컬에서 git apply --check를 실행하여 문제를 확인하세요. 인스턴스 ID가 예측과 일치하는지 확인하세요.

테스트 timeout

일부 테스트 스위트는 30분 이상 걸립니다. 모델이 생성한 코드에 무한 루프가 있을 수도 있습니다. 필요한 경우 --timeout을 늘리거나 테스트 출력을 확인하여 어디에서 멈췄는지 파악하세요.

이미지 가져오기 오류

이미지 가져오기 오류로 컨테이너가 시작되지 않으면 인스턴스 ID가 Epoch AI의 레지스트리에 없거나 네트워크 문제로 ghcr.io에 연결할 수 없는 것입니다. 인스턴스 ID가 SWE-bench 데이터셋에 있는지 확인하세요.

참고

마지막 수정일 2026년 10월 15일