Refact-Bench: 소프트웨어 엔지니어링 태스크 평가 벤치마킹 도구
요약
Refact-Bench는 SWE-Bench 프레임워크를 기반으로 AI 모델의 소프트웨어 엔지니어링 능력을 평가하는 벤치마킹 도구입니다. 이 도구는 실제 GitHub 이슈에서 추출된 프로그래밍 문제에 대한 표준화된 테스트 환경을 제공합니다. 사용자는 Python, Docker 등을 이용해 복잡한 설치 및 빌드 과정을 거쳐 벤치마크를 실행하고 결과를 수집할 수 있습니다.
핵심 포인트
- 실제 GitHub 이슈 기반의 SW 엔지니어링 평가 도구입니다.
- 설치를 위해 Python, Docker 등 여러 환경 구성이 필요합니다.
- Rust 기반 LSP와 Docker 통합 설정 과정이 포함됩니다.
- 명령어(`fakeide run`)를 통해 모델별 벤치마크 실행 및 결과 수집이 가능합니다.
Refact-Bench는 SWE-Bench 프레임워크를 사용하여 AI 모델을 소프트웨어 엔지니어링 태스크로 평가하도록 설계된 벤치마킹 도구입니다. 이 도구는 GitHub 이슈에서 추출한 실제 프로그래밍 문제에 대한 모델 성능 테스트를 위한 표준화된 환경을 제공합니다.
Refact-Bench를 설치하기 전에 다음 사항이 준비되었는지 확인하십시오:
- Python 3.7 이상
- Docker가 설치되어 실행 중일 것
- Git
- pip 패키지 관리자
먼저, 필요한 Python 패키지를 설치합니다:
pip install -e .
이 명령어는 setup.py에 나열된 모든 종속성(dependency)을 설치하며, 여기에는 refact 패키지도 포함됩니다.
Refact 저장소를 클론하고 필요한 구성 요소를 빌드합니다. SWE 평가 결과를 재현하려면 refact의 다음 브랜치를 사용해야 합니다:
- SWE-lite용: https://github.com/smallcloudai/refact/tree/swe-boosted-prompt
- SWE-verified용: https://github.com/smallcloudai/refact/tree/swe-boosted-prompt-verified
git clone https://github.com/smallcloudai/refact.git
pip install -e ./refact/refact-agent/engine/python_binding_and_cmdline
fakeide compile-static-lsp release
이 단계는 코드 분석에 필요한 Language Server Protocol (LSP) 구현을 컴파일합니다.
cd ./refact/refact-agent/engine/
cargo build --release
mkdir -p ./python_binding_and_cmdline/refact/bin/
...
이 명령어는 Rust 기반의 LSP 바이너리를 빌드하고 Python 패키지가 사용할 수 있도록 올바른 위치에 배치합니다.
Docker 통합 구성 파일을 생성합니다:
mkdir -p ~/.config/refact/integrations.d/
그런 다음 Docker 통합 구성을 설정합니다 (이 과정은 기존의 Docker 통합 설정을 덮어씁니다):
cat > ~/.config/refact/integrations.d/docker.yaml << 'EOF'
label: ref
docker_daemon_address: ''
...
이 구성은 Refact-Bench가 각 벤치마크 태스크를 위한 격리된 환경을 생성하는 데 Docker를 사용할 수 있도록 합니다.
벤치마크 태스크를 실행하려면 fakeide run 명령어를 사용합니다. 예를 들어, claude-3-7-sonnet 모델을 사용하여 swe-verified 태스크를 실행하려면 다음과 같이 합니다:
실행 명령어:
fakeide run --api-key <REFACT-API-KEY> --model claude-3-7-sonnet --docker tasks/swe/verified --experiment my-experiment
<API-KEY>를 Refact 키로, 그리고 my-experiment는 벤치마크 실행을 그룹화할 이름으로 대체하세요.
작업(tasks) 실행 후 결과를 수집하려면:
fakeide collect --experiment my-experiment
벤치마크 결과는 ./results/에 저장됩니다.
만약 자체 호스팅 서버에서 모델을 테스트하고 싶다면, --address-url 매개변수에 로컬 주소를 지정하세요:
fakeide run --address-url http://localhost:8080 --api-key <API-KEY> --model refact/claude-3-7-sonnet --docker tasks/swe/verified
참고: 서버는 0.0.0.0에서 시작되어야 합니다.
Node를 사용할 때의 일반적인 사용 사례는 다음과 같습니다:
ssh <node-name> -L 0.0.0.0:8008:0.0.0.0:8008
tasks/swe 디렉터리에 있는 translation.py 스크립트는 SWE-Bench 작업을 평가를 위해 준비하는 데 사용됩니다. 이 스크립트는 SWE-Bench 데이터셋을 Refact-Bench가 요구하는 형식으로 변환합니다:
cd tasks/swe
python translation.py
이 스크립트는 SWE-Bench 데이터셋(Lite, Lite-dev, Verified)을 처리하여 해당 디렉터리에 필요한 작업 파일들을 생성합니다.
Refact-Bench의 주요 구성 요소는 다음과 같습니다:
refact_scenarios/
: 벤치마킹 프레임워크 구현이 포함된 핵심 Python 패키지
tasks/
: 벤치마크 작업을 담고 있음
swe/
: SWE-Bench 관련 작업
verified/
: 검증된(Verified) SWE-Bench 작업
lite/
: SWE-Bench Lite 작업
lite-dev/
: SWE-Bench Lite의 개발(Development) 하위 집합
translation.py
: SWE-Bench 작업을 준비하는 스크립트
fakeide-logs/
: 벤치마크 실행 로그를 담고 있음
fakeide-logs/ 디렉터리에서 로그를 확인하세요.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Codex tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기