피드로 돌아가기
BigCodeBench: The Next Generation of HumanEval
Hugging Face BlogHugging Face Blog
AI/ML

BigCodeBench가 1,140개의 함수 레벨 작업과 5.6개의 평균 테스트 케이스로 HumanEval의 과단순화 문제를 해결한 LLM 코드 생성 벤치마크

BigCodeBench: The Next Generation of HumanEval

2024년 6월 18일10intermediate

Context

HumanEval은 LLM의 코드 생성 능력을 평가하는 표준 벤치마크이지만, 작업이 과도하게 단순하고 실제 소프트웨어 개발의 다양한 라이브러리 및 함수 호출을 반영하지 못한다. 데이터 오염(contamination)과 과적합(overfitting) 문제로 인해 LLM의 일반화 능력 평가의 신뢰성이 떨어진다. 기존 대안들(DS-1000, ODEX, SWE-bench)은 도메인 특화적이거나 결정론적이거나 에이전트 중심적이어서 광범위한 프로그래밍 능력을 평가할 수 있는 범용 벤치마크의 공백이 존재한다.

Technical Solution

  • ODEX 데이터셋을 시드로 사용하여 Stack Overflow의 단일 라이너를 GPT-4로 확장: 실제 사용자 의도 기반의 포괄적인 함수 레벨 작업으로 변환
  • Human-LLM 협업 프로세스 도입: 5년 이상 경력의 Python 개발자 20명이 실행 기반 샌드박스에서 GPT-4의 작업과 테스트 케이스 개선을 지도
  • 1,140개 함수 레벨 작업에 139개 라이브러리의 다양한 함수 호출 포함: 단일 함수 구현이 아닌 복수의 함수 호출 조합을 요구
  • 각 작업당 평균 5.6개의 테스트 케이스 및 99% 평균 브랜치 커버리지로 설계: 실행 기반 테스트 하네스로 런타임 프로그램 동작 검증
  • BigCodeBench-Complete와 BigCodeBench-Instruct 두 가지 변형 제공: 코드 완성(함수 완성) 시나리오와 자연언어 명령 이해 시나리오 각각 평가
  • Pass@1 및 보정된 Pass@1(Calibrated Pass@1) 평가 지표 사용: 기존 벤치마크와 정렬하면서 긴 프롬프트 건너뛰기 문제 해결
  • 7명의 추가 인간 전문가에 의한 교차 검증: 작업과 테스트 케이스의 품질 보증

Impact

BigCodeBench는 APPS, DS-1000, ODEX, APIBench, MBPP, NumpyEval, PandasEval, HumanEval, TorchDataEval 등 기존 벤치마크 대비 더 복잡한 추론 및 문제 해결 능력을 요구한다.

Key Takeaway

LLM 평가 벤치마크 설계 시 단순한 알고리즘 작업보다는 실제 다중 라이브러리 함수 호출을 포함한 복잡한 작업을 구성하고, Human-LLM 협업을 통한 질 관리 및 광범위한 테스트 케이스 커버리지를 확보하는 것이 평가의 신뢰성을 높일 수 있다.


LLM 기반 코드 생성 시스템을 평가하는 ML 엔지니어들은 단일 함수의 알고리즘 능력만 테스트하는 것보다 BigCodeBench처럼 실제 개발 작업의 복잡성을 반영한 다중 라이브러리 함수 호출 및 오류 처리를 포함한 벤치마크를 구성하면, 프로덕션 환경에서의 모델 성능을 더 정확하게 예측할 수 있다.

원문 읽기