ChatPaper.aiChatPaper

Code-Ausführung mit vortrainierten Sprachmodellen

Code Execution with Pre-trained Language Models

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

Zusammenfassung

Die Code-Ausführung ist ein grundlegender Aspekt der Semantik von Programmiersprachen, der das genaue Verhalten des Codes widerspiegelt. Die meisten vortrainierten Modelle für Code-Intelligenz ignorieren jedoch den Ausführungsverlauf und verlassen sich ausschließlich auf den Quellcode und syntaktische Strukturen. In diesem Artikel untersuchen wir, wie gut vortrainierte Modelle die Code-Ausführung verstehen und durchführen können. Wir entwickeln eine mutbasierte Datenaugmentationsmethode, um einen umfangreichen und realistischen Python-Datensatz und eine Aufgabe für die Code-Ausführung zu erstellen, die bestehende Modelle wie Codex herausfordert. Anschließend stellen wir CodeExecutor vor, ein Transformer-Modell, das Code-Ausführungs-Vortraining und Curriculum-Learning nutzt, um sein semantisches Verständnis zu verbessern. Wir evaluieren CodeExecutor hinsichtlich der Code-Ausführung und zeigen seine vielversprechende Leistung sowie seine Grenzen auf. Darüber hinaus demonstrieren wir seine potenziellen Vorteile für Code-Intelligenz-Aufgaben wie Zero-Shot-Code-zu-Code-Suche und Text-zu-Code-Generierung. Unsere Analyse liefert Einblicke in die Lern- und Generalisierungsfähigkeiten vortrainierter Modelle für die Code-Ausführung.
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