BigCodeBench Leaderboard
요약
상세 내용
평가 방법론 및 세부 사항:
BigCodeBench는 LLM이 실제 프로그래밍 작업을 얼마나 잘 수행하는지 측정하는 데 중점을 둡니다. 평가는 크게 두 가지 데이터셋으로 진행됩니다.
* Hard Set: 약 150개의 BigCodeBench 작업으로 구성된 서브셋으로, 사용자에게 더 직접적이고 도전적인 시나리오를 제시합니다.
* Full Set: 1140개의 전체 BigCodeBench 작업으로 이루어진 포괄적인 셋입니다.
모델들은 greedy decoding을 사용하여 생성된 코드의 Pass@1 점수에 따라 순위가 매겨집니다. Pass@1은 첫 번째 시도에서 생성된 코드가 모든 테스트 케이스를 통과하는 문제의 비율을 나타내는 측정항목입니다. 여기서 calibrated는 점수 보정 과정을 거쳤음을 의미할 수 있습니다. greedy decoding은 각 단계에서 가장 확률이 높은 토큰을 선택하여 하나의 최종 결과물을 생성하는 방식입니다.
평가 시나리오는 두 가지 주요 변형으로 나뉩니다:
* Complete: 구조화된 장문의 Docstring을 기반으로 코드 완성(Code Completion)을 수행하는 방식입니다. 이는 모델의 실제 코딩 능력을 직접적으로 테스트합니다.
* Instruct (🔥Vibe Check🔥): 간략한 자연어(NL-oriented) 지침을 기반으로 코드 생성(Code Generation)을 수행하는 방식입니다. 이 시나리오는 모델이 인간의 의도를 얼마나 잘 이해하고 코드로 구현할 수 있는지를 평가합니다.
추가적인 평가 설정 및 고려 사항:
* 🧠 표기: 생성 과정에서 응답 사전 채우기(response prefilling) 없이 평가되었음을 나타내며, 이는 모델의 추론(reasoning) 과정을 더 명확히 드러낼 수 있습니다.
* ✨ 표기: 해당 모델이 채팅 설정(chat setting)에서 평가되었음을 의미하며, 다른 모델들은 직접적인 코드 완성(direct code completion)을 수행합니다. 일부 Instruction-tuned 모델은 토크나이저(tokenizer) 설정에 채팅 템플릿이 누락될 수 있다는 점이 지적됩니다.
* 데이터 오염(Data Contamination): 모델 제공자는 데이터 오염을 방지할 책임이 있으며, 유사한 데이터로 학습된 모델은 오염의 영향을 받을 수 있습니다.
* 오픈 소스 여부:
* 💚: 가중치(weights)와 데이터(data) 모두 공개된 모델입니다.
* 💙: 가중치와 SFT(Supervised Fine-Tuning) 데이터는 공개되었지만, 베이스 모델의 데이터는 공개되지 않은 경우입니다.
* 💚💙: 데이터가 공개되어 오염 가능성에 대해 구체적으로 추론할 수 있는 모델을 의미합니다.
* Size: 추론(inference) 시 사용되는 모델 매개변수(parameters)의 수를 나타냅니다.
BigCodeBench 외에도 LLM의 코딩 능력을 종합적으로 이해하기 위해 SWE Arena, EvalPlus Leaderboard, Spider 2.0, Chatbot Arena Leaderboard, CrossCodeEval, ClassEval, CRUXEval, Code Lingua, Evo-Eval, HumanEval.jl, HumanEval with EvalPlus test cases, InfiCoder-Eval, LiveCodeBench, NaturalCodeBench, RepoBench, SWE-bench, TabbyML Leaderboard OOP 등 다양한 벤치마크 및 리더보드를 함께 살펴보는 것이 권장됩니다. 본 설명서의 작성에 EvalPlus 팀과 BigCode 커뮤니티의 기여에 감사를 표합니다.