ChatPaper.aiChatPaper

CRUXEval : Un Benchmark pour le Raisonnement, la Compréhension et l'Exécution de Code

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

Résumé

Nous présentons CRUXEval (Évaluation du Raisonnement, de la Compréhension et de l'Exécution de Code), un benchmark composé de 800 fonctions Python (3 à 13 lignes). Chaque fonction est accompagnée d'une paire entrée-sortie, ce qui donne lieu à deux tâches naturelles : la prédiction d'entrée et la prédiction de sortie. Premièrement, nous proposons une recette générique pour générer notre benchmark d'exécution, qui peut être utilisée pour créer des variations futures du benchmark. Deuxièmement, nous évaluons vingt modèles de code sur notre benchmark et constatons que de nombreux modèles récents ayant obtenu des scores élevés sur HumanEval ne montrent pas les mêmes améliorations sur notre benchmark. Troisièmement, nous montrons que des schémas simples de raisonnement en chaîne (CoT) et de fine-tuning peuvent améliorer les performances sur notre benchmark, mais restent loin de le résoudre. La meilleure configuration, GPT-4 avec raisonnement en chaîne (CoT), atteint un pass@1 de 75 % et 81 % sur la prédiction d'entrée et de sortie, respectivement. En revanche, Code Llama 34B atteint un pass@1 de 50 % et 46 % sur la prédiction d'entrée et de sortie, mettant en évidence l'écart entre les modèles open source et propriétaires. Aucun modèle n'étant proche de maîtriser CRUXEval, nous fournissons des exemples d'échecs cohérents de GPT-4 sur des programmes simples comme une fenêtre sur ses capacités de raisonnement en code et les domaines à améliorer.
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.
PDF110December 15, 2024