RepoBench: 저장소 수준 코드 자동 완성 시스템 벤치마킹
요약
ICLR 2024에 채택된 RepoBench v1.1이 공개되어 저장소 수준의 코드 자동 완성 시스템을 위한 새로운 벤치마크를 제공합니다. 이 데이터셋은 Python과 Java용으로 제공되며, `cross_file` 및 `in_file` 등 다양한 의존성 마스킹 설정을 통해 모델 평가에 필요한 세밀한 환경을 구축했습니다.
핵심 포인트
- RepoBench v1.1이 HuggingFace Hub에 공개되어 사용 가능합니다.
- Python과 Java를 지원하며, 저장소 수준의 코드 자동 완성 능력을 측정합니다.
- cross_file_first/random 및 in_file 등 세 가지 설정으로 평가 난이도를 조절할 수 있습니다.
- EM, ES, CodeBLEU 등 다양한 지표로 모델 성능을 종합적으로 평가합니다.
ICLR 2024
- 2024년 2월 5일: 🤗 HuggingFace Hub에 RepoBench v1.1(최신 코드 데이터 포함)이 공개되었습니다. 다음 링크를 사용하여 Python 및 Java용 데이터셋에 접근할 수 있습니다:
- Python의 경우: 🤗 Repobench Python V1.1
- Java의 경우: 🤗 Repobench Java V1.1
RepoBench v1.1에 대한 자세한 내용은 데이터 디렉토리를 참조하십시오. -
2024년 1월 16일: RepoBench가 ICLR 2024에 채택되었습니다! 🎉
git clone https://github.com/Leolty/repobench.git
cd repobench
참고 사항 (Note)
논문에서 결과를 재현하는 데 필요한 의존성을 포함하는 requirements.txt 파일이 있습니다. 데이터에만 관심이 있다면, 의존성 설치는 건너뛰어도 됩니다.
논문에서 논의된 바와 같이, 각 작업에는 세 가지 설정이 있습니다:
cross_file_first
: 다른 파일의 모듈이 처음 사용되는 줄을 마스킹합니다.
cross_file_random
: 다른 파일의 모듈이 사용되는 무작위 줄(첫 번째 사용은 아님)을 마스킹합니다.
in_file
: 크로스 파일 의존성이 없는 무작위 줄을 마스킹합니다.
from datasets import load_dataset
dataset = load_dataset(
스크립트. 이 스크립트는 각 설정에 대해 Exact Match (EM), Edit Similarity (ES), 그리고 CodeBLEU (CB) 점수를 포함한 다양한 지표를 계산합니다.
평가를 실행하려면:
`python eval.py --path "results/deepseek-coder-1.3b-base-python" --language "python"`
스크립트는 각 레벨(`cross_file_first`, `cross_file_random`, `in_file`)에 대한 점수와 모든 레벨의 가중 평균을 출력합니다.
이 저장소 브랜치는 RepoBench v1.1 전용입니다. 초기 버전의 RepoBench를 사용한 ICLR 2024 논문에서 제시된 결과를 보려면, 이 저장소의 `archive/v0` 브랜치를 참조해 주십시오.
만약 연구에 RepoBench를 사용하신다면, 저희를 인용하는 것을 고려해 주십시오:
@misc{liu2023repobench,
title={RepoBench: Benchmarking Repository-Level Code Auto-Completion Systems},
author={Tianyang Liu and Canwen Xu and Julian McAuley},
...
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Coding Assistants의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기