LiveCodeBench 리더보드: 코드 LLM을 위한 오염 방지 평가
Hugging Face는 UC Berkeley, MIT, Cornell 연구원들이 개발한 새로운 평가 프레임워크인 LiveCodeBench 리더보드를 출시했습니다. 이 벤치마크는 경쟁 프로그래밍 플랫폼에서 시간에 따라 수집된 문제들을 활용하여 대형 언어 모델(LLM)의 코딩 능력을 전체적이고 오염 없이 측정하도록 설계되었습니다.
시간 기반 평가를 통한 벤치마크 오염 방지
LiveCodeBench는 모든 코딩 문제에 출시 날짜를 표시함으로써 벤치마크 오염이라는 중요한 문제—모델이 나중에 평가받는 테스트 데이터에 대해 학습되는 상황—를 해결합니다. 이를 통해 연구자들은 “시간에 따라 스크롤링” 전략을 구현할 수 있습니다: 훈련 마감일이 D인 모델에 대해, 벤치마크는 D 이후에 출시된 문제만을 사용해 점수를 계산합니다. 이는 모델이 실제로 보지 못한 문제에 대해 평가되도록 하여, 암기보다는 일반화 능력을 보다 정확하게 측정합니다.
전체적인 평가 시나리오
전통적인 벤치마크가 코드 생성에만 초점을 맞추는 것과 달리, LiveCodeBench는 LeetCode, AtCoder, CodeForces에서 선별된 문제들을 활용해 네 가지 구별된 코딩 시나리오를 평가합니다. 모든 시나리오는 Pass@1 지표를 사용해 평가되며, 이는 정답 수를 총 시도 횟수로 나눈 비율을 계산합니다.
코드 생성
모델은 자연어로 된 문제 설명과 예시 테스트를 제공받습니다. 목표는 올바른 솔루션을 생성하는 것이며, 생성된 솔루션은 숨겨진 테스트 케이스 집합을 이용해 기능적 정확성으로 평가됩니다.
자체 복구
이 시나리오는 모델이 자신의 코드를 반복적으로 개선할 수 있는 능력을 테스트합니다. 모델이 잘못된 프로그램을 생성하면, 예외 메시지나 실패한 테스트 케이스와 같은 오류 피드백이 제공되고, 모델은 기능적 정확성을 달성하기 위해 수정안을 생성해야 합니다.
코드 실행
모델은 주어진 테스트 입력에 대해 특정 프로그램 조각(함수)의 출력을 예측하는 과제를 수행합니다. 정답 여부는 모델이 예측한 출력이 해당 입력으로 함수를 실행한 실제 결과와 일치하는지에 따라 결정됩니다.
테스트 출력 예측
이 시나리오에서 모델은 문제 설명과 테스트 케이스 입력을 받습니다. 함수 구현을 보지 않고 해당 입력에 대한 예상 출력을 생성해야 합니다. 이는 정확히 일치하는지를 확인하는 체커를 사용해 평가됩니다.
주요 결과 및 모델 성능
초기 평가 결과, 모델 순위는 특정 코딩 시나리오에 따라 달라지며, 이는 모델마다 추론 및 실행 능력에서 서로 다른 강점을 가지고 있음을 시사합니다.
- GPT-4-Turbo: 이 모델은 대부분의 시나리오에서 가장 높은 성능을 보입니다. 특히 자체 복구 작업에서 큰 차이를 보이며, 컴파일러 피드백을 활용하는 높은 능력을 나타냅니다.
- Claude-3-Opus: 이 모델은 테스트 출력 예측 시나리오에서 GPT-4-Turbo보다 뛰어난 성능을 보여, 자연어 추론 능력이 우수함을 시사합니다.
- Mistral-Large: 이 모델은 코드 실행 및 테스트 출력 예측을 포함한 자연어 추론 작업에서 현저히 높은 성능을 보여줍니다.
제출 및 기여
LiveCodeBench 프레임워크는 오픈소스로, 데이터셋과 코드는 Hugging Face와 GitHub에서 제공됩니다. 개발자는 lcb_runner 모듈을 사용해 모델을 평가하고, 공식 양식을 통해 결과를 제출하여 리더보드에 포함시킬 수 있습니다.