[논문 리뷰] BigCodeBench: Benchmarking Code Generation with Diverse Function Calls and Complex Instructions
BigCodeBench 벤치마크는 LLM 기반 코드 생성을 139개 라이브러리와 7개 도메인에서 평가하며, 복잡하고 도구를 사용하는 지시를 활용하고 60개의 LLM을 평가했고 인간 성능과의 상당한 차이를 드러냅니다(Complete에서 Pass@1 최대 60%; Instruct에서 <50%).
Task automation has been greatly empowered by the recent advances in Large Language Models (LLMs) via Python code, where the tasks ranging from software engineering development to general-purpose reasoning. While current benchmarks have shown that LLMs can solve tasks using programs like human developers, the majority of their evaluations are limited to short and self-contained algorithmic tasks or standalone function calls. Solving challenging and practical tasks requires the capability of utilizing diverse function calls as tools to efficiently implement functionalities like data analysis and web development. In addition, using multiple tools to solve a task needs compositional reasoning by accurately understanding complex instructions. Fulfilling both of these characteristics can pose a great challenge for LLMs.To assess how well LLMs can solve challenging and practical tasks via programs, we introduce BigCodeBench, a benchmark that challenges LLMs to invoke multiple function calls as tools from 139 libraries and 7 domains for 1,140 fine-grained tasks. To evaluate LLMs rigorously, each task encompasses 5.6 test cases with an average branch coverage of 99%. In addition, we propose a natural-language-oriented variant of BigCodeBench, BigCodeBench-Instruct, that automatically transforms the original docstrings into short instructions only with essential information. Our extensive evaluation of 60 LLMs shows that LLMs are not yet capable of following complex instructions to use function calls precisely, with scores up to 60%, significantly lower than the human performance of 97%. The results underscore the need for further advancements in this area.
연구 동기 및 목표
- 짧은 알고리즘 문제를 넘어 도전적이고 현실 세계의 프로그래밍 작업에서 LLM을 평가하도록 동기를 부여한다.
- 도구(다양한 라이브러리)를 호출하고 복잡하고 구성가능한 지시를 따르는 LLM의 능력을 평가한다.
- 두 벤치마크 변형 제공: BigCodeBench-Complete(구조화된 도큐스트링) 및 BigCodeBench-Instruct(NL 지향 지시).
- 기존 벤치마크와의 상관관계를 시연하고 현재 모델이 인간보다 뒤처지는 격차를 식별한다.
제안 방법
- 데이터 합성, 리팩토링, 테스트 및 큐레이션에 걸친 사람-LLM 협업을 통해 대규모의 고품질 실행 기반 벤치마크를 구성한다.
- 시드 예제를 사용해 태스크를 소싱하고 다양한 라이브러리(139개 라이브러리, 7개 도메인)로 확장한다.
- 합성된 프로그램을 리팩토링하고 Code Interpreter가 가능한 GPT-4 세션에서 사람의 루프 가이드를 활용해 엄격한 테스트 케이스를 생성한다.
- 작업의 난이도와 테스트의 결정성을 보장하기 위해 인간 주도 3단계 큐레이션(검토, 예비 평가, 교차 확인)을 적용한다.
- 도메인-지향적인 NL 변형(BigCodeBench-Instruct)으로 각 태스크를 변환한다: 도큐스트링 프롬프트를 간결한 지시로 변환한다.
- 제로샷 설정에서 Pass@K 지표로 LLM을 평가하고, 맥락 누락을 보정하기 위한 분석을 포함한다.

실험 결과
연구 질문
- RQ1다양한 도구 사용과 복잡한 지시를 필요로 하는 도전적이고 실용적인 프로그래밍 작업을 LLM이 해결할 수 있는가?
- RQ2지시 미세조정이 LLM의 복잡한 제약을 따르고 도구를 도메인 간에 사용할 수 있는 능력에 어떤 영향을 미치는가?
- RQ3모델 크기, 지시 미세조정, 그리고 개방형 다중 라이브러리 코드 생성 작업에서의 성능 간의 관계는 무엇인가?
주요 결과
- BigCodeBench-Complete에서 60개의 최첨단 LLM과 BigCodeBench-Instruct에서 35개의 지시 미세조정 LLM을 평가했다.
- 최고 모델(GPT-4o)은 BigCodeBench-Complete에서 최대 60% Pass@1을 달성했고 BigCodeBench-Instruct에서는 50% 미만이었다.
- 보정된 결과는 Complete와 Instruct 순위 간의 강한 정렬 일치를 드러낸다(Pearson r = 0.982).
- 지시 미세조정 모델은 복잡한 제약을 따르는 능력을 향상시키며, 평균 보정된 Pass@1이 기본 모델보다 높다(예: 특정 비교에서 40.7% 대 35.7%).
- 모델은 긴 맥락 프롬프트에서 필수적인 import 문을 종종 생략하여 작업 성공에 영향이 있으며 도메인 전문화가 도구 사용 성능에 영향을 미친다.
- BigCodeBench는 HumanEval+ 및 LiveCodeBench와 강한 상관관계를 보이며 주류 벤치마크와의 조화를 시사하면서도 고유한 평가 측면을 드러낸다.

더 나은 연구,지금 바로 시작하세요
연구 설계부터 논문 작성까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.