ChatPaper.aiChatPaper

Ejecución de Código con Modelos de Lenguaje Preentrenados

Code Execution with Pre-trained Language Models

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

Resumen

La ejecución de código es un aspecto fundamental de la semántica de los lenguajes de programación que refleja el comportamiento exacto del código. Sin embargo, la mayoría de los modelos preentrenados para la inteligencia de código ignoran la traza de ejecución y se basan únicamente en el código fuente y las estructuras sintácticas. En este artículo, investigamos qué tan bien los modelos preentrenados pueden comprender y realizar la ejecución de código. Desarrollamos una técnica de aumento de datos basada en mutaciones para crear un conjunto de datos y una tarea de ejecución de código en Python a gran escala y realista, que desafía a modelos existentes como Codex. Luego presentamos CodeExecutor, un modelo Transformer que aprovecha el preentrenamiento en ejecución de código y el aprendizaje curricular para mejorar su comprensión semántica. Evaluamos CodeExecutor en la ejecución de código y mostramos su rendimiento prometedor y sus limitaciones. También demostramos sus beneficios potenciales para tareas de inteligencia de código, como la búsqueda de código a código en modo zero-shot y la generación de texto a código. Nuestro análisis proporciona información sobre las capacidades de aprendizaje y generalización de los modelos preentrenados para la ejecución de código.
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