ChatPaper.aiChatPaper

Exécution de code avec des modèles de langage pré-entraînés

Code Execution with Pre-trained Language Models

May 8, 2023
Auteurs: Chenxiao Liu, Shuai Lu, Weizhu Chen, Daxin Jiang, Alexey Svyatkovskiy, Shengyu Fu, Neel Sundaresan, Nan Duan
cs.AI

Résumé

L'exécution de code est un aspect fondamental de la sémantique des langages de programmation qui reflète le comportement exact du code. Cependant, la plupart des modèles pré-entraînés pour l'intelligence du code ignorent la trace d'exécution et ne s'appuient que sur le code source et les structures syntaxiques. Dans cet article, nous étudions dans quelle mesure les modèles pré-entraînés peuvent comprendre et exécuter du code. Nous développons une technique d'augmentation de données basée sur des mutations pour créer un ensemble de données Python à grande échelle et réaliste, ainsi qu'une tâche d'exécution de code, qui mettent à l'épreuve les modèles existants tels que Codex. Nous présentons ensuite CodeExecutor, un modèle Transformer qui exploite un pré-entraînement sur l'exécution de code et un apprentissage curriculaire pour améliorer sa compréhension sémantique. Nous évaluons CodeExecutor sur l'exécution de code et montrons ses performances prometteuses ainsi que ses limites. Nous démontrons également ses avantages potentiels pour des tâches d'intelligence du code telles que la recherche de code à code en zero-shot et la génération de texte à code. Notre analyse fournit des insights sur les capacités d'apprentissage et de généralisation des modèles pré-entraînés pour l'exécution de code.
English
Code execution is a fundamental aspect of programming language semantics that reflects the exact behavior of the code. However, most pre-trained models for code intelligence ignore the execution trace and only rely on source code and syntactic structures. In this paper, we investigate how well pre-trained models can understand and perform code execution. We develop a mutation-based data augmentation technique to create a large-scale and realistic Python dataset and task for code execution, which challenges existing models such as Codex. We then present CodeExecutor, a Transformer model that leverages code execution pre-training and curriculum learning to enhance its semantic comprehension. We evaluate CodeExecutor on code execution and show its promising performance and limitations. We also demonstrate its potential benefits for code intelligence tasks such as zero-shot code-to-code search and text-to-code generation. Our analysis provides insights into the learning and generalization abilities of pre-trained models for code execution.
PDF21December 15, 2024