CRUXEval: Um Benchmark para Raciocínio, Compreensão e Execução de Código
CRUXEval: A Benchmark for Code Reasoning, Understanding and Execution
January 5, 2024
Autores: Alex Gu, Baptiste Rozière, Hugh Leather, Armando Solar-Lezama, Gabriel Synnaeve, Sida I. Wang
cs.AI
Resumo
Apresentamos o CRUXEval (Avaliação de Raciocínio, Compreensão e Execução de Código), um benchmark composto por 800 funções em Python (3-13 linhas). Cada função vem com um par entrada-saída, resultando em duas tarefas naturais: previsão de entrada e previsão de saída. Primeiro, propomos uma receita genérica para gerar nosso benchmark de execução, que pode ser usada para criar variações futuras do benchmark. Segundo, avaliamos vinte modelos de código em nosso benchmark e descobrimos que muitos modelos recentes com pontuações altas no HumanEval não mostram as mesmas melhorias em nosso benchmark. Terceiro, mostramos que esquemas simples de CoT (Chain of Thought) e fine-tuning podem melhorar o desempenho em nosso benchmark, mas ainda estão longe de resolvê-lo. A melhor configuração, GPT-4 com Chain of Thought (CoT), alcança um pass@1 de 75% e 81% na previsão de entrada e saída, respectivamente. Em contraste, o Code Llama 34B alcança um pass@1 de 50% e 46% na previsão de entrada e saída, destacando a lacuna entre modelos de código aberto e fechado. Como nenhum modelo está próximo de dominar o CRUXEval, fornecemos exemplos de falhas consistentes do GPT-4 em programas simples como uma lente para entender suas capacidades de raciocínio de código e áreas para melhoria.
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.