CRUXEval: Een Benchmark voor Code Redeneren, Begrijpen en Uitvoeren
CRUXEval: A Benchmark for Code Reasoning, Understanding and Execution
January 5, 2024
Auteurs: Alex Gu, Baptiste Rozière, Hugh Leather, Armando Solar-Lezama, Gabriel Synnaeve, Sida I. Wang
cs.AI
Samenvatting
We presenteren CRUXEval (Code Reasoning, Understanding, and eXecution Evaluation), een benchmark bestaande uit 800 Python-functies (3-13 regels). Elke functie wordt geleverd met een input-output paar, wat leidt tot twee natuurlijke taken: inputvoorspelling en outputvoorspelling. Ten eerste stellen we een generiek recept voor voor het genereren van onze uitvoeringsbenchmark, dat kan worden gebruikt om toekomstige variaties van de benchmark te creëren. Ten tweede evalueren we twintig codemodellen op onze benchmark en ontdekken we dat veel recente hoogscorende modellen op HumanEval niet dezelfde verbeteringen laten zien op onze benchmark. Ten derde tonen we aan dat eenvoudige CoT (Chain of Thought) en fine-tuning schema's de prestaties op onze benchmark kunnen verbeteren, maar nog ver verwijderd zijn van het oplossen ervan. De beste opzet, GPT-4 met chain of thought (CoT), behaalt een pass@1 van 75% en 81% op respectievelijk input- en outputvoorspelling. Daarentegen behaalt Code Llama 34B een pass@1 van 50% en 46% op input- en outputvoorspelling, wat het verschil tussen open en closed source modellen benadrukt. Aangeat geen model in de buurt komt van het perfect uitvoeren van CRUXEval, bieden we voorbeelden van consistente GPT-4-fouten op eenvoudige programma's als een lens om inzicht te krijgen in zijn code-redeneervaardigheden en verbeteringsgebieden.
English
We present CRUXEval (Code Reasoning, Understanding, and eXecution
Evaluation), a benchmark consisting of 800 Python functions (3-13 lines). Each
function comes with an input-output pair, leading to two natural tasks: input
prediction and output prediction. First, we propose a generic recipe for
generating our execution benchmark which can be used to create future variation
of the benchmark. Second, we evaluate twenty code models on our benchmark and
discover that many recent high-scoring models on HumanEval do not show the same
improvements on our benchmark. Third, we show that simple CoT and fine-tuning
schemes can improve performance on our benchmark but remain far from solving
it. The best setup, GPT-4 with chain of thought (CoT), achieves a pass@1 of 75%
and 81% on input and output prediction, respectively. In contrast, Code Llama
34B achieves a pass@1 of 50% and 46% on input and output prediction,
highlighting the gap between open and closed source models. As no model is
close to acing CRUXEval, we provide examples of consistent GPT-4 failures on
simple programs as a lens into its code reasoning capabilities and areas for
improvement.