벤치마크 · coding

RepoCoder

niche 0 결과 0 모델

RepoCoder는 저장소 수준 코드 완성을 평가한다. 소스 파일의 어떤 위치가 주어지면 모델은 저장소 전체에서 얻은 문맥을 사용해 빠진 코드를 예측해야 한다. 벤치마크 RepoEval은 줄 및 API 호출 완성에 대해 Exact Match와 Edit Similarity를, 함수 본문 전체에 대해서는 단위 테스트 통과율을 보고한다.

자세히 보기
예시
같은 프로젝트의 다른 파일에 정의된 함수나 클래스를 호출하는, 저장소 파일 안의 절반만 작성된 한 줄을 완성하는 과제 — 올바른 완성을 위해 모델은 파일 간 저장소 문맥을 사용해야 한다.
채점 방식
줄과 API 호출 완성은 Exact Match(예측이 숨겨진 정답 코드와 정확히 일치하면 1, 아니면 0)와 Edit Similarity(1 − 정규화된 Levenshtein 거리)로 채점하며, 모든 샘플에 대해 평균 내어 백분율로 표시한다. 함수 본문 완성은 실행으로 채점한다. 생성된 본문이 원본을 대체하며 저장소의 기존 단위 테스트를 통과해야 한다.
검증 방식
줄/API 항목의 경우, 각 샘플의 예측을 소스 저장소에서 숨긴 참조 코드와 비교해 수용한다 — 정확히 일치(EM)하거나 편집 거리 기반 유사도(ES)로. 함수 완성은 생성된 본문에 대해 저장소 자체의 단위 테스트가 통과할 때만 수용된다. 학습 데이터 유출을 줄이기 위해 최신이고 고품질인 저장소가 선정되었다.
왜 중요한가
실제 코딩은 고립된 조각이 아니라 크고 기존에 존재하는 코드베이스 안에서 이루어진다. RepoCoder/RepoEval은 여러 파일에 흩어진 프로젝트 고유의 API, 심볼, 관례를 모델이 사용할 수 있는지 검증한다 — 이는 단독 함수 합성보다 코딩 도우미를 더 현실적으로 측정하는 척도다.
예제 풀이
문제
줄 수준 완성(RepoEval). 저장소에서 utils/config.py는 보조 함수 load_config(path)를 정의하고, trainer.py는 from .utils.config import load_config로 시작한다. 아래 코드와 저장소에서 검색한 파일 간 문맥을 바탕으로, __init__ 안에서 숨겨진 다음 한 줄을 예측하라: ```python class Trainer: def __init__(self, path): ```
해답
self.config = load_config(path)
풀이
정답인 이유: load_config는 저장소 자체의 보조 함수로 trainer.py 맨 위에서 임포트된다. 이는 파일 간 저장소 문맥으로만 드러나므로, 일반적인 추측(예: JSON 읽기를 인라인으로 작성)은 빗나간다. 이 줄은 숨겨진 정답에 대해 Exact Match로 채점하고, Edit Similarity가 부분 점수를 준다.

이 벤치마크에 대해 아직 검증된 점수가 없습니다.