한 줄 요약
BigCodeBench는 1,140개의 실용적 프로그래밍 태스크로 LLM의 다중 함수 호출 및 복잡한 지시사항 처리 능력을 평가하는 새로운 벤치마크이다.
핵심 기여도
- 139개 라이브러리와 7개 도메인에서 1,140개의 세부 프로그래밍 태스크를 포함한 **BigCodeBench**를 제안.
- 각 태스크는 평균 **5.6개의 테스트 케이스**와 **99%의 브랜치 커버리지**를 갖는 실행 기반 평가를 제공.
- 자연어 중심 버전인 **BigCodeBench-Instruct**를 통해 문서 문자열을 필수 정보만 포함한 지시사항으로 변환.
- 60개 LLM을 평가한 결과, 최고 성능 모델 GPT-4o가 **60%**에 그치며, 인간 성능(97%)에 크게 못 미침.
핵심 아이디어
기존 벤치마크는 대부분 단순하고 자립적인 알고리즘 문제에 집중되어 있어, 실용적이고 복잡한 프로그래밍 문제를 해결하는 능력을 평가하기 어렵다. BigCodeBench는 이 격차를 메우기 위해, **다양한 라이브러리의 함수 호출**과 **복잡한 지시사항 처리**라는 두 가지 핵심 요소를 반영한 프로그래밍 태스크를 구성했다. 특히, **Gorilla OpenFunctions**에서 정의한 도메인별 라이브러리 API를 활용하여, 실제 개발 환경과 유사한 상황을 시뮬레이션한다. 또한, **자연어 지시사항**(Instruct)을 통해 LLM이 인간의 언어를 정확히 해석하고 코드를 생성하는 능력을 평가한다.
기술적 접근법
- **BigCodeBench**는 139개 라이브러리, 7개 도메인, 1,140개의 세부 태스크로 구성.
- 각 태스크는 평균 **5.6개의 테스트 케이스**와 **99%의 브랜치 커버리지**를 포함.
- **BigCodeBench-Complete**는 구조화된 문서 문자열을 기반으로 코드 생성 능력을 평가.
- **BigCodeBench-Instruct**는 자연어 지시사항만을 사용해 코드 생성 능력을 평가.
- 평가 지표로는 **Pass@K** (K=1, 5)를 사용하며, **greedy decoding**과 **random sampling**을 통해 샘플을 생성.
- 60개의 최신 LLM과 35개의 지시사항 튜닝 LLM을 평가.
주요 결과
- **BigCodeBench-Complete**에서 최고 성능 모델 GPT-4o는 **60%**의 정확도를 기록.
- **BigCodeBench-Instruct**에서는 **50% 미만**의 성능을 보임.
- 인간 성능은 **97%**로, LLM의 성능과 큰 격차가 있음.
- 일부 지시사항 튜닝 모델은 긴 지시사항을 무시하거나 반복하지 않아 실패.
- 도메인별 함수 호출 능력에 따라 LLM 성능이 달라짐.
의의 및 한계
BigCodeBench는 기존 벤치마크가 다루지 못한 **실용적이고 복잡한 프로그래밍 태스크**를 평가하는 데 기여하며, LLM이 인간 수준의 코드 생성 능력을 갖추기 위해 필요한 핵심 능력을 명확히 보여준다. 그러나, 일부 모델이 **복잡한 지시사항을 정확히 해석하지 못하거나**, **다중 도메인 함수 호출을 적절히 수행하지 못하는 한계**가 존재한다. 또한, 평가 샘플 수가 제한되어 있어 더 많은 데이터가 필요하다는 점도 언급된다.
실용적 활용
BigCodeBench는 코드 생성 모델의 **실용성과 정확도**를 평가하는 데 활용될 수 있으며, 특히 **데이터 분석, 웹 개발, 네트워크 프로그래밍** 등 다양한 도메인에서의 성능 검증에 유용하다. 또한, **LLM의 지시사항 이해 능력**을 향상시키기 위한 연구 및 개선 노력에 기초 자료로 활용될 수 있다.