| 일본어 | 영어 | 중국어简体 | 중국어繁체 |
ICLR 2024 논문 SWE-bench의 코드 및 데이터: 언어 모델이 실제 GitHub 문제를 해결할 수 있습니까?
SWE-벤치 벤치마크의 최신 업데이트에 대한 정보는 공개 순위표 및 변경 로그를 보려면 당사 웹사이트를 참조하십시오.
SWE-bench는 GitHub에서 수집한 실제 소프트웨어 문제에 대한 대규모 언어 모델을 평가하기 위한 벤치마크입니다. 코드베이스 와 문제가 주어지면 언어 모델은 설명된 문제를 해결하는 패치를 생성하는 임무를 맡습니다.
SWE-bench에 액세스하려면 다음 코드를 복사하여 실행하세요.
from datasets import load_dataset
swebench = load_dataset ( 'princeton-nlp/SWE-bench' , split = 'test' )
SWE-bench는 재현 가능한 평가를 위해 Docker를 사용합니다. Docker 설정 가이드의 지침에 따라 머신에 Docker를 설치하세요. Linux에서 설정하는 경우 설치 후 단계도 참조하는 것이 좋습니다.
마지막으로 소스에서 SWE-bench를 빌드하려면 다음 단계를 따르세요.
git clone [email protected]:princeton-nlp/SWE-bench.git
cd SWE-bench
pip install -e .
다음을 실행하여 설치를 테스트하십시오.
python -m swebench.harness.run_evaluation
--predictions_path gold
--max_workers 1
--instance_ids sympy__sympy-20590
--run_id validate-gold
경고
SWE-벤치에서 빠른 평가를 실행하는 것은 리소스 집약적일 수 있습니다. 최소 120GB의 여유 스토리지, 16GB RAM 및 8개의 CPU 코어가 있는 x86_64
시스템에서 평가 하네스를 실행하는 것이 좋습니다. 컴퓨터에 대한 최적의 작업자 수를 찾으려면 --max_workers
인수를 실험해야 할 수도 있지만 min(0.75 * os.cpu_count(), 24)
미만을 사용하는 것이 좋습니다.
Docker 데스크탑으로 실행하는 경우 가상 디스크 공간을 최대 120GB까지 늘리고 max_workers를 Docker에서 사용할 수 있는 CPU에 대해 위와 일치하도록 설정하십시오.
arm64
머신에 대한 지원은 실험적입니다.
다음 명령과 함께 평가 하네스를 사용하여 SWE-bench Lite에서 모델 예측을 평가합니다.
python -m swebench.harness.run_evaluation
--dataset_name princeton-nlp/SWE-bench_Lite
--predictions_path < path_to_predictions >
--max_workers < num_workers >
--run_id < run_id >
# use --predictions_path 'gold' to verify the gold patches
# use --run_id to name the evaluation run
이 명령은 현재 디렉터리에 docker 빌드 로그( logs/build_images
) 및 평가 로그( logs/run_evaluation
)를 생성합니다.
최종 평가 결과는 evaluation_results
디렉터리에 저장됩니다.
평가 하네스에 대한 전체 인수 목록을 보려면 다음을 실행하세요.
python -m swebench.harness.run_evaluation --help
또한 SWE-Bench 저장소는 다음을 수행하는 데 도움이 될 수 있습니다.
데이터 세트 | 모델 |
---|---|
? SWE 벤치 | ? SWE-라마 13b |
? "오라클" 검색 | ? SWE-라마 13b(PEFT) |
? BM25 검색 13K | ? SWE-라마 7b |
? BM25 검색 27K | ? SWE-라마 7b(PEFT) |
? BM25 검색 40K | |
? BM25 검색 50K(라마 토큰) |
또한 SWE-bench의 다양한 부분을 사용하는 방법에 대한 다음 블로그 게시물도 작성했습니다. 특정 주제에 대한 게시물을 보고 싶다면 이슈를 통해 알려주시기 바랍니다.
우리는 더 넓은 NLP, 기계 학습 및 소프트웨어 엔지니어링 연구 커뮤니티의 의견을 듣고 싶습니다. 기여, 끌어오기 요청 또는 문제를 환영합니다! 그렇게 하려면 새로운 끌어오기 요청을 제출하거나 이에 따라 해당 템플릿을 발행하고 작성하십시오. 곧 후속 조치를 취하겠습니다!
담당자: Carlos E. Jimenez 및 John Yang(이메일: [email protected], [email protected]).
우리의 작업이 도움이 되었다고 생각하시면 다음 인용문을 활용해 주십시오.
@inproceedings{
jimenez2024swebench,
title={{SWE}-bench: Can Language Models Resolve Real-world Github Issues?},
author={Carlos E Jimenez and John Yang and Alexander Wettig and Shunyu Yao and Kexin Pei and Ofir Press and Karthik R Narasimhan},
booktitle={The Twelfth International Conference on Learning Representations},
year={2024},
url={https://openreview.net/forum?id=VTF8yNQM66}
}
MIT. LICENSE.md
확인하세요.