Core Concepts
CodeBenchGen은 사용자의 최소한의 지침만으로도 다양한 시나리오에 걸쳐 코드 생성 시스템을 평가할 수 있는 확장 가능한 실행 기반 벤치마크를 생성하는 프레임워크이다.
Abstract
CodeBenchGen은 대규모 언어 모델(LLM)을 활용하여 임의의 코드 조각을 평가 예제로 변환합니다. 이 과정에는 테스트 케이스 생성, 실행 환경 설정, 코드 디버깅 등이 포함됩니다.
CodeBenchGen을 사용하여 Exec-CSN이라는 벤치마크 데이터셋을 생성했습니다. Exec-CSN은 CodeSearchNet 데이터셋에서 가져온 367개 GitHub 리포지토리의 1,931개 예제로 구성되어 있습니다.
Exec-CSN의 품질을 검증하기 위해 다양성, 복잡성, 해결 가능성 측면에서 분석을 수행했습니다. 분석 결과, Exec-CSN은 293개의 라이브러리와 668개의 리포지토리 주제를 다루며, 1명부터 449명의 기여자가 참여한 다양한 프로젝트를 포함하고 있습니다. 또한 인간 참여자 실험을 통해 81.3%의 예제가 해결 가능하고, 61%의 예제가 "해결하는 데 노력이 필요"한 것으로 나타났습니다.
마지막으로 Exec-CSN 데이터셋을 활용하여 10개의 오픈소스 및 독점 코드 생성 모델을 평가했습니다. 결과에 따르면 최고 모델의 Pass@1 점수가 37.21%에 그쳐, Exec-CSN이 복잡한 벤치마크임을 보여줍니다. 모델 성능 분석을 통해 출력 길이가 길거나 외부 라이브러리를 사용하는 예제에서 모델 성능이 낮아지는 것을 확인했습니다.
Stats
"Exec-CSN 데이터셋에는 평균 496.53개의 코드 토큰, 12.03개의 변수, 9.38개의 AST 깊이를 가진 예제가 포함되어 있습니다."
"Exec-CSN 데이터셋의 예제 길이는 83개에서 1,529개 토큰 사이로 다양합니다."
Quotes
"CodeBenchGen은 사용자의 최소한의 지침만으로도 다양한 시나리오에 걸쳐 코드 생성 시스템을 평가할 수 있는 확장 가능한 실행 기반 벤치마크를 생성하는 프레임워크입니다."
"Exec-CSN 데이터셋은 293개의 라이브러리와 668개의 리포지토리 주제를 다루며, 1명부터 449명의 기여자가 참여한 다양한 프로젝트를 포함하고 있습니다."
"인간 참여자 실험을 통해 81.3%의 Exec-CSN 예제가 해결 가능하고, 61%의 예제가 '해결하는 데 노력이 필요'한 것으로 나타났습니다."